Spaces:
Running
Running
| # coding: utf-8 | |
| from __future__ import absolute_import | |
| import datetime | |
| import pprint | |
| import sys | |
| import typing | |
| from datetime import datetime # noqa: F401 | |
| from typing import Dict, List # noqa: F401 | |
| import six | |
| if sys.version_info < (3, 7): | |
| import typing | |
| def is_generic(klass): | |
| """Determine whether klass is a generic class""" | |
| return type(klass) == typing.GenericMeta | |
| def is_dict(klass): | |
| """Determine whether klass is a Dict""" | |
| return klass.__extra__ == dict | |
| def is_list(klass): | |
| """Determine whether klass is a List""" | |
| return klass.__extra__ == list | |
| else: | |
| def is_generic(klass): | |
| """Determine whether klass is a generic class""" | |
| return hasattr(klass, "__origin__") | |
| def is_dict(klass): | |
| """Determine whether klass is a Dict""" | |
| return klass.__origin__ == dict | |
| def is_list(klass): | |
| """Determine whether klass is a List""" | |
| return klass.__origin__ == list | |
| def _deserialize(data, klass): | |
| """Deserializes dict, list, str into an object. | |
| :param data: dict, list or str. | |
| :param klass: class literal, or string of class name. | |
| :return: object. | |
| """ | |
| if data is None: | |
| return None | |
| if klass in six.integer_types or klass in (float, str, bool, bytearray): | |
| return _deserialize_primitive(data, klass) | |
| elif klass == object: | |
| return _deserialize_object(data) | |
| elif klass == datetime.date: | |
| return deserialize_date(data) | |
| elif klass == datetime.datetime: | |
| return deserialize_datetime(data) | |
| elif typing_utils.is_generic(klass): | |
| if typing_utils.is_list(klass): | |
| return _deserialize_list(data, klass.__args__[0]) | |
| if typing_utils.is_dict(klass): | |
| return _deserialize_dict(data, klass.__args__[1]) | |
| else: | |
| return deserialize_model(data, klass) | |
| def _deserialize_primitive(data, klass): | |
| """Deserializes to primitive type. | |
| :param data: data to deserialize. | |
| :param klass: class literal. | |
| :return: int, long, float, str, bool. | |
| :rtype: int | long | float | str | bool | |
| """ | |
| try: | |
| value = klass(data) | |
| except UnicodeEncodeError: | |
| value = six.u(data) | |
| except TypeError: | |
| value = data | |
| return value | |
| def _deserialize_object(value): | |
| """Return an original value. | |
| :return: object. | |
| """ | |
| return value | |
| def deserialize_date(string): | |
| """Deserializes string to date. | |
| :param string: str. | |
| :type string: str | |
| :return: date. | |
| :rtype: date | |
| """ | |
| try: | |
| from dateutil.parser import parse | |
| return parse(string).date() | |
| except ImportError: | |
| return string | |
| def deserialize_datetime(string): | |
| """Deserializes string to datetime. | |
| The string should be in iso8601 datetime format. | |
| :param string: str. | |
| :type string: str | |
| :return: datetime. | |
| :rtype: datetime | |
| """ | |
| try: | |
| from dateutil.parser import parse | |
| return parse(string) | |
| except ImportError: | |
| return string | |
| def deserialize_model(data, klass): | |
| """Deserializes list or dict to model. | |
| :param data: dict, list. | |
| :type data: dict | list | |
| :param klass: class literal. | |
| :return: model object. | |
| """ | |
| instance = klass() | |
| if not instance.openapi_types: | |
| return data | |
| for attr, attr_type in six.iteritems(instance.openapi_types): | |
| if ( | |
| data is not None | |
| and instance.attribute_map[attr] in data | |
| and isinstance(data, (list, dict)) | |
| ): | |
| value = data[instance.attribute_map[attr]] | |
| setattr(instance, attr, _deserialize(value, attr_type)) | |
| return instance | |
| def _deserialize_list(data, boxed_type): | |
| """Deserializes a list and its elements. | |
| :param data: list to deserialize. | |
| :type data: list | |
| :param boxed_type: class literal. | |
| :return: deserialized list. | |
| :rtype: list | |
| """ | |
| return [_deserialize(sub_data, boxed_type) for sub_data in data] | |
| def _deserialize_dict(data, boxed_type): | |
| """Deserializes a dict and its elements. | |
| :param data: dict to deserialize. | |
| :type data: dict | |
| :param boxed_type: class literal. | |
| :return: deserialized dict. | |
| :rtype: dict | |
| """ | |
| return {k: _deserialize(v, boxed_type) for k, v in six.iteritems(data)} | |
| T = typing.TypeVar("T") | |
| class Model(object): | |
| # openapiTypes: The key is attribute name and the | |
| # value is attribute type. | |
| openapi_types = {} | |
| # attributeMap: The key is attribute name and the | |
| # value is json key in definition. | |
| attribute_map = {} | |
| def from_dict(cls: typing.Type[T], dikt) -> T: | |
| """Returns the dict as a model""" | |
| return util.deserialize_model(dikt, cls) | |
| def to_dict(self): | |
| """Returns the model properties as a dict | |
| :rtype: dict | |
| """ | |
| result = {} | |
| for attr, _ in six.iteritems(self.openapi_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 | |
| return result | |
| def to_str(self): | |
| """Returns the string representation of the model | |
| :rtype: str | |
| """ | |
| 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""" | |
| return self.__dict__ == other.__dict__ | |
| def __ne__(self, other): | |
| """Returns true if both objects are not equal""" | |
| return not self == other | |
| class Drug(Model): | |
| """NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). | |
| Do not edit the class manually. | |
| """ | |
| def __init__(self, smiles=None, name=None): # noqa: E501 | |
| """Drug - a model defined in OpenAPI | |
| :param smiles: The smiles of this Drug. # noqa: E501 | |
| :type smiles: str | |
| :param name: The name of this Drug. # noqa: E501 | |
| :type name: str | |
| """ | |
| self.openapi_types = {"smiles": str, "name": str} | |
| self.attribute_map = {"smiles": "smiles", "name": "name"} | |
| self._smiles = smiles | |
| self._name = name | |
| def from_dict(cls, dikt) -> "Drug": | |
| """Returns the dict as a model | |
| :param dikt: A dict. | |
| :type: dict | |
| :return: The Drug of this Drug. # noqa: E501 | |
| :rtype: Drug | |
| """ | |
| return util.deserialize_model(dikt, cls) | |
| def smiles(self): | |
| """Gets the smiles of this Drug. | |
| :return: The smiles of this Drug. | |
| :rtype: str | |
| """ | |
| return self._smiles | |
| def smiles(self, smiles): | |
| """Sets the smiles of this Drug. | |
| :param smiles: The smiles of this Drug. | |
| :type smiles: str | |
| """ | |
| if smiles is None: | |
| raise ValueError( | |
| "Invalid value for `smiles`, must not be `None`" | |
| ) # noqa: E501 | |
| self._smiles = smiles | |
| def name(self): | |
| """Gets the name of this Drug. | |
| :return: The name of this Drug. | |
| :rtype: str | |
| """ | |
| return self._name | |
| def name(self, name): | |
| """Sets the name of this Drug. | |
| :param name: The name of this Drug. | |
| :type name: str | |
| """ | |
| self._name = name | |