Skip to content

Commit 6134e8e

Browse files
ilayu-blipwing328
andauthored
Fix python model dict array generation (#23538)
Co-authored-by: William Cheng <wing328hk@gmail.com>
1 parent 685d9b9 commit 6134e8e

11 files changed

Lines changed: 61 additions & 81 deletions

File tree

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -311,4 +311,4 @@ samples/client/petstore/ocaml-recursion-test/_build/
311311
samples/client/jetbrains/adyen/checkout71/http/client/Apis/http-client.private.env.json
312312

313313
# Generated by the run-in-docker.sh
314-
\?/
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
@@ -383,14 +383,12 @@ class {{classname}}({{#parent}}{{{.}}}{{/parent}}{{^parent}}BaseModel{{/parent}}
383383
else None{{^-last}},{{/-last}}
384384
{{/items.isMap}}
385385
{{#items.isArray}}
386-
"{{{baseName}}}": dict(
387-
(_k,
388-
[{{{items.items.dataType}}}.from_dict(_item) for _item in _v]
389-
if _v is not None
390-
else None
391-
)
392-
for _k, _v in obj.get("{{{baseName}}}", {}).items()
393-
){{^-last}},{{/-last}}
386+
"{{{baseName}}}": {
387+
_k: [{{{items.items.dataType}}}.from_dict(_item) for _item in _v] if _v is not None else None
388+
for _k, _v in obj["{{{baseName}}}"].items()
389+
}
390+
if obj.get("{{{baseName}}}") is not None
391+
else None{{^-last}},{{/-last}}
394392
{{/items.isArray}}
395393
{{/items.isContainer}}
396394
{{^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)