lukas g Posted June 13, 2018 Report Share Posted June 13, 2018 Hello, My Question is: How can I create new entity types using the python api. when i create an new session object with the python api using: session = ftrack_api.Session(server_url=server_url, api_key=api_key, api_user=api_user) I can query all types using: session_types = session.types Now i am checking if all entity types our pipeline requires are present in this session using something like: session_types.get(required_entity) However if the expected entity types are NOT present -> meaning FTrack is not yet configured in the way the it needs to be for the pipeline. I want to create the missing entity types using the python api. In the GUI I would simply create new objects for each missing entity type like this: And then I would create a schema using the required objects / (entity types) and make sure that the projects are always using this schema: But I am having trouble to understand the correct way of doing so using the python api. As far as I understand the entity types are generated dynamically at the beginning of a session. The "StandardFactory" class takes care of it by creating the types specified in the existing "ProjectSchema" 's Workflow like so ? Create a new ProjectSchema? While doing so I pass in the new Entity Types I want to have created with this schema? But how can I define those new entity types? Some informatison from the docs I collected so far: " When a Session is constructed it fetches schema details from the connected server and then calls an Entity factory to create classes from those schemas. It does this by emitting a synchronous event, ftrack.api.session.construct entity-type, for each schema and expecting a class object to be returned. "http://ftrack-python-api.rtd.ftrack.com/en/stable/working_with_entities.html#customising-entity-types Regarding working with Project Schema's I only found these small snippets from the docs which do NOT show how to create a new schema:http://ftrack-python-api.rtd.ftrack.com/en/stable/example/project.html?highlight=schemas The information provided in the "Working with entities - Customising entity types" also links to this page "Understanding sessions - Configuring plugins" and the provided python file "cunstruct_entity_type.py" shows how to register a plugin but does not show how to actually create a new entity type. I hope someone can point me to the right direction! Thank you in advance, Lukas Link to comment Share on other sites More sharing options...
Mattias Lagergren Posted June 14, 2018 Report Share Posted June 14, 2018 Hi Lukas, Thank you for posting and welcome to the forums! To manage the object types and the project schemas you have to go through the Web UI today. In future versions of ftrack we will most likely add support for this through the API but due to some underlying complexity of how the schemas are modeled we have currently limited API access on this to read (and locked down update/create operations). Link to comment Share on other sites More sharing options...
lukas g Posted June 14, 2018 Author Report Share Posted June 14, 2018 Hi Mattias, thank you for the quick reply and the welcoming That's unfortunate to hear not having access through the api for proper entity configuration. I can see this not being an easy task to tackle, hiding the underlying complexity from the api users but still giving enough control for flexible configurations. Do you have any information about when this might be addressed? (Talking about just a couple of months or more like a year or so?) Best Lukas Link to comment Share on other sites More sharing options...
Mattias Lagergren Posted June 19, 2018 Report Share Posted June 19, 2018 There is no ETA for making this available at the moment, but it is not likely to happen within the next few months I'm afraid. For our own usage we will need this functionality eventuelly Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.