diff --git a/modules/openapi-generator/src/main/resources/python-pydantic-v1/model_generic.mustache b/modules/openapi-generator/src/main/resources/python-pydantic-v1/model_generic.mustache index e9ed69317f5f..6ac505ab55ec 100644 --- a/modules/openapi-generator/src/main/resources/python-pydantic-v1/model_generic.mustache +++ b/modules/openapi-generator/src/main/resources/python-pydantic-v1/model_generic.mustache @@ -126,7 +126,7 @@ class {{classname}}({{#parent}}{{{.}}}{{/parent}}{{^parent}}BaseModel{{/parent}} return json.dumps(self.to_dict()) @classmethod - def from_json(cls, json_str: str) -> {{^hasChildren}}{{{classname}}}{{/hasChildren}}{{#hasChildren}}{{#discriminator}}Union({{#children}}{{{classname}}}{{^-last}}, {{/-last}}{{/children}}){{/discriminator}}{{^discriminator}}{{{classname}}}{{/discriminator}}{{/hasChildren}}: + def from_json(cls, json_str: str) -> {{^hasChildren}}{{{classname}}}{{/hasChildren}}{{#hasChildren}}{{#discriminator}}Union[{{#children}}{{{classname}}}{{^-last}}, {{/-last}}{{/children}}]{{/discriminator}}{{^discriminator}}{{{classname}}}{{/discriminator}}{{/hasChildren}}: """Create an instance of {{{classname}}} from a JSON string""" return cls.from_dict(json.loads(json_str)) @@ -145,8 +145,9 @@ class {{classname}}({{#parent}}{{{.}}}{{/parent}}{{^parent}}BaseModel{{/parent}} {{#allVars}} {{#isContainer}} {{#isArray}} - {{#items.isArray}} + {{#items.isContainer}} {{^items.items.isPrimitiveType}} + {{#items.isArray}} # override the default output from pydantic by calling `to_dict()` of each item in {{{name}}} (list of list) _items = [] if self.{{{name}}}: @@ -156,9 +157,21 @@ class {{classname}}({{#parent}}{{{.}}}{{/parent}}{{^parent}}BaseModel{{/parent}} [_inner_item.to_dict() for _inner_item in _item if _inner_item is not None] ) _dict['{{{baseName}}}'] = _items - {{/items.items.isPrimitiveType}} {{/items.isArray}} - {{^items.isArray}} + {{#items.isMap}} + # override the default output from pydantic by calling `to_dict()` of each item in {{{name}}} (list of map) + _items = [] + if self.{{{name}}}: + for _item in self.{{{name}}}: + if _item: + _items.append( + {_inner_key: _inner_value.to_dict() for _inner_key, _inner_value in _item.items() if _inner_value is not None} + ) + _dict['{{{baseName}}}'] = _items + {{/items.isMap}} + {{/items.items.isPrimitiveType}} + {{/items.isContainer}} + {{^items.isContainer}} {{^items.isPrimitiveType}} {{^items.isEnumOrRef}} # override the default output from pydantic by calling `to_dict()` of each item in {{{name}}} (list) @@ -170,11 +183,12 @@ class {{classname}}({{#parent}}{{{.}}}{{/parent}}{{^parent}}BaseModel{{/parent}} _dict['{{{baseName}}}'] = _items {{/items.isEnumOrRef}} {{/items.isPrimitiveType}} - {{/items.isArray}} + {{/items.isContainer}} {{/isArray}} {{#isMap}} - {{#items.isArray}} + {{#items.isContainer}} {{^items.items.isPrimitiveType}} + {{#items.isArray}} # override the default output from pydantic by calling `to_dict()` of each value in {{{name}}} (dict of array) _field_dict_of_array = {} if self.{{{name}}}: @@ -184,9 +198,21 @@ class {{classname}}({{#parent}}{{{.}}}{{/parent}}{{^parent}}BaseModel{{/parent}} _item.to_dict() for _item in self.{{{name}}}[_key] ] _dict['{{{baseName}}}'] = _field_dict_of_array - {{/items.items.isPrimitiveType}} {{/items.isArray}} - {{^items.isArray}} + {{#items.isMap}} + # override the default output from pydantic by calling `to_dict()` of each value in {{{name}}} (dict of dict) + _field_dict_of_dict = {} + if self.{{{name}}}: + for _key, _value in self.{{{name}}}.items(): + if _value is not None: + _field_dict_of_dict[_key] = { + _inner_key: _inner_value.to_dict() for _inner_key, _inner_value in _value.items() if _inner_value is not None + } + _dict['{{{baseName}}}'] = _field_dict_of_dict + {{/items.isMap}} + {{/items.items.isPrimitiveType}} + {{/items.isContainer}} + {{^items.isContainer}} {{^items.isPrimitiveType}} {{^items.isEnumOrRef}} # override the default output from pydantic by calling `to_dict()` of each value in {{{name}}} (dict) @@ -198,7 +224,7 @@ class {{classname}}({{#parent}}{{{.}}}{{/parent}}{{^parent}}BaseModel{{/parent}} _dict['{{{baseName}}}'] = _field_dict {{/items.isEnumOrRef}} {{/items.isPrimitiveType}} - {{/items.isArray}} + {{/items.isContainer}} {{/isMap}} {{/isContainer}} {{^isContainer}} @@ -230,7 +256,7 @@ class {{classname}}({{#parent}}{{{.}}}{{/parent}}{{^parent}}BaseModel{{/parent}} return _dict @classmethod - def from_dict(cls, obj: dict) -> {{^hasChildren}}{{{classname}}}{{/hasChildren}}{{#hasChildren}}{{#discriminator}}Union({{#children}}{{{classname}}}{{^-last}}, {{/-last}}{{/children}}){{/discriminator}}{{^discriminator}}{{{classname}}}{{/discriminator}}{{/hasChildren}}: + def from_dict(cls, obj: dict) -> {{^hasChildren}}{{{classname}}}{{/hasChildren}}{{#hasChildren}}{{#discriminator}}Union[{{#children}}{{{classname}}}{{^-last}}, {{/-last}}{{/children}}]{{/discriminator}}{{^discriminator}}{{{classname}}}{{/discriminator}}{{/hasChildren}}: """Create an instance of {{{classname}}} from a dict""" {{#hasChildren}} {{#discriminator}} @@ -265,18 +291,26 @@ class {{classname}}({{#parent}}{{{.}}}{{/parent}}{{^parent}}BaseModel{{/parent}} {{#allVars}} {{#isContainer}} {{#isArray}} - {{#items.isArray}} + {{#items.isContainer}} {{#items.items.isPrimitiveType}} "{{{name}}}": obj.get("{{{baseName}}}"){{^-last}},{{/-last}} {{/items.items.isPrimitiveType}} {{^items.items.isPrimitiveType}} + {{#items.isArray}} "{{{name}}}": [ [{{{items.items.dataType}}}.from_dict(_inner_item) for _inner_item in _item] for _item in obj.get("{{{baseName}}}") ] if obj.get("{{{baseName}}}") is not None else None{{^-last}},{{/-last}} - {{/items.items.isPrimitiveType}} {{/items.isArray}} - {{^items.isArray}} + {{#items.isMap}} + "{{{name}}}": [ + {_inner_key: {{{items.items.dataType}}}.from_dict(_inner_value) for _inner_key, _inner_value in _item.items()} + for _item in obj.get("{{{baseName}}}") + ] if obj.get("{{{baseName}}}") is not None else None{{^-last}},{{/-last}} + {{/items.isMap}} + {{/items.items.isPrimitiveType}} + {{/items.isContainer}} + {{^items.isContainer}} {{^items.isPrimitiveType}} {{#items.isEnumOrRef}} "{{{name}}}": obj.get("{{{baseName}}}"){{^-last}},{{/-last}} @@ -288,48 +322,39 @@ class {{classname}}({{#parent}}{{{.}}}{{/parent}}{{^parent}}BaseModel{{/parent}} {{#items.isPrimitiveType}} "{{{name}}}": obj.get("{{{baseName}}}"){{^-last}},{{/-last}} {{/items.isPrimitiveType}} - {{/items.isArray}} + {{/items.isContainer}} {{/isArray}} {{#isMap}} {{^items.isPrimitiveType}} {{^items.isEnumOrRef}} {{#items.isContainer}} {{#items.isMap}} - "{{{name}}}": dict( - (_k, dict( - (_ik, {{{items.items.dataType}}}.from_dict(_iv)) - for _ik, _iv in _v.items() - ) - if _v is not None - else None - ) - for _k, _v in obj.get("{{{baseName}}}").items() - ) + "{{{name}}}": { + _k: {_ik: {{{items.items.dataType}}}.from_dict(_iv) for _ik, _iv in _v.items()} if _v is not None else None + for _k, _v in obj["{{{baseName}}}"].items() + } if obj.get("{{{baseName}}}") is not None else None{{^-last}},{{/-last}} {{/items.isMap}} {{#items.isArray}} - "{{{name}}}": dict( - (_k, - [{{{items.items.dataType}}}.from_dict(_item) for _item in _v] - if _v is not None - else None - ) - for _k, _v in obj.get("{{{baseName}}}").items() - ){{^-last}},{{/-last}} + "{{{name}}}": { + _k: [{{{items.items.dataType}}}.from_dict(_item) for _item in _v] if _v is not None else None + for _k, _v in obj["{{{baseName}}}"].items() + } + if obj.get("{{{baseName}}}") is not None + else None{{^-last}},{{/-last}} {{/items.isArray}} {{/items.isContainer}} {{^items.isContainer}} - "{{{name}}}": dict( - (_k, {{{items.dataType}}}.from_dict(_v)) - for _k, _v in obj.get("{{{baseName}}}").items() - ) + "{{{name}}}": { + _k: {{{items.dataType}}}.from_dict(_v) for _k, _v in obj["{{{baseName}}}"].items() + } if obj.get("{{{baseName}}}") is not None else None{{^-last}},{{/-last}} {{/items.isContainer}} {{/items.isEnumOrRef}} {{#items.isEnumOrRef}} - "{{{name}}}": dict((_k, _v) for _k, _v in obj.get("{{{baseName}}}").items()){{^-last}},{{/-last}} + "{{{name}}}": obj.get("{{{baseName}}}"){{^-last}},{{/-last}} {{/items.isEnumOrRef}} {{/items.isPrimitiveType}} {{#items.isPrimitiveType}} diff --git a/samples/openapi3/client/petstore/python-pydantic-v1-aiohttp/petstore_api/models/additional_properties_class.py b/samples/openapi3/client/petstore/python-pydantic-v1-aiohttp/petstore_api/models/additional_properties_class.py index 45c279def9fb..ed5cfb508668 100644 --- a/samples/openapi3/client/petstore/python-pydantic-v1-aiohttp/petstore_api/models/additional_properties_class.py +++ b/samples/openapi3/client/petstore/python-pydantic-v1-aiohttp/petstore_api/models/additional_properties_class.py @@ -55,13 +55,15 @@ def to_dict(self): exclude={ }, exclude_none=True) - # override the default output from pydantic by calling `to_dict()` of each value in map_of_map_non_primitive_property (dict) - _field_dict = {} + # override the default output from pydantic by calling `to_dict()` of each value in map_of_map_non_primitive_property (dict of dict) + _field_dict_of_dict = {} if self.map_of_map_non_primitive_property: - for _key in self.map_of_map_non_primitive_property: - if self.map_of_map_non_primitive_property[_key]: - _field_dict[_key] = self.map_of_map_non_primitive_property[_key].to_dict() - _dict['map_of_map_non_primitive_property'] = _field_dict + for _key, _value in self.map_of_map_non_primitive_property.items(): + if _value is not None: + _field_dict_of_dict[_key] = { + _inner_key: _inner_value.to_dict() for _inner_key, _inner_value in _value.items() if _inner_value is not None + } + _dict['map_of_map_non_primitive_property'] = _field_dict_of_dict return _dict @classmethod @@ -76,16 +78,10 @@ def from_dict(cls, obj: dict) -> AdditionalPropertiesClass: _obj = AdditionalPropertiesClass.parse_obj({ "map_property": obj.get("map_property"), "map_of_map_property": obj.get("map_of_map_property"), - "map_of_map_non_primitive_property": dict( - (_k, dict( - (_ik, Pet.from_dict(_iv)) - for _ik, _iv in _v.items() - ) - if _v is not None - else None - ) - for _k, _v in obj.get("map_of_map_non_primitive_property").items() - ) + "map_of_map_non_primitive_property": { + _k: {_ik: Pet.from_dict(_iv) for _ik, _iv in _v.items()} if _v is not None else None + for _k, _v in obj["map_of_map_non_primitive_property"].items() + } if obj.get("map_of_map_non_primitive_property") is not None else None }) diff --git a/samples/openapi3/client/petstore/python-pydantic-v1-aiohttp/petstore_api/models/animal.py b/samples/openapi3/client/petstore/python-pydantic-v1-aiohttp/petstore_api/models/animal.py index d299cee14f7f..1ddef8432004 100644 --- a/samples/openapi3/client/petstore/python-pydantic-v1-aiohttp/petstore_api/models/animal.py +++ b/samples/openapi3/client/petstore/python-pydantic-v1-aiohttp/petstore_api/models/animal.py @@ -67,7 +67,7 @@ def to_json(self) -> str: return json.dumps(self.to_dict()) @classmethod - def from_json(cls, json_str: str) -> Union(Cat, Dog): + def from_json(cls, json_str: str) -> Union[Cat, Dog]: """Create an instance of Animal from a JSON string""" return cls.from_dict(json.loads(json_str)) @@ -80,7 +80,7 @@ def to_dict(self): return _dict @classmethod - def from_dict(cls, obj: dict) -> Union(Cat, Dog): + def from_dict(cls, obj: dict) -> Union[Cat, Dog]: """Create an instance of Animal from a dict""" # look up the object type based on discriminator mapping object_type = cls.get_discriminator_value(obj) diff --git a/samples/openapi3/client/petstore/python-pydantic-v1-aiohttp/petstore_api/models/array_of_map_model.py b/samples/openapi3/client/petstore/python-pydantic-v1-aiohttp/petstore_api/models/array_of_map_model.py index d701c96c0906..9c8cd740b509 100644 --- a/samples/openapi3/client/petstore/python-pydantic-v1-aiohttp/petstore_api/models/array_of_map_model.py +++ b/samples/openapi3/client/petstore/python-pydantic-v1-aiohttp/petstore_api/models/array_of_map_model.py @@ -53,12 +53,14 @@ def to_dict(self): exclude={ }, exclude_none=True) - # override the default output from pydantic by calling `to_dict()` of each item in array_of_map_property (list) + # override the default output from pydantic by calling `to_dict()` of each item in array_of_map_property (list of map) _items = [] if self.array_of_map_property: for _item in self.array_of_map_property: if _item: - _items.append(_item.to_dict()) + _items.append( + {_inner_key: _inner_value.to_dict() for _inner_key, _inner_value in _item.items() if _inner_value is not None} + ) _dict['array_of_map_property'] = _items return _dict @@ -72,7 +74,10 @@ def from_dict(cls, obj: dict) -> ArrayOfMapModel: return ArrayOfMapModel.parse_obj(obj) _obj = ArrayOfMapModel.parse_obj({ - "array_of_map_property": [Dict[str, Tag].from_dict(_item) for _item in obj.get("array_of_map_property")] if obj.get("array_of_map_property") is not None else None + "array_of_map_property": [ + {_inner_key: Tag.from_dict(_inner_value) for _inner_key, _inner_value in _item.items()} + for _item in obj.get("array_of_map_property") + ] if obj.get("array_of_map_property") is not None else None }) return _obj diff --git a/samples/openapi3/client/petstore/python-pydantic-v1-aiohttp/petstore_api/models/base_discriminator.py b/samples/openapi3/client/petstore/python-pydantic-v1-aiohttp/petstore_api/models/base_discriminator.py index aa1514c94448..5b44a5df4929 100644 --- a/samples/openapi3/client/petstore/python-pydantic-v1-aiohttp/petstore_api/models/base_discriminator.py +++ b/samples/openapi3/client/petstore/python-pydantic-v1-aiohttp/petstore_api/models/base_discriminator.py @@ -66,7 +66,7 @@ def to_json(self) -> str: return json.dumps(self.to_dict()) @classmethod - def from_json(cls, json_str: str) -> Union(Info, PrimitiveString): + def from_json(cls, json_str: str) -> Union[Info, PrimitiveString]: """Create an instance of BaseDiscriminator from a JSON string""" return cls.from_dict(json.loads(json_str)) @@ -79,7 +79,7 @@ def to_dict(self): return _dict @classmethod - def from_dict(cls, obj: dict) -> Union(Info, PrimitiveString): + def from_dict(cls, obj: dict) -> Union[Info, PrimitiveString]: """Create an instance of BaseDiscriminator from a dict""" # look up the object type based on discriminator mapping object_type = cls.get_discriminator_value(obj) diff --git a/samples/openapi3/client/petstore/python-pydantic-v1-aiohttp/petstore_api/models/creature.py b/samples/openapi3/client/petstore/python-pydantic-v1-aiohttp/petstore_api/models/creature.py index 7d773cd64e7a..01e5d9a45acc 100644 --- a/samples/openapi3/client/petstore/python-pydantic-v1-aiohttp/petstore_api/models/creature.py +++ b/samples/openapi3/client/petstore/python-pydantic-v1-aiohttp/petstore_api/models/creature.py @@ -66,7 +66,7 @@ def to_json(self) -> str: return json.dumps(self.to_dict()) @classmethod - def from_json(cls, json_str: str) -> Union(HuntingDog): + def from_json(cls, json_str: str) -> Union[HuntingDog]: """Create an instance of Creature from a JSON string""" return cls.from_dict(json.loads(json_str)) @@ -82,7 +82,7 @@ def to_dict(self): return _dict @classmethod - def from_dict(cls, obj: dict) -> Union(HuntingDog): + def from_dict(cls, obj: dict) -> Union[HuntingDog]: """Create an instance of Creature from a dict""" # look up the object type based on discriminator mapping object_type = cls.get_discriminator_value(obj) diff --git a/samples/openapi3/client/petstore/python-pydantic-v1-aiohttp/petstore_api/models/discriminator_all_of_super.py b/samples/openapi3/client/petstore/python-pydantic-v1-aiohttp/petstore_api/models/discriminator_all_of_super.py index d476746d035a..81fb3f689e8a 100644 --- a/samples/openapi3/client/petstore/python-pydantic-v1-aiohttp/petstore_api/models/discriminator_all_of_super.py +++ b/samples/openapi3/client/petstore/python-pydantic-v1-aiohttp/petstore_api/models/discriminator_all_of_super.py @@ -64,7 +64,7 @@ def to_json(self) -> str: return json.dumps(self.to_dict()) @classmethod - def from_json(cls, json_str: str) -> Union(DiscriminatorAllOfSub): + def from_json(cls, json_str: str) -> Union[DiscriminatorAllOfSub]: """Create an instance of DiscriminatorAllOfSuper from a JSON string""" return cls.from_dict(json.loads(json_str)) @@ -77,7 +77,7 @@ def to_dict(self): return _dict @classmethod - def from_dict(cls, obj: dict) -> Union(DiscriminatorAllOfSub): + def from_dict(cls, obj: dict) -> Union[DiscriminatorAllOfSub]: """Create an instance of DiscriminatorAllOfSuper from a dict""" # look up the object type based on discriminator mapping object_type = cls.get_discriminator_value(obj) diff --git a/samples/openapi3/client/petstore/python-pydantic-v1-aiohttp/petstore_api/models/input_all_of.py b/samples/openapi3/client/petstore/python-pydantic-v1-aiohttp/petstore_api/models/input_all_of.py index 03990b32988f..d9e6f42ae4f3 100644 --- a/samples/openapi3/client/petstore/python-pydantic-v1-aiohttp/petstore_api/models/input_all_of.py +++ b/samples/openapi3/client/petstore/python-pydantic-v1-aiohttp/petstore_api/models/input_all_of.py @@ -72,10 +72,9 @@ def from_dict(cls, obj: dict) -> InputAllOf: return InputAllOf.parse_obj(obj) _obj = InputAllOf.parse_obj({ - "some_data": dict( - (_k, Tag.from_dict(_v)) - for _k, _v in obj.get("some_data").items() - ) + "some_data": { + _k: Tag.from_dict(_v) for _k, _v in obj["some_data"].items() + } if obj.get("some_data") is not None else None }) diff --git a/samples/openapi3/client/petstore/python-pydantic-v1-aiohttp/petstore_api/models/map_of_array_of_model.py b/samples/openapi3/client/petstore/python-pydantic-v1-aiohttp/petstore_api/models/map_of_array_of_model.py index 3e0c5f2f782f..b4c4ba94b51e 100644 --- a/samples/openapi3/client/petstore/python-pydantic-v1-aiohttp/petstore_api/models/map_of_array_of_model.py +++ b/samples/openapi3/client/petstore/python-pydantic-v1-aiohttp/petstore_api/models/map_of_array_of_model.py @@ -74,14 +74,12 @@ def from_dict(cls, obj: dict) -> MapOfArrayOfModel: return MapOfArrayOfModel.parse_obj(obj) _obj = MapOfArrayOfModel.parse_obj({ - "shop_id_to_org_online_lip_map": dict( - (_k, - [Tag.from_dict(_item) for _item in _v] - if _v is not None - else None - ) - for _k, _v in obj.get("shopIdToOrgOnlineLipMap").items() - ) + "shop_id_to_org_online_lip_map": { + _k: [Tag.from_dict(_item) for _item in _v] if _v is not None else None + for _k, _v in obj["shopIdToOrgOnlineLipMap"].items() + } + if obj.get("shopIdToOrgOnlineLipMap") is not None + else None }) return _obj diff --git a/samples/openapi3/client/petstore/python-pydantic-v1-aiohttp/petstore_api/models/mixed_properties_and_additional_properties_class.py b/samples/openapi3/client/petstore/python-pydantic-v1-aiohttp/petstore_api/models/mixed_properties_and_additional_properties_class.py index 59b1adeee43b..622839ee0492 100644 --- a/samples/openapi3/client/petstore/python-pydantic-v1-aiohttp/petstore_api/models/mixed_properties_and_additional_properties_class.py +++ b/samples/openapi3/client/petstore/python-pydantic-v1-aiohttp/petstore_api/models/mixed_properties_and_additional_properties_class.py @@ -76,10 +76,9 @@ def from_dict(cls, obj: dict) -> MixedPropertiesAndAdditionalPropertiesClass: _obj = MixedPropertiesAndAdditionalPropertiesClass.parse_obj({ "uuid": obj.get("uuid"), "date_time": obj.get("dateTime"), - "map": dict( - (_k, Animal.from_dict(_v)) - for _k, _v in obj.get("map").items() - ) + "map": { + _k: Animal.from_dict(_v) for _k, _v in obj["map"].items() + } if obj.get("map") is not None else None }) diff --git a/samples/openapi3/client/petstore/python-pydantic-v1-aiohttp/petstore_api/models/parent.py b/samples/openapi3/client/petstore/python-pydantic-v1-aiohttp/petstore_api/models/parent.py index 5abdaa381149..90c7f90d2d61 100644 --- a/samples/openapi3/client/petstore/python-pydantic-v1-aiohttp/petstore_api/models/parent.py +++ b/samples/openapi3/client/petstore/python-pydantic-v1-aiohttp/petstore_api/models/parent.py @@ -72,10 +72,9 @@ def from_dict(cls, obj: dict) -> Parent: return Parent.parse_obj(obj) _obj = Parent.parse_obj({ - "optional_dict": dict( - (_k, InnerDictWithProperty.from_dict(_v)) - for _k, _v in obj.get("optionalDict").items() - ) + "optional_dict": { + _k: InnerDictWithProperty.from_dict(_v) for _k, _v in obj["optionalDict"].items() + } if obj.get("optionalDict") is not None else None }) diff --git a/samples/openapi3/client/petstore/python-pydantic-v1-aiohttp/petstore_api/models/parent_with_optional_dict.py b/samples/openapi3/client/petstore/python-pydantic-v1-aiohttp/petstore_api/models/parent_with_optional_dict.py index 1ef787705030..2f2010cd4478 100644 --- a/samples/openapi3/client/petstore/python-pydantic-v1-aiohttp/petstore_api/models/parent_with_optional_dict.py +++ b/samples/openapi3/client/petstore/python-pydantic-v1-aiohttp/petstore_api/models/parent_with_optional_dict.py @@ -72,10 +72,9 @@ def from_dict(cls, obj: dict) -> ParentWithOptionalDict: return ParentWithOptionalDict.parse_obj(obj) _obj = ParentWithOptionalDict.parse_obj({ - "optional_dict": dict( - (_k, InnerDictWithProperty.from_dict(_v)) - for _k, _v in obj.get("optionalDict").items() - ) + "optional_dict": { + _k: InnerDictWithProperty.from_dict(_v) for _k, _v in obj["optionalDict"].items() + } if obj.get("optionalDict") is not None else None }) diff --git a/samples/openapi3/client/petstore/python-pydantic-v1-aiohttp/petstore_api/models/property_map.py b/samples/openapi3/client/petstore/python-pydantic-v1-aiohttp/petstore_api/models/property_map.py index 9d3d06512b33..ccd88f12125e 100644 --- a/samples/openapi3/client/petstore/python-pydantic-v1-aiohttp/petstore_api/models/property_map.py +++ b/samples/openapi3/client/petstore/python-pydantic-v1-aiohttp/petstore_api/models/property_map.py @@ -72,10 +72,9 @@ def from_dict(cls, obj: dict) -> PropertyMap: return PropertyMap.parse_obj(obj) _obj = PropertyMap.parse_obj({ - "some_data": dict( - (_k, Tag.from_dict(_v)) - for _k, _v in obj.get("some_data").items() - ) + "some_data": { + _k: Tag.from_dict(_v) for _k, _v in obj["some_data"].items() + } if obj.get("some_data") is not None else None }) diff --git a/samples/openapi3/client/petstore/python-pydantic-v1-aiohttp/petstore_api/models/unnamed_dict_with_additional_model_list_properties.py b/samples/openapi3/client/petstore/python-pydantic-v1-aiohttp/petstore_api/models/unnamed_dict_with_additional_model_list_properties.py index f4e22caa9d25..dbd8dd518635 100644 --- a/samples/openapi3/client/petstore/python-pydantic-v1-aiohttp/petstore_api/models/unnamed_dict_with_additional_model_list_properties.py +++ b/samples/openapi3/client/petstore/python-pydantic-v1-aiohttp/petstore_api/models/unnamed_dict_with_additional_model_list_properties.py @@ -74,14 +74,12 @@ def from_dict(cls, obj: dict) -> UnnamedDictWithAdditionalModelListProperties: return UnnamedDictWithAdditionalModelListProperties.parse_obj(obj) _obj = UnnamedDictWithAdditionalModelListProperties.parse_obj({ - "dict_property": dict( - (_k, - [CreatureInfo.from_dict(_item) for _item in _v] - if _v is not None - else None - ) - for _k, _v in obj.get("dictProperty").items() - ) + "dict_property": { + _k: [CreatureInfo.from_dict(_item) for _item in _v] if _v is not None else None + for _k, _v in obj["dictProperty"].items() + } + if obj.get("dictProperty") is not None + else None }) return _obj diff --git a/samples/openapi3/client/petstore/python-pydantic-v1/petstore_api/models/additional_properties_class.py b/samples/openapi3/client/petstore/python-pydantic-v1/petstore_api/models/additional_properties_class.py index ce7f934a1d97..5bd541132b11 100644 --- a/samples/openapi3/client/petstore/python-pydantic-v1/petstore_api/models/additional_properties_class.py +++ b/samples/openapi3/client/petstore/python-pydantic-v1/petstore_api/models/additional_properties_class.py @@ -57,13 +57,15 @@ def to_dict(self): "additional_properties" }, exclude_none=True) - # override the default output from pydantic by calling `to_dict()` of each value in map_of_map_non_primitive_property (dict) - _field_dict = {} + # override the default output from pydantic by calling `to_dict()` of each value in map_of_map_non_primitive_property (dict of dict) + _field_dict_of_dict = {} if self.map_of_map_non_primitive_property: - for _key in self.map_of_map_non_primitive_property: - if self.map_of_map_non_primitive_property[_key]: - _field_dict[_key] = self.map_of_map_non_primitive_property[_key].to_dict() - _dict['map_of_map_non_primitive_property'] = _field_dict + for _key, _value in self.map_of_map_non_primitive_property.items(): + if _value is not None: + _field_dict_of_dict[_key] = { + _inner_key: _inner_value.to_dict() for _inner_key, _inner_value in _value.items() if _inner_value is not None + } + _dict['map_of_map_non_primitive_property'] = _field_dict_of_dict # puts key-value pairs in additional_properties in the top level if self.additional_properties is not None: for _key, _value in self.additional_properties.items(): @@ -83,16 +85,10 @@ def from_dict(cls, obj: dict) -> AdditionalPropertiesClass: _obj = AdditionalPropertiesClass.parse_obj({ "map_property": obj.get("map_property"), "map_of_map_property": obj.get("map_of_map_property"), - "map_of_map_non_primitive_property": dict( - (_k, dict( - (_ik, Pet.from_dict(_iv)) - for _ik, _iv in _v.items() - ) - if _v is not None - else None - ) - for _k, _v in obj.get("map_of_map_non_primitive_property").items() - ) + "map_of_map_non_primitive_property": { + _k: {_ik: Pet.from_dict(_iv) for _ik, _iv in _v.items()} if _v is not None else None + for _k, _v in obj["map_of_map_non_primitive_property"].items() + } if obj.get("map_of_map_non_primitive_property") is not None else None }) diff --git a/samples/openapi3/client/petstore/python-pydantic-v1/petstore_api/models/animal.py b/samples/openapi3/client/petstore/python-pydantic-v1/petstore_api/models/animal.py index 652e2e9a1b51..fe2f38d3c89e 100644 --- a/samples/openapi3/client/petstore/python-pydantic-v1/petstore_api/models/animal.py +++ b/samples/openapi3/client/petstore/python-pydantic-v1/petstore_api/models/animal.py @@ -68,7 +68,7 @@ def to_json(self) -> str: return json.dumps(self.to_dict()) @classmethod - def from_json(cls, json_str: str) -> Union(Cat, Dog): + def from_json(cls, json_str: str) -> Union[Cat, Dog]: """Create an instance of Animal from a JSON string""" return cls.from_dict(json.loads(json_str)) @@ -87,7 +87,7 @@ def to_dict(self): return _dict @classmethod - def from_dict(cls, obj: dict) -> Union(Cat, Dog): + def from_dict(cls, obj: dict) -> Union[Cat, Dog]: """Create an instance of Animal from a dict""" # look up the object type based on discriminator mapping object_type = cls.get_discriminator_value(obj) diff --git a/samples/openapi3/client/petstore/python-pydantic-v1/petstore_api/models/array_of_map_model.py b/samples/openapi3/client/petstore/python-pydantic-v1/petstore_api/models/array_of_map_model.py index 4e57865b8b59..8d502b5ab63d 100644 --- a/samples/openapi3/client/petstore/python-pydantic-v1/petstore_api/models/array_of_map_model.py +++ b/samples/openapi3/client/petstore/python-pydantic-v1/petstore_api/models/array_of_map_model.py @@ -55,12 +55,14 @@ def to_dict(self): "additional_properties" }, exclude_none=True) - # override the default output from pydantic by calling `to_dict()` of each item in array_of_map_property (list) + # override the default output from pydantic by calling `to_dict()` of each item in array_of_map_property (list of map) _items = [] if self.array_of_map_property: for _item in self.array_of_map_property: if _item: - _items.append(_item.to_dict()) + _items.append( + {_inner_key: _inner_value.to_dict() for _inner_key, _inner_value in _item.items() if _inner_value is not None} + ) _dict['array_of_map_property'] = _items # puts key-value pairs in additional_properties in the top level if self.additional_properties is not None: @@ -79,7 +81,10 @@ def from_dict(cls, obj: dict) -> ArrayOfMapModel: return ArrayOfMapModel.parse_obj(obj) _obj = ArrayOfMapModel.parse_obj({ - "array_of_map_property": [Dict[str, Tag].from_dict(_item) for _item in obj.get("array_of_map_property")] if obj.get("array_of_map_property") is not None else None + "array_of_map_property": [ + {_inner_key: Tag.from_dict(_inner_value) for _inner_key, _inner_value in _item.items()} + for _item in obj.get("array_of_map_property") + ] if obj.get("array_of_map_property") is not None else None }) # store additional fields in additional_properties for _key in obj.keys(): diff --git a/samples/openapi3/client/petstore/python-pydantic-v1/petstore_api/models/base_discriminator.py b/samples/openapi3/client/petstore/python-pydantic-v1/petstore_api/models/base_discriminator.py index 1eaf3731bf79..663cf259f882 100644 --- a/samples/openapi3/client/petstore/python-pydantic-v1/petstore_api/models/base_discriminator.py +++ b/samples/openapi3/client/petstore/python-pydantic-v1/petstore_api/models/base_discriminator.py @@ -67,7 +67,7 @@ def to_json(self) -> str: return json.dumps(self.to_dict()) @classmethod - def from_json(cls, json_str: str) -> Union(Info, PrimitiveString): + def from_json(cls, json_str: str) -> Union[Info, PrimitiveString]: """Create an instance of BaseDiscriminator from a JSON string""" return cls.from_dict(json.loads(json_str)) @@ -86,7 +86,7 @@ def to_dict(self): return _dict @classmethod - def from_dict(cls, obj: dict) -> Union(Info, PrimitiveString): + def from_dict(cls, obj: dict) -> Union[Info, PrimitiveString]: """Create an instance of BaseDiscriminator from a dict""" # look up the object type based on discriminator mapping object_type = cls.get_discriminator_value(obj) diff --git a/samples/openapi3/client/petstore/python-pydantic-v1/petstore_api/models/creature.py b/samples/openapi3/client/petstore/python-pydantic-v1/petstore_api/models/creature.py index b18c39c65f52..ba3d98a911c3 100644 --- a/samples/openapi3/client/petstore/python-pydantic-v1/petstore_api/models/creature.py +++ b/samples/openapi3/client/petstore/python-pydantic-v1/petstore_api/models/creature.py @@ -67,7 +67,7 @@ def to_json(self) -> str: return json.dumps(self.to_dict()) @classmethod - def from_json(cls, json_str: str) -> Union(HuntingDog): + def from_json(cls, json_str: str) -> Union[HuntingDog]: """Create an instance of Creature from a JSON string""" return cls.from_dict(json.loads(json_str)) @@ -89,7 +89,7 @@ def to_dict(self): return _dict @classmethod - def from_dict(cls, obj: dict) -> Union(HuntingDog): + def from_dict(cls, obj: dict) -> Union[HuntingDog]: """Create an instance of Creature from a dict""" # look up the object type based on discriminator mapping object_type = cls.get_discriminator_value(obj) diff --git a/samples/openapi3/client/petstore/python-pydantic-v1/petstore_api/models/discriminator_all_of_super.py b/samples/openapi3/client/petstore/python-pydantic-v1/petstore_api/models/discriminator_all_of_super.py index df865b56b21a..07b83b0f65c5 100644 --- a/samples/openapi3/client/petstore/python-pydantic-v1/petstore_api/models/discriminator_all_of_super.py +++ b/samples/openapi3/client/petstore/python-pydantic-v1/petstore_api/models/discriminator_all_of_super.py @@ -65,7 +65,7 @@ def to_json(self) -> str: return json.dumps(self.to_dict()) @classmethod - def from_json(cls, json_str: str) -> Union(DiscriminatorAllOfSub): + def from_json(cls, json_str: str) -> Union[DiscriminatorAllOfSub]: """Create an instance of DiscriminatorAllOfSuper from a JSON string""" return cls.from_dict(json.loads(json_str)) @@ -84,7 +84,7 @@ def to_dict(self): return _dict @classmethod - def from_dict(cls, obj: dict) -> Union(DiscriminatorAllOfSub): + def from_dict(cls, obj: dict) -> Union[DiscriminatorAllOfSub]: """Create an instance of DiscriminatorAllOfSuper from a dict""" # look up the object type based on discriminator mapping object_type = cls.get_discriminator_value(obj) diff --git a/samples/openapi3/client/petstore/python-pydantic-v1/petstore_api/models/input_all_of.py b/samples/openapi3/client/petstore/python-pydantic-v1/petstore_api/models/input_all_of.py index 1cec578d28e9..432db3528137 100644 --- a/samples/openapi3/client/petstore/python-pydantic-v1/petstore_api/models/input_all_of.py +++ b/samples/openapi3/client/petstore/python-pydantic-v1/petstore_api/models/input_all_of.py @@ -79,10 +79,9 @@ def from_dict(cls, obj: dict) -> InputAllOf: return InputAllOf.parse_obj(obj) _obj = InputAllOf.parse_obj({ - "some_data": dict( - (_k, Tag.from_dict(_v)) - for _k, _v in obj.get("some_data").items() - ) + "some_data": { + _k: Tag.from_dict(_v) for _k, _v in obj["some_data"].items() + } if obj.get("some_data") is not None else None }) diff --git a/samples/openapi3/client/petstore/python-pydantic-v1/petstore_api/models/map_of_array_of_model.py b/samples/openapi3/client/petstore/python-pydantic-v1/petstore_api/models/map_of_array_of_model.py index e2c1cb4f788c..75b4d19cbde4 100644 --- a/samples/openapi3/client/petstore/python-pydantic-v1/petstore_api/models/map_of_array_of_model.py +++ b/samples/openapi3/client/petstore/python-pydantic-v1/petstore_api/models/map_of_array_of_model.py @@ -81,14 +81,12 @@ def from_dict(cls, obj: dict) -> MapOfArrayOfModel: return MapOfArrayOfModel.parse_obj(obj) _obj = MapOfArrayOfModel.parse_obj({ - "shop_id_to_org_online_lip_map": dict( - (_k, - [Tag.from_dict(_item) for _item in _v] - if _v is not None - else None - ) - for _k, _v in obj.get("shopIdToOrgOnlineLipMap").items() - ) + "shop_id_to_org_online_lip_map": { + _k: [Tag.from_dict(_item) for _item in _v] if _v is not None else None + for _k, _v in obj["shopIdToOrgOnlineLipMap"].items() + } + if obj.get("shopIdToOrgOnlineLipMap") is not None + else None }) # store additional fields in additional_properties for _key in obj.keys(): diff --git a/samples/openapi3/client/petstore/python-pydantic-v1/petstore_api/models/mixed_properties_and_additional_properties_class.py b/samples/openapi3/client/petstore/python-pydantic-v1/petstore_api/models/mixed_properties_and_additional_properties_class.py index 2c63d575bc23..8027a4a36dee 100644 --- a/samples/openapi3/client/petstore/python-pydantic-v1/petstore_api/models/mixed_properties_and_additional_properties_class.py +++ b/samples/openapi3/client/petstore/python-pydantic-v1/petstore_api/models/mixed_properties_and_additional_properties_class.py @@ -83,10 +83,9 @@ def from_dict(cls, obj: dict) -> MixedPropertiesAndAdditionalPropertiesClass: _obj = MixedPropertiesAndAdditionalPropertiesClass.parse_obj({ "uuid": obj.get("uuid"), "date_time": obj.get("dateTime"), - "map": dict( - (_k, Animal.from_dict(_v)) - for _k, _v in obj.get("map").items() - ) + "map": { + _k: Animal.from_dict(_v) for _k, _v in obj["map"].items() + } if obj.get("map") is not None else None }) diff --git a/samples/openapi3/client/petstore/python-pydantic-v1/petstore_api/models/parent.py b/samples/openapi3/client/petstore/python-pydantic-v1/petstore_api/models/parent.py index 0907f8a97521..1a3062606c6b 100644 --- a/samples/openapi3/client/petstore/python-pydantic-v1/petstore_api/models/parent.py +++ b/samples/openapi3/client/petstore/python-pydantic-v1/petstore_api/models/parent.py @@ -79,10 +79,9 @@ def from_dict(cls, obj: dict) -> Parent: return Parent.parse_obj(obj) _obj = Parent.parse_obj({ - "optional_dict": dict( - (_k, InnerDictWithProperty.from_dict(_v)) - for _k, _v in obj.get("optionalDict").items() - ) + "optional_dict": { + _k: InnerDictWithProperty.from_dict(_v) for _k, _v in obj["optionalDict"].items() + } if obj.get("optionalDict") is not None else None }) diff --git a/samples/openapi3/client/petstore/python-pydantic-v1/petstore_api/models/parent_with_optional_dict.py b/samples/openapi3/client/petstore/python-pydantic-v1/petstore_api/models/parent_with_optional_dict.py index ce4d274bee4f..4e82d77b067a 100644 --- a/samples/openapi3/client/petstore/python-pydantic-v1/petstore_api/models/parent_with_optional_dict.py +++ b/samples/openapi3/client/petstore/python-pydantic-v1/petstore_api/models/parent_with_optional_dict.py @@ -79,10 +79,9 @@ def from_dict(cls, obj: dict) -> ParentWithOptionalDict: return ParentWithOptionalDict.parse_obj(obj) _obj = ParentWithOptionalDict.parse_obj({ - "optional_dict": dict( - (_k, InnerDictWithProperty.from_dict(_v)) - for _k, _v in obj.get("optionalDict").items() - ) + "optional_dict": { + _k: InnerDictWithProperty.from_dict(_v) for _k, _v in obj["optionalDict"].items() + } if obj.get("optionalDict") is not None else None }) diff --git a/samples/openapi3/client/petstore/python-pydantic-v1/petstore_api/models/property_map.py b/samples/openapi3/client/petstore/python-pydantic-v1/petstore_api/models/property_map.py index 28790f7f1ef6..9dd582eefaa2 100644 --- a/samples/openapi3/client/petstore/python-pydantic-v1/petstore_api/models/property_map.py +++ b/samples/openapi3/client/petstore/python-pydantic-v1/petstore_api/models/property_map.py @@ -79,10 +79,9 @@ def from_dict(cls, obj: dict) -> PropertyMap: return PropertyMap.parse_obj(obj) _obj = PropertyMap.parse_obj({ - "some_data": dict( - (_k, Tag.from_dict(_v)) - for _k, _v in obj.get("some_data").items() - ) + "some_data": { + _k: Tag.from_dict(_v) for _k, _v in obj["some_data"].items() + } if obj.get("some_data") is not None else None }) diff --git a/samples/openapi3/client/petstore/python-pydantic-v1/petstore_api/models/unnamed_dict_with_additional_model_list_properties.py b/samples/openapi3/client/petstore/python-pydantic-v1/petstore_api/models/unnamed_dict_with_additional_model_list_properties.py index 1b3fa10031b9..1c42bf0b47c3 100644 --- a/samples/openapi3/client/petstore/python-pydantic-v1/petstore_api/models/unnamed_dict_with_additional_model_list_properties.py +++ b/samples/openapi3/client/petstore/python-pydantic-v1/petstore_api/models/unnamed_dict_with_additional_model_list_properties.py @@ -81,14 +81,12 @@ def from_dict(cls, obj: dict) -> UnnamedDictWithAdditionalModelListProperties: return UnnamedDictWithAdditionalModelListProperties.parse_obj(obj) _obj = UnnamedDictWithAdditionalModelListProperties.parse_obj({ - "dict_property": dict( - (_k, - [CreatureInfo.from_dict(_item) for _item in _v] - if _v is not None - else None - ) - for _k, _v in obj.get("dictProperty").items() - ) + "dict_property": { + _k: [CreatureInfo.from_dict(_item) for _item in _v] if _v is not None else None + for _k, _v in obj["dictProperty"].items() + } + if obj.get("dictProperty") is not None + else None }) # store additional fields in additional_properties for _key in obj.keys():