From 892030da111eea95002aab84e999d107f0c85698 Mon Sep 17 00:00:00 2001 From: David Trattnig <david@subsquare.at> Date: Mon, 11 Jul 2022 20:05:53 +0200 Subject: [PATCH] Codegen: Update `util.py` to new version --- src/__init__.py | 0 src/aura_engine_api/rest/util.py | 23 +++++++++++++++++++---- 2 files changed, 19 insertions(+), 4 deletions(-) create mode 100644 src/__init__.py diff --git a/src/__init__.py b/src/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/aura_engine_api/rest/util.py b/src/aura_engine_api/rest/util.py index 9bfac52..0617adf 100644 --- a/src/aura_engine_api/rest/util.py +++ b/src/aura_engine_api/rest/util.py @@ -16,7 +16,7 @@ def _deserialize(data, klass): if data is None: return None - if klass in six.integer_types or klass in (float, str, bool, bytearray): + if klass in six.integer_types or klass in (float, str, bool): return _deserialize_primitive(data, klass) elif klass == object: return _deserialize_object(data) @@ -24,15 +24,30 @@ def _deserialize(data, klass): return deserialize_date(data) elif klass == datetime.datetime: return deserialize_datetime(data) - elif type_util.is_generic(klass): - if type_util.is_list(klass): + + # NOTE: Due to Python 3.7 not providing `typing.GenericMeta` anymore, + # this workaround is needed (See https://github.com/swagger-api/swagger-codegen/issues/8921) + # As soon this has been fixed in SwaggerHub Codegen this class can + # be replaced by the generated one again. + # + elif hasattr(klass, '__origin__'): + if klass.__origin__ == list: return _deserialize_list(data, klass.__args__[0]) - if type_util.is_dict(klass): + if klass.__origin__ == dict: return _deserialize_dict(data, klass.__args__[1]) + + # Original generated fragment by Codegen (pre Python 3.7 compatible only): + # + # elif type(klass) == typing.GenericMeta: + # if klass.__extra__ == list: + # return _deserialize_list(data, klass.__args__[0]) + # if klass.__extra__ == dict: + # return _deserialize_dict(data, klass.__args__[1]) else: return deserialize_model(data, klass) + def _deserialize_primitive(data, klass): """Deserializes to primitive type. -- GitLab