@@ -59,23 +59,42 @@ def _parse_discriminated_union(
5959 return data
6060 if isinstance (data , Unset ):
6161 return data
62- try :
63- if not isinstance (data , dict ):
64- raise TypeError ()
65- componentsschemas_a_discriminated_union_type_0 = ADiscriminatedUnionType1 .from_dict (data )
66-
67- return componentsschemas_a_discriminated_union_type_0
68- except : # noqa: E722
69- pass
70- try :
71- if not isinstance (data , dict ):
72- raise TypeError ()
73- componentsschemas_a_discriminated_union_type_1 = ADiscriminatedUnionType2 .from_dict (data )
74-
75- return componentsschemas_a_discriminated_union_type_1
76- except : # noqa: E722
77- pass
78- return cast (Union ["ADiscriminatedUnionType1" , "ADiscriminatedUnionType2" , None , Unset ], data )
62+ if not isinstance (data , dict ):
63+ raise TypeError ()
64+ if "modelType" in data :
65+ _discriminator_value = data ["modelType" ]
66+
67+ def _parse_1 (data : object ) -> ADiscriminatedUnionType1 :
68+ if not isinstance (data , dict ):
69+ raise TypeError ()
70+ componentsschemas_a_discriminated_union_type_0 = ADiscriminatedUnionType1 .from_dict (data )
71+
72+ return componentsschemas_a_discriminated_union_type_0
73+
74+ def _parse_2 (data : object ) -> ADiscriminatedUnionType2 :
75+ if not isinstance (data , dict ):
76+ raise TypeError ()
77+ componentsschemas_a_discriminated_union_type_1 = ADiscriminatedUnionType2 .from_dict (data )
78+
79+ return componentsschemas_a_discriminated_union_type_1
80+
81+ def _parse_3 (data : object ) -> ADiscriminatedUnionType2 :
82+ if not isinstance (data , dict ):
83+ raise TypeError ()
84+ componentsschemas_a_discriminated_union_type_1 = ADiscriminatedUnionType2 .from_dict (data )
85+
86+ return componentsschemas_a_discriminated_union_type_1
87+
88+ _discriminator_mapping = {
89+ "type1" : _parse_1 ,
90+ "type2" : _parse_2 ,
91+ "type2-another-value" : _parse_3 ,
92+ }
93+ if _parse_fn := _discriminator_mapping .get (_discriminator_value ):
94+ return cast (
95+ Union ["ADiscriminatedUnionType1" , "ADiscriminatedUnionType2" , None , Unset ], _parse_fn (data )
96+ )
97+ raise TypeError ("unrecognized value for property modelType" )
7998
8099 discriminated_union = _parse_discriminated_union (d .pop ("discriminated_union" , UNSET ))
81100
0 commit comments