Source code for stalker.models.typeEntity

#-*- coding: utf-8 -*-



from stalker.models import entity, pipelineStep






########################################################################
[docs]class TypeEntity(entity.Entity): """TypeEntity is the entry point for types. It is created to group the `Type` objects, so any other classes accepting a ``TypeEntity`` object can have one of the derived classes, this is done in that way mainly to ease the of creation of only one :class:`~stalker.models.template.Template` class and let the others to use this one Template class. It doesn't add any new parameters to it's super. """ #----------------------------------------------------------------------
[docs] def __init__(self, **kwargs): super(TypeEntity, self).__init__(**kwargs) ########################################################################
[docs]class AssetType(TypeEntity): """The AssetType class holds the information about the asset type. One asset type object has information about the pipeline steps that this type of asset needs. So for example one can create a "Chracter" asset type and then link "Design", "Modeling", "Rig", "Shading" pipeline steps to this asset type object. And then have a "Environment" asset type and then just link "Design", "Modeling", "Shading" pipeline steps to it. :param steps: This is a list of PipelineStep objects. """ #----------------------------------------------------------------------
[docs] def __init__(self, steps=[], **kwargs): super(AssetType, self).__init__(**kwargs) self._steps = self._check_steps(steps) #----------------------------------------------------------------------
def _check_steps(self, steps_in): """checks the given steps list """ # raise a Value error if it is not a list if not isinstance(steps_in, list): raise ValueError('steps should be an instance of list') # raise a Value error if not all of the elements are pipelineStep # objects if not all([ isinstance(obj, pipelineStep.PipelineStep) for obj in steps_in]): raise ValueError('all of the elements of the given list should be \ instance of stalker.pipelineStep.PipelineStep class') return steps_in #----------------------------------------------------------------------
[docs] def steps(): def fget(self): return self._steps def fset(self, steps_in): self._steps = self._check_steps(steps_in) doc = """this is the property that lets you set and get steps attribute """ return locals()
steps = property(**steps())