Jump to content

Get Only Latest Versions with API


mikedatsik

Recommended Posts

18 hours ago, postmodern said:

Thanks for you reply! But I mean that I need latest versions for all assets in the task with one query session.

Not possible at present to do in one query. 

Are you wanting to do it in one query for performance reasons? 

The API does support batching calls under the hood, but it doesn't seem to be implemented for queries yet. There are some TODOS in the code though...

def _query(self, expression):
    '''Execute *query* and return (records, metadata).

    Records will be a list of entities retrieved via the query and metadata
    a dictionary of accompanying information about the result set.

    '''
    # TODO: Actually support batching several queries together.
    # TODO: Should batches have unique ids to match them up later.
    batch = [{
        'action': 'query',
        'expression': expression
    }]
Link to comment
Share on other sites

Yes, I want do it for performance reasons.
I will need to get a list of version for all assets in task groped by assets.

I did it something like that:

import ftrack_api
from itertools import groupby

session = ftrack_api.Session()

entity = session.get('Context', '376a3498-1191-11e8-8917-001e582bf738')

assets = session.query(
    'select asset.name, version from AssetVersion '
    'where task_id is "{0}" and asset.name is_not '
    'none order by version desc'.format(
        entity['id'])).all()

res = [{"asset":l, "versions":list(v)} for l,v in groupby(
            sorted(assets, key=lambda x:x['asset']['name']),
            lambda x: x['asset']['name'])]

But usually I working only with latest ones and rarely with previous.
So in that reason I thought that's will be great to get only latest versions and how to get this list in best performance way.

Link to comment
Share on other sites

  • 1 year later...

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
×
×
  • Create New...