@@ -59,23 +59,42 @@ def _parse_discriminated_union(
59
59
return data
60
60
if isinstance (data , Unset ):
61
61
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" )
79
98
80
99
discriminated_union = _parse_discriminated_union (d .pop ("discriminated_union" , UNSET ))
81
100
0 commit comments