Source code for assetmanagement.models.aspect

# coding: utf-8

"""
    Asset Management API

    Service for configuring, reading and managing assets, asset ~ and aspect types.  # noqa: E501
"""


import pprint
import re
import six

from assetmanagement.models.variable import Variable
from mindsphere_core.exceptions import MindsphereClientError


[docs]class Aspect(object): """ Attributes: attribute_types (dict): The key is attribute name and the value is attribute type. attribute_map (dict): The key is attribute name and the value is json key in definition. """ attribute_types = { 'name': 'str', 'variables': 'list[Variable]' } attribute_map = { 'name': 'name', 'variables': 'variables' } def __init__(self, name=None, variables=None): self._name = name self._variables = variables self.discriminator = None @property def name(self): """Gets the name of this Aspect. :return: The name of this Aspect. :rtype: str """ return self._name @name.setter def name(self, name): """Sets the name of this Aspect. :param name: The name of this Aspect. :type: str """ if name is not None and len(name) > 64: raise MindsphereClientError("Invalid value for `name`, length must be less than or equal to `64`") if name is not None and len(name) < 1: raise MindsphereClientError("Invalid value for `name`, length must be greater than or equal to `1`") if name is not None and not re.search(r'[a-zA-Z0-9_]+', name): raise MindsphereClientError(r"Invalid value for `name`, must be a follow pattern or equal to `/[a-zA-Z0-9_]+/`") self._name = name @property def variables(self): """Gets the variables of this Aspect. :return: The variables of this Aspect. :rtype: list[Variable] """ return self._variables @variables.setter def variables(self, variables): """Sets the variables of this Aspect. :param variables: The variables of this Aspect. :type: list[Variable] """ self._variables = variables
[docs] def to_dict(self): """Returns the model properties as a dict""" result = {} for attr, _ in six.iteritems(self.attribute_types): value = getattr(self, attr) if isinstance(value, list): result[attr] = list(map( lambda x: x.to_dict() if hasattr(x, "to_dict") else x, value )) elif hasattr(value, "to_dict"): result[attr] = value.to_dict() elif isinstance(value, dict): result[attr] = dict(map( lambda item: (item[0], item[1].to_dict()) if hasattr(item[1], "to_dict") else item, value.items() )) else: result[attr] = value if issubclass(Aspect, dict): for key, value in self.items(): result[key] = value return result
[docs] def to_str(self): """Returns the string representation of the model""" return pprint.pformat(self.to_dict())
def __repr__(self): """For `print` and `pprint`""" return self.to_str() def __eq__(self, other): """Returns true if both objects are equal""" if not isinstance(other, Aspect): return False return self.__dict__ == other.__dict__ def __ne__(self, other): """Returns true if both objects are not equal""" return not self == other