Skip to content

Commit 2151943

Browse files
committed
Fix python model dict array generation
1 parent c07f3a0 commit 2151943

11 files changed

Lines changed: 63 additions & 80 deletions

File tree

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -309,3 +309,6 @@ samples/client/petstore/ocaml-recursion-test/_build/
309309

310310
# jetbrain http client
311311
samples/client/jetbrains/adyen/checkout71/http/client/Apis/http-client.private.env.json
312+
313+
# Generated by the run-in-docker.sh
314+
\?/

modules/openapi-generator/src/main/resources/python-fastapi/model_generic.mustache

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -317,14 +317,12 @@ class {{classname}}({{#parent}}{{{.}}}{{/parent}}{{^parent}}BaseModel{{/parent}}
317317
else None{{^-last}},{{/-last}}
318318
{{/items.isMap}}
319319
{{#items.isArray}}
320-
"{{{baseName}}}": dict(
321-
(_k,
322-
[{{{items.items.dataType}}}.from_dict(_item) for _item in _v]
323-
if _v is not None
324-
else None
325-
)
326-
for _k, _v in obj.get("{{{baseName}}}").items()
327-
){{^-last}},{{/-last}}
320+
"{{{baseName}}}": {
321+
_k: [{{{items.items.dataType}}}.from_dict(_item) for _item in _v] if _v is not None else None
322+
for _k, _v in obj["{{{baseName}}}"].items()
323+
}
324+
if obj.get("{{{baseName}}}") is not None
325+
else None{{^-last}},{{/-last}}
328326
{{/items.isArray}}
329327
{{/items.isContainer}}
330328
{{^items.isContainer}}

modules/openapi-generator/src/main/resources/python/model_generic.mustache

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -380,14 +380,12 @@ class {{classname}}({{#parent}}{{{.}}}{{/parent}}{{^parent}}BaseModel{{/parent}}
380380
else None{{^-last}},{{/-last}}
381381
{{/items.isMap}}
382382
{{#items.isArray}}
383-
"{{{baseName}}}": dict(
384-
(_k,
385-
[{{{items.items.dataType}}}.from_dict(_item) for _item in _v]
386-
if _v is not None
387-
else None
388-
)
389-
for _k, _v in obj.get("{{{baseName}}}", {}).items()
390-
){{^-last}},{{/-last}}
383+
"{{{baseName}}}": {
384+
_k: [{{{items.items.dataType}}}.from_dict(_item) for _item in _v] if _v is not None else None
385+
for _k, _v in obj["{{{baseName}}}"].items()
386+
}
387+
if obj.get("{{{baseName}}}") is not None
388+
else None{{^-last}},{{/-last}}
391389
{{/items.isArray}}
392390
{{/items.isContainer}}
393391
{{^items.isContainer}}

samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/map_of_array_of_model.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -91,14 +91,12 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
9191
return cls.model_validate(obj)
9292

9393
_obj = cls.model_validate({
94-
"shopIdToOrgOnlineLipMap": dict(
95-
(_k,
96-
[Tag.from_dict(_item) for _item in _v]
97-
if _v is not None
98-
else None
99-
)
100-
for _k, _v in obj.get("shopIdToOrgOnlineLipMap", {}).items()
101-
)
94+
"shopIdToOrgOnlineLipMap": {
95+
_k: [Tag.from_dict(_item) for _item in _v] if _v is not None else None
96+
for _k, _v in obj["shopIdToOrgOnlineLipMap"].items()
97+
}
98+
if obj.get("shopIdToOrgOnlineLipMap") is not None
99+
else None
102100
})
103101
return _obj
104102

samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/unnamed_dict_with_additional_model_list_properties.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -91,14 +91,12 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
9191
return cls.model_validate(obj)
9292

9393
_obj = cls.model_validate({
94-
"dictProperty": dict(
95-
(_k,
96-
[CreatureInfo.from_dict(_item) for _item in _v]
97-
if _v is not None
98-
else None
99-
)
100-
for _k, _v in obj.get("dictProperty", {}).items()
101-
)
94+
"dictProperty": {
95+
_k: [CreatureInfo.from_dict(_item) for _item in _v] if _v is not None else None
96+
for _k, _v in obj["dictProperty"].items()
97+
}
98+
if obj.get("dictProperty") is not None
99+
else None
102100
})
103101
return _obj
104102

samples/openapi3/client/petstore/python-httpx/petstore_api/models/map_of_array_of_model.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -91,14 +91,12 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
9191
return cls.model_validate(obj)
9292

9393
_obj = cls.model_validate({
94-
"shopIdToOrgOnlineLipMap": dict(
95-
(_k,
96-
[Tag.from_dict(_item) for _item in _v]
97-
if _v is not None
98-
else None
99-
)
100-
for _k, _v in obj.get("shopIdToOrgOnlineLipMap", {}).items()
101-
)
94+
"shopIdToOrgOnlineLipMap": {
95+
_k: [Tag.from_dict(_item) for _item in _v] if _v is not None else None
96+
for _k, _v in obj["shopIdToOrgOnlineLipMap"].items()
97+
}
98+
if obj.get("shopIdToOrgOnlineLipMap") is not None
99+
else None
102100
})
103101
return _obj
104102

samples/openapi3/client/petstore/python-httpx/petstore_api/models/unnamed_dict_with_additional_model_list_properties.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -91,14 +91,12 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
9191
return cls.model_validate(obj)
9292

9393
_obj = cls.model_validate({
94-
"dictProperty": dict(
95-
(_k,
96-
[CreatureInfo.from_dict(_item) for _item in _v]
97-
if _v is not None
98-
else None
99-
)
100-
for _k, _v in obj.get("dictProperty", {}).items()
101-
)
94+
"dictProperty": {
95+
_k: [CreatureInfo.from_dict(_item) for _item in _v] if _v is not None else None
96+
for _k, _v in obj["dictProperty"].items()
97+
}
98+
if obj.get("dictProperty") is not None
99+
else None
102100
})
103101
return _obj
104102

samples/openapi3/client/petstore/python-lazyImports/petstore_api/models/map_of_array_of_model.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -99,14 +99,12 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
9999
return cls.model_validate(obj)
100100

101101
_obj = cls.model_validate({
102-
"shopIdToOrgOnlineLipMap": dict(
103-
(_k,
104-
[Tag.from_dict(_item) for _item in _v]
105-
if _v is not None
106-
else None
107-
)
108-
for _k, _v in obj.get("shopIdToOrgOnlineLipMap", {}).items()
109-
)
102+
"shopIdToOrgOnlineLipMap": {
103+
_k: [Tag.from_dict(_item) for _item in _v] if _v is not None else None
104+
for _k, _v in obj["shopIdToOrgOnlineLipMap"].items()
105+
}
106+
if obj.get("shopIdToOrgOnlineLipMap") is not None
107+
else None
110108
})
111109
# store additional fields in additional_properties
112110
for _key in obj.keys():

samples/openapi3/client/petstore/python-lazyImports/petstore_api/models/unnamed_dict_with_additional_model_list_properties.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -99,14 +99,12 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
9999
return cls.model_validate(obj)
100100

101101
_obj = cls.model_validate({
102-
"dictProperty": dict(
103-
(_k,
104-
[CreatureInfo.from_dict(_item) for _item in _v]
105-
if _v is not None
106-
else None
107-
)
108-
for _k, _v in obj.get("dictProperty", {}).items()
109-
)
102+
"dictProperty": {
103+
_k: [CreatureInfo.from_dict(_item) for _item in _v] if _v is not None else None
104+
for _k, _v in obj["dictProperty"].items()
105+
}
106+
if obj.get("dictProperty") is not None
107+
else None
110108
})
111109
# store additional fields in additional_properties
112110
for _key in obj.keys():

samples/openapi3/client/petstore/python/petstore_api/models/map_of_array_of_model.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -99,14 +99,12 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
9999
return cls.model_validate(obj)
100100

101101
_obj = cls.model_validate({
102-
"shopIdToOrgOnlineLipMap": dict(
103-
(_k,
104-
[Tag.from_dict(_item) for _item in _v]
105-
if _v is not None
106-
else None
107-
)
108-
for _k, _v in obj.get("shopIdToOrgOnlineLipMap", {}).items()
109-
)
102+
"shopIdToOrgOnlineLipMap": {
103+
_k: [Tag.from_dict(_item) for _item in _v] if _v is not None else None
104+
for _k, _v in obj["shopIdToOrgOnlineLipMap"].items()
105+
}
106+
if obj.get("shopIdToOrgOnlineLipMap") is not None
107+
else None
110108
})
111109
# store additional fields in additional_properties
112110
for _key in obj.keys():

0 commit comments

Comments
 (0)