diff --git a/src/__init__.py b/src/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/src/aura_engine_api/rest/util.py b/src/aura_engine_api/rest/util.py index 9bfac522dfd470f402d40f60340ea1f27831e056..0617adff57f5c51db5a43a2120dbed107e28b0e5 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.