@@ -182,7 +182,21 @@ class {{classname}}({{#parent}}{{{.}}}{{/parent}}{{^parent}}BaseModel{{/parent}}
182182 _dict['{ {{baseName} }}'] = _items
183183 { {/items.items.isPrimitiveType} }
184184 { {/items.isArray} }
185+ { {#items.isMap} }
186+ { {^items.items.isPrimitiveType} }
187+ # override the default output from pydantic by calling `to_dict()` of each item in { {{name} }} (list of dict)
188+ _items = []
189+ if self.{ {{name} }}:
190+ for _item_{ {{name} }} in self.{ {{name} }}:
191+ if _item_{ {{name} }}:
192+ _items.append(
193+ { _inner_key: _inner_value.to_dict() for _inner_key, _inner_value in _item_{{{name} }}.items()}
194+ )
195+ _dict['{ {{baseName} }}'] = _items
196+ { {/items.items.isPrimitiveType} }
197+ { {/items.isMap} }
185198 { {^items.isArray} }
199+ { {^items.isMap} }
186200 { {^items.isPrimitiveType} }
187201 { {^items.isEnumOrRef} }
188202 # override the default output from pydantic by calling `to_dict()` of each item in { {{name} }} (list)
@@ -194,6 +208,7 @@ class {{classname}}({{#parent}}{{{.}}}{{/parent}}{{^parent}}BaseModel{{/parent}}
194208 _dict['{ {{baseName} }}'] = _items
195209 { {/items.isEnumOrRef} }
196210 { {/items.isPrimitiveType} }
211+ { {/items.isMap} }
197212 { {/items.isArray} }
198213 { {/isArray} }
199214 { {#isMap} }
@@ -210,6 +225,18 @@ class {{classname}}({{#parent}}{{{.}}}{{/parent}}{{^parent}}BaseModel{{/parent}}
210225 _dict['{ {{baseName} }}'] = _field_dict_of_array
211226 { {/items.items.isPrimitiveType} }
212227 { {/items.isArray} }
228+ { {#items.isMap} }
229+ # override the default output from pydantic by calling `to_dict()` of each value in { {{name} }} (dict of dict)
230+ _field_dict_of_dict = { }
231+ if self.{ {{name} }}:
232+ for _key_{ {{name} }}, _value_{ {{name} }} in self.{ {{name} }}.items():
233+ if _value_{ {{name} }} is not None:
234+ _field_dict_of_dict[_key_{ {{name} }}] = {
235+ _key: _value.to_dict() for _key, _value in _value_{{{name} }}.items()
236+ }
237+ _dict['{ {{baseName} }}'] = _field_dict_of_dict
238+ { {/items.isMap} }
239+ { {^items.isMap} }
213240 { {^items.isArray} }
214241 { {^items.isPrimitiveType} }
215242 { {^items.isEnumOrRef} }
@@ -223,6 +250,7 @@ class {{classname}}({{#parent}}{{{.}}}{{/parent}}{{^parent}}BaseModel{{/parent}}
223250 { {/items.isEnumOrRef} }
224251 { {/items.isPrimitiveType} }
225252 { {/items.isArray} }
253+ { {/items.isMap} }
226254 { {/isMap} }
227255 { {/isContainer} }
228256 { {^isContainer} }
@@ -293,6 +321,7 @@ class {{classname}}({{#parent}}{{{.}}}{{/parent}}{{^parent}}BaseModel{{/parent}}
293321 {{#allVars} }
294322 { {#isContainer} }
295323 { {#isArray} }
324+ { {#items.isContainer} }
296325 { {#items.isArray} }
297326 { {#items.items.isPrimitiveType} }
298327 "{ {{baseName} }}": obj.get("{ {{baseName} }}"){ {^-last} },{ {/-last} }
@@ -304,7 +333,19 @@ class {{classname}}({{#parent}}{{{.}}}{{/parent}}{{^parent}}BaseModel{{/parent}}
304333 ] if obj.get("{ {{baseName} }}") is not None else None{ {^-last} },{ {/-last} }
305334 { {/items.items.isPrimitiveType} }
306335 { {/items.isArray} }
307- { {^items.isArray} }
336+ { {#items.isMap} }
337+ { {#items.items.isPrimitiveType} }
338+ "{ {{baseName} }}": obj.get("{ {{baseName} }}"){ {^-last} },{ {/-last} }
339+ { {/items.items.isPrimitiveType} }
340+ { {^items.items.isPrimitiveType} }
341+ "{ {{baseName} }}": [
342+ { _inner_key: {{{items.items.dataType} }}.from_dict(_inner_value) for _inner_key, _inner_value in _item.items()}
343+ for _item in obj["{ {{baseName} }}"]
344+ ] if obj.get("{ {{baseName} }}") is not None else None{ {^-last} },{ {/-last} }
345+ { {/items.items.isPrimitiveType} }
346+ { {/items.isMap} }
347+ { {/items.isContainer} }
348+ { {^items.isContainer} }
308349 { {^items.isPrimitiveType} }
309350 { {#items.isEnumOrRef} }
310351 "{ {{baseName} }}": obj.get("{ {{baseName} }}"){ {^-last} },{ {/-last} }
@@ -316,7 +357,7 @@ class {{classname}}({{#parent}}{{{.}}}{{/parent}}{{^parent}}BaseModel{{/parent}}
316357 { {#items.isPrimitiveType} }
317358 "{ {{baseName} }}": obj.get("{ {{baseName} }}"){ {^-last} },{ {/-last} }
318359 { {/items.isPrimitiveType} }
319- { {/items.isArray } }
360+ { {/items.isContainer } }
320361 { {/isArray} }
321362 { {#isMap} }
322363 { {^items.isPrimitiveType} }
@@ -331,9 +372,9 @@ class {{classname}}({{#parent}}{{{.}}}{{/parent}}{{^parent}}BaseModel{{/parent}}
331372 if _v is not None
332373 else None
333374 )
334- for _k, _v in obj.get( "{ {{baseName} }}") .items()
375+ for _k, _v in obj[ "{ {{baseName} }}"] .items()
335376 )
336- if obj.get( "{ {{baseName} }}") is not None
377+ if "{ {{baseName} }}" in obj
337378 else None{ {^-last} },{ {/-last} }
338379 { {/items.isMap} }
339380 { {#items.isArray} }
0 commit comments