# :coding: utf-8
# :copyright: Copyright (c) 2014 ftrack
import os
from builtins import object
[docs]class Symbol(object):
"""A constant symbol."""
[docs] def __init__(self, name, value=True):
"""Initialise symbol with unique *name* and *value*.
*value* is used for nonzero testing.
"""
self.name = name
self.value = value
def __str__(self):
"""Return string representation."""
return self.name
def __repr__(self):
"""Return representation."""
return "{0}({1})".format(self.__class__.__name__, self.name)
def __bool__(self):
"""Return whether symbol represents non-zero value."""
return bool(self.value)
def __copy__(self):
"""Return shallow copy.
Overridden to always return same instance.
"""
return self
#: Symbol representing that no value has been set or loaded.
NOT_SET = Symbol("NOT_SET", False)
#: Symbol representing created state.
CREATED = Symbol("CREATED")
#: Symbol representing modified state.
MODIFIED = Symbol("MODIFIED")
#: Symbol representing deleted state.
DELETED = Symbol("DELETED")
#: Topic published when component added to a location.
COMPONENT_ADDED_TO_LOCATION_TOPIC = "ftrack.location.component-added"
#: Topic published when component removed from a location.
COMPONENT_REMOVED_FROM_LOCATION_TOPIC = "ftrack.location.component-removed"
#: Identifier of builtin origin location.
ORIGIN_LOCATION_ID = "ce9b348f-8809-11e3-821c-20c9d081909b"
#: Identifier of builtin unmanaged location.
UNMANAGED_LOCATION_ID = "cb268ecc-8809-11e3-a7e2-20c9d081909b"
#: Identifier of builtin review location.
REVIEW_LOCATION_ID = "cd41be70-8809-11e3-b98a-20c9d081909b"
#: Identifier of builtin connect location.
CONNECT_LOCATION_ID = "07b82a97-8cf9-11e3-9383-20c9d081909b"
#: Identifier of builtin server location.
SERVER_LOCATION_ID = "3a372bde-05bc-11e4-8908-20c9d081909b"
#: Chunk size used when working with data, default to 1Mb.
CHUNK_SIZE = int(os.getenv("FTRACK_API_FILE_CHUNK_SIZE", 0)) or 1024 * 1024
#: Symbol representing syncing users with ldap
JOB_SYNC_USERS_LDAP = Symbol("SYNC_USERS_LDAP")