diff --git a/modules/openapi-generator/src/main/resources/python-aiohttp/requirements.mustache b/modules/openapi-generator/src/main/resources/python-aiohttp/requirements.mustache index 835c75de58a6..01a84d562d3f 100644 --- a/modules/openapi-generator/src/main/resources/python-aiohttp/requirements.mustache +++ b/modules/openapi-generator/src/main/resources/python-aiohttp/requirements.mustache @@ -1,3 +1,4 @@ connexion[aiohttp,swagger-ui] == 2.0.2 swagger-ui-bundle == 0.0.2 aiohttp_jinja2 == 1.1.0 +typing-inspect == 0.4.0 diff --git a/modules/openapi-generator/src/main/resources/python-aiohttp/util.mustache b/modules/openapi-generator/src/main/resources/python-aiohttp/util.mustache index 9263acb016ea..58021855511c 100644 --- a/modules/openapi-generator/src/main/resources/python-aiohttp/util.mustache +++ b/modules/openapi-generator/src/main/resources/python-aiohttp/util.mustache @@ -3,6 +3,8 @@ import datetime import typing from typing import Union +import typing_inspect + T = typing.TypeVar('T') Class = typing.Type[T] @@ -26,10 +28,10 @@ def _deserialize(data: Union[dict, list, str], klass: Union[Class, str]) -> Unio return deserialize_date(data) elif klass == datetime.datetime: return deserialize_datetime(data) - elif type(klass) == typing.GenericMeta: - if klass.__extra__ == list: + elif typing_inspect.is_generic_type(klass): + if issubclass(typing_inspect.get_origin(klass), typing.List): return _deserialize_list(data, klass.__args__[0]) - if klass.__extra__ == dict: + if issubclass(typing_inspect.get_origin(klass), typing.Dict): return _deserialize_dict(data, klass.__args__[1]) else: return deserialize_model(data, klass)