From dd03f5343fe421ea67ba93ec030aa123d9293ea2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Herv=C3=A9=20=20MENAGER?= <herve.menager@pasteur.fr>
Date: Thu, 26 Sep 2019 16:52:07 +0200
Subject: [PATCH] Update util.py to a python3.7-compatible version
---
jass/util.py | 59 ++++++++++++++++++++++------------------------------
1 file changed, 25 insertions(+), 34 deletions(-)
diff --git a/jass/util.py b/jass/util.py
index 0061ca07..4e0189d0 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
--
GitLab