Source code for dragonfly_uwg.properties.story

# coding=utf-8
"""Story UWG Properties."""


[docs]class StoryUWGProperties(object): """UWG Properties for Dragonfly Story. Args: host: A dragonfly_core Story object that hosts these properties. Properties: * host """ __slots__ = ('_host',) def __init__(self, host): """Initialize Story UWG properties.""" self._host = host @property def host(self): """Get the Story object hosting these properties.""" return self._host
[docs] @classmethod def from_dict(cls, data, host): """Create StoryUWGProperties from a dictionary. Note that the dictionary must be a non-abridged version for this classmethod to work. Args: data: A dictionary representation of StoryUWGProperties. host: A Story object that hosts these properties. """ assert data['type'] == 'StoryUWGProperties', \ 'Expected StoryUWGProperties. Got {}.'.format(data['type']) new_prop = cls(host) return new_prop
[docs] def apply_properties_from_dict(self, abridged_data): """Apply properties from a StoryUWGPropertiesAbridged dictionary. Args: abridged_data: A StoryUWGPropertiesAbridged dictionary (typically coming from a Model). """ pass # currently no properties to apply
[docs] def to_dict(self, abridged=False): """Return Story UWG properties as a dictionary. Args: abridged: Boolean for whether the full dictionary of the Story should be written (False) or just the identifier of the the individual properties (True). Default: False. """ base = {'uwg': {}} base['uwg']['type'] = 'StoryUWGProperties' if not \ abridged else 'StoryUWGPropertiesAbridged' return base
[docs] def duplicate(self, new_host=None): """Get a copy of this object. new_host: A new Story object that hosts these properties. If None, the properties will be duplicated with the same host. """ _host = new_host or self._host return StoryUWGProperties(_host)
[docs] def ToString(self): return self.__repr__()
def __repr__(self): return 'Story UWG Properties: {}'.format(self.host.identifier)