44from attrs import define as _attrs_define
55from dateutil .parser import isoparse
66
7+ from ..models .a_model_nullable_enum_inline import AModelNullableEnumInline
78from ..models .an_all_of_enum import AnAllOfEnum
89from ..models .an_enum import AnEnum
10+ from ..models .an_enum_with_null import AnEnumWithNull
911from ..models .different_enum import DifferentEnum
1012from ..types import UNSET , Unset
1113
@@ -33,6 +35,8 @@ class AModel:
3335 nullable_one_of_models (Union['FreeFormModel', 'ModelWithUnionProperty', None]):
3436 model (ModelWithUnionProperty):
3537 nullable_model (Union['ModelWithUnionProperty', None]):
38+ nullable_enum_as_ref (Union[AnEnumWithNull, None]): For testing Enums with mixed string / null values
39+ nullable_enum_inline (Union[AModelNullableEnumInline, None]):
3640 any_value (Union[Unset, Any]):
3741 an_optional_allof_enum (Union[Unset, AnAllOfEnum]):
3842 nested_list_of_enums (Union[Unset, List[List[DifferentEnum]]]):
@@ -57,6 +61,8 @@ class AModel:
5761 nullable_one_of_models : Union ["FreeFormModel" , "ModelWithUnionProperty" , None ]
5862 model : "ModelWithUnionProperty"
5963 nullable_model : Union ["ModelWithUnionProperty" , None ]
64+ nullable_enum_as_ref : Union [AnEnumWithNull , None ]
65+ nullable_enum_inline : Union [AModelNullableEnumInline , None ]
6066 an_allof_enum_with_overridden_default : AnAllOfEnum = AnAllOfEnum .OVERRIDDEN_DEFAULT
6167 any_value : Union [Unset , Any ] = UNSET
6268 an_optional_allof_enum : Union [Unset , AnAllOfEnum ] = UNSET
@@ -122,6 +128,18 @@ def to_dict(self) -> Dict[str, Any]:
122128 else :
123129 nullable_model = self .nullable_model
124130
131+ nullable_enum_as_ref : Union [None , str ]
132+ if isinstance (self .nullable_enum_as_ref , AnEnumWithNull ):
133+ nullable_enum_as_ref = self .nullable_enum_as_ref .value
134+ else :
135+ nullable_enum_as_ref = self .nullable_enum_as_ref
136+
137+ nullable_enum_inline : Union [None , str ]
138+ if isinstance (self .nullable_enum_inline , AModelNullableEnumInline ):
139+ nullable_enum_inline = self .nullable_enum_inline .value
140+ else :
141+ nullable_enum_inline = self .nullable_enum_inline
142+
125143 any_value = self .any_value
126144
127145 an_optional_allof_enum : Union [Unset , str ] = UNSET
@@ -199,6 +217,8 @@ def to_dict(self) -> Dict[str, Any]:
199217 "nullable_one_of_models" : nullable_one_of_models ,
200218 "model" : model ,
201219 "nullable_model" : nullable_model ,
220+ "nullable_enum_as_ref" : nullable_enum_as_ref ,
221+ "nullable_enum_inline" : nullable_enum_inline ,
202222 }
203223 )
204224 if any_value is not UNSET :
@@ -342,6 +362,36 @@ def _parse_nullable_model(data: object) -> Union["ModelWithUnionProperty", None]
342362
343363 nullable_model = _parse_nullable_model (d .pop ("nullable_model" ))
344364
365+ def _parse_nullable_enum_as_ref (data : object ) -> Union [AnEnumWithNull , None ]:
366+ if data is None :
367+ return data
368+ try :
369+ if not isinstance (data , str ):
370+ raise TypeError ()
371+ componentsschemas_an_enum_with_null = AnEnumWithNull (data )
372+
373+ return componentsschemas_an_enum_with_null
374+ except : # noqa: E722
375+ pass
376+ return cast (Union [AnEnumWithNull , None ], data )
377+
378+ nullable_enum_as_ref = _parse_nullable_enum_as_ref (d .pop ("nullable_enum_as_ref" ))
379+
380+ def _parse_nullable_enum_inline (data : object ) -> Union [AModelNullableEnumInline , None ]:
381+ if data is None :
382+ return data
383+ try :
384+ if not isinstance (data , str ):
385+ raise TypeError ()
386+ nullable_enum_inline = AModelNullableEnumInline (data )
387+
388+ return nullable_enum_inline
389+ except : # noqa: E722
390+ pass
391+ return cast (Union [AModelNullableEnumInline , None ], data )
392+
393+ nullable_enum_inline = _parse_nullable_enum_inline (d .pop ("nullable_enum_inline" ))
394+
345395 any_value = d .pop ("any_value" , UNSET )
346396
347397 _an_optional_allof_enum = d .pop ("an_optional_allof_enum" , UNSET )
@@ -469,6 +519,8 @@ def _parse_not_required_nullable_model(data: object) -> Union["ModelWithUnionPro
469519 nullable_one_of_models = nullable_one_of_models ,
470520 model = model ,
471521 nullable_model = nullable_model ,
522+ nullable_enum_as_ref = nullable_enum_as_ref ,
523+ nullable_enum_inline = nullable_enum_inline ,
472524 any_value = any_value ,
473525 an_optional_allof_enum = an_optional_allof_enum ,
474526 nested_list_of_enums = nested_list_of_enums ,
0 commit comments