diff --git a/jass/util.py b/jass/util.py index 0061ca0757513f475eb3816db42c226027b89d0b..4e0189d061b34135f812df61a1365fa1bb6d666c 100644 --- a/jass/util.py +++ b/jass/util.py @@ -1,11 +1,11 @@ -from typing import GenericMeta -from datetime import datetime, date -from six import integer_types, iteritems +import datetime + +import six +import typing def _deserialize(data, klass): - """ - Deserializes dict, list, str into an object. + """Deserializes dict, list, str into an object. :param data: dict, list or str. :param klass: class literal, or string of class name. @@ -15,15 +15,15 @@ def _deserialize(data, klass): if data is None: return None - if klass in integer_types or klass in (float, str, bool): + if klass in six.integer_types or klass in (float, str, bool): return _deserialize_primitive(data, klass) elif klass == object: return _deserialize_object(data) - elif klass == date: + elif klass == datetime.date: return deserialize_date(data) - elif klass == datetime: + elif klass == datetime.datetime: return deserialize_datetime(data) - elif type(klass) == GenericMeta: + elif type(klass) == typing.GenericMeta: if klass.__extra__ == list: return _deserialize_list(data, klass.__args__[0]) if klass.__extra__ == dict: @@ -33,8 +33,7 @@ def _deserialize(data, klass): def _deserialize_primitive(data, klass): - """ - Deserializes to primitive type. + """Deserializes to primitive type. :param data: data to deserialize. :param klass: class literal. @@ -45,15 +44,14 @@ def _deserialize_primitive(data, klass): try: value = klass(data) except UnicodeEncodeError: - value = unicode(data) + value = six.u(data) except TypeError: value = data return value def _deserialize_object(value): - """ - Return a original value. + """Return a original value. :return: object. """ @@ -61,8 +59,7 @@ def _deserialize_object(value): def deserialize_date(string): - """ - Deserializes string to date. + """Deserializes string to date. :param string: str. :type string: str @@ -71,15 +68,13 @@ def deserialize_date(string): """ try: from dateutil.parser import parse - return parse(string).date() except ImportError: return string def deserialize_datetime(string): - """ - Deserializes string to datetime. + """Deserializes string to datetime. The string should be in iso8601 datetime format. @@ -90,15 +85,13 @@ def deserialize_datetime(string): """ try: from dateutil.parser import parse - return parse(string) except ImportError: return string def deserialize_model(data, klass): - """ - Deserializes list or dict to model. + """Deserializes list or dict to model. :param data: dict, list. :type data: dict | list @@ -110,12 +103,10 @@ def deserialize_model(data, klass): if not instance.swagger_types: return data - for attr, attr_type in iteritems(instance.swagger_types): - if ( - data is not None - and instance.attribute_map[attr] in data - and isinstance(data, (list, dict)) - ): + for attr, attr_type in six.iteritems(instance.swagger_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)) @@ -123,8 +114,7 @@ def deserialize_model(data, klass): def _deserialize_list(data, boxed_type): - """ - Deserializes a list and its elements. + """Deserializes a list and its elements. :param data: list to deserialize. :type data: list @@ -133,12 +123,12 @@ def _deserialize_list(data, boxed_type): :return: deserialized list. :rtype: list """ - return [_deserialize(sub_data, boxed_type) for sub_data in data] + return [_deserialize(sub_data, boxed_type) + for sub_data in data] def _deserialize_dict(data, boxed_type): - """ - Deserializes a dict and its elements. + """Deserializes a dict and its elements. :param data: dict to deserialize. :type data: dict @@ -147,4 +137,5 @@ def _deserialize_dict(data, boxed_type): :return: deserialized dict. :rtype: dict """ - return {k: _deserialize(v, boxed_type) for k, v in iteritems(data)} + return {k: _deserialize(v, boxed_type) + for k, v in six.iteritems(data)} \ No newline at end of file