# :coding: utf-8
# :copyright: Copyright (c) 2015 ftrack
import ftrack_api.entity.base
[docs]class Job(ftrack_api.entity.base.Entity):
"""Represent job."""
[docs] def __init__(self, session, data=None, reconstructing=False):
"""Initialise entity.
*session* is an instance of :class:`ftrack_api.session.Session` that
this entity instance is bound to.
*data* is a mapping of key, value pairs to apply as initial attribute
values.
To set a job `description` visible in the web interface, *data* can
contain a key called `data` which should be a JSON serialised
dictionary containing description::
data = {
'status': 'running',
'data': json.dumps(dict(description='My job description.')),
...
}
Will raise a :py:exc:`ValueError` if *data* contains `type` and `type`
is set to something not equal to "api_job".
*reconstructing* indicates whether this entity is being reconstructed,
such as from a query, and therefore should not have any special creation
logic applied, such as initialising defaults for missing data.
"""
if not reconstructing:
if data.get("type") not in ("api_job", None):
raise ValueError(
'Invalid job type "{0}". Must be "api_job"'.format(data.get("type"))
)
super(Job, self).__init__(session, data=data, reconstructing=reconstructing)