AttributeError: xx object has no attribute...
1 1

2 posts in this topic

Hi,

I'm experiencing strange errors in our event handlers and actions. They are hard to replicate and sometimes restarting the event hub and the handlers works, but sometimes it doesn't.

I tried to get the thumbnail URL as described in the API docs (currently running 1.4.0) http://ftrack-python-api.rtd.ftrack.com/en/stable/example/thumbnail.html#example-thumbnail-url

When calling get_thumbnail_url, I get this error:

AttributeError: 'Location' object has no attribute 'get_thumbnail_url'

Printing the location object in fact prints this: <Location(3a372bde-05bc-11e4-8908-20c9d081909b)>

That's ftrack_api.symbol.SERVER_LOCATION_ID, but the type is just "Location". When I try the session.get("Location",...) line on another machine, this returns <ServerLocation...> and I can call get_thumbnail_url without problems.

I then tried to replace the session.get(...) with session.query("Location where id=...") and get_thumbnail_url with just get_url(). Now this exception is raised in ftrack's api:

  File "/path/to/site-packages/ftrack_api/entity/location.py", line 607, in get_url
    return self.accessor.get_url(resource_identifier)
AttributeError: 'Symbol' object has no attribute 'get_url'

The "Symbol object has not attribute xyz" has occured before when calling get_filesystem_path on an ftrack.unmanaged location:

File "/path/to/site-packages/ftrack_api/entity/location.py", line 583, in get_filesystem_path
    return self.get_filesystem_paths([component])[0]
File "/path/to/site-packages/ftrack_api/entity/location.py", line 592, in get_filesystem_paths
    self.accessor.get_filesystem_path(resource_identifier)
AttributeError: 'Symbol' object has no attribute 'get_filesystem_path'

What could be causing this?

 

Share this post


Link to post
Share on other sites

So if you just run this in a script on the problematic environment, you get "Location" rather than "ServerLocation"?

>>> import ftrack_api
>>> session = ftrack_api.Session()
>>> session.get('Location', ftrack_api.symbol.SERVER_LOCATION_ID)

If you try the same thing but make sure to empty your FTRACK_EVENT_PLUGIN_PATH environment variable?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
1 1