Skip to content

Commit c251560

Browse files
Fix union
1 parent b71f718 commit c251560

File tree

9 files changed

+60
-47
lines changed

9 files changed

+60
-47
lines changed

end_to_end_tests/golden-record-custom/custom_e2e/models/a_model.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -111,16 +111,17 @@ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
111111

112112
def _parse_a_camel_date_time(data: Any) -> Union[datetime.datetime, datetime.date]:
113113
data = None if isinstance(data, Unset) else data
114-
a_camel_date_time: Union[datetime.datetime, datetime.date]
115114
try:
116-
isoparse(data)
115+
a_camel_date_time_item0: datetime.datetime
116+
a_camel_date_time_item0 = isoparse(data)
117117

118-
return a_camel_date_time
118+
return a_camel_date_time_item0
119119
except: # noqa: E722
120120
pass
121-
isoparse(data).date()
121+
a_camel_date_time_item1: datetime.date
122+
a_camel_date_time_item1 = isoparse(data).date()
122123

123-
return a_camel_date_time
124+
return a_camel_date_time_item1
124125

125126
a_camel_date_time = _parse_a_camel_date_time(d.pop("aCamelDateTime"))
126127

end_to_end_tests/golden-record-custom/custom_e2e/models/model_with_any_json_properties.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -47,19 +47,18 @@ def _parse_additional_property(
4747
data: Any,
4848
) -> Union[ModelWithAnyJsonPropertiesAdditionalPropertyItem0, List[str], str, float, int, bool]:
4949
data = None if isinstance(data, Unset) else data
50-
additional_property: Union[
51-
ModelWithAnyJsonPropertiesAdditionalPropertyItem0, List[str], str, float, int, bool
52-
]
5350
try:
54-
ModelWithAnyJsonPropertiesAdditionalPropertyItem0.from_dict(data)
51+
additional_property_item0: ModelWithAnyJsonPropertiesAdditionalPropertyItem0
52+
additional_property_item0 = ModelWithAnyJsonPropertiesAdditionalPropertyItem0.from_dict(data)
5553

56-
return additional_property
54+
return additional_property_item0
5755
except: # noqa: E722
5856
pass
5957
try:
60-
cast(List[str], data)
58+
additional_property_item1: List[str]
59+
additional_property_item1 = cast(List[str], data)
6160

62-
return additional_property
61+
return additional_property_item1
6362
except: # noqa: E722
6463
pass
6564
return cast(

end_to_end_tests/golden-record-custom/custom_e2e/models/model_with_union_property.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,20 +42,23 @@ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
4242

4343
def _parse_a_property(data: Any) -> Union[Unset, AnEnum, AnIntEnum]:
4444
data = None if isinstance(data, Unset) else data
45-
a_property: Union[Unset, AnEnum, AnIntEnum]
4645
try:
46+
a_property_item0: Union[Unset, AnEnum]
47+
a_property_item0 = UNSET
4748
_a_property_item0 = data
4849
if _a_property_item0 is not None and _a_property_item0 is not UNSET:
49-
AnEnum(_a_property_item0)
50+
a_property_item0 = AnEnum(_a_property_item0)
5051

51-
return a_property
52+
return a_property_item0
5253
except: # noqa: E722
5354
pass
55+
a_property_item1: Union[Unset, AnIntEnum]
56+
a_property_item1 = UNSET
5457
_a_property_item1 = data
5558
if _a_property_item1 is not None and _a_property_item1 is not UNSET:
56-
AnIntEnum(_a_property_item1)
59+
a_property_item1 = AnIntEnum(_a_property_item1)
5760

58-
return a_property
61+
return a_property_item1
5962

6063
a_property = _parse_a_property(d.pop("a_property", UNSET))
6164

end_to_end_tests/golden-record-custom/custom_e2e/models/model_with_union_property_inlined.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -44,20 +44,23 @@ def _parse_fruit(
4444
data: Any,
4545
) -> Union[Unset, ModelWithUnionPropertyInlinedFruitItem0, ModelWithUnionPropertyInlinedFruitItem1]:
4646
data = None if isinstance(data, Unset) else data
47-
fruit: Union[Unset, ModelWithUnionPropertyInlinedFruitItem0, ModelWithUnionPropertyInlinedFruitItem1]
4847
try:
48+
fruit_item0: Union[ModelWithUnionPropertyInlinedFruitItem0, Unset]
49+
fruit_item0 = UNSET
4950
_fruit_item0 = data
5051
if not isinstance(_fruit_item0, Unset):
51-
ModelWithUnionPropertyInlinedFruitItem0.from_dict(cast(Dict[str, Any], _fruit_item0))
52+
fruit_item0 = ModelWithUnionPropertyInlinedFruitItem0.from_dict(cast(Dict[str, Any], _fruit_item0))
5253

53-
return fruit
54+
return fruit_item0
5455
except: # noqa: E722
5556
pass
57+
fruit_item1: Union[ModelWithUnionPropertyInlinedFruitItem1, Unset]
58+
fruit_item1 = UNSET
5659
_fruit_item1 = data
5760
if not isinstance(_fruit_item1, Unset):
58-
ModelWithUnionPropertyInlinedFruitItem1.from_dict(cast(Dict[str, Any], _fruit_item1))
61+
fruit_item1 = ModelWithUnionPropertyInlinedFruitItem1.from_dict(cast(Dict[str, Any], _fruit_item1))
5962

60-
return fruit
63+
return fruit_item1
6164

6265
fruit = _parse_fruit(d.pop("fruit", UNSET))
6366

end_to_end_tests/golden-record/my_test_api_client/models/a_model.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -111,16 +111,17 @@ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
111111

112112
def _parse_a_camel_date_time(data: Any) -> Union[datetime.datetime, datetime.date]:
113113
data = None if isinstance(data, Unset) else data
114-
a_camel_date_time: Union[datetime.datetime, datetime.date]
115114
try:
116-
isoparse(data)
115+
a_camel_date_time_item0: datetime.datetime
116+
a_camel_date_time_item0 = isoparse(data)
117117

118-
return a_camel_date_time
118+
return a_camel_date_time_item0
119119
except: # noqa: E722
120120
pass
121-
isoparse(data).date()
121+
a_camel_date_time_item1: datetime.date
122+
a_camel_date_time_item1 = isoparse(data).date()
122123

123-
return a_camel_date_time
124+
return a_camel_date_time_item1
124125

125126
a_camel_date_time = _parse_a_camel_date_time(d.pop("aCamelDateTime"))
126127

end_to_end_tests/golden-record/my_test_api_client/models/model_with_any_json_properties.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -47,19 +47,18 @@ def _parse_additional_property(
4747
data: Any,
4848
) -> Union[ModelWithAnyJsonPropertiesAdditionalPropertyItem0, List[str], str, float, int, bool]:
4949
data = None if isinstance(data, Unset) else data
50-
additional_property: Union[
51-
ModelWithAnyJsonPropertiesAdditionalPropertyItem0, List[str], str, float, int, bool
52-
]
5350
try:
54-
ModelWithAnyJsonPropertiesAdditionalPropertyItem0.from_dict(data)
51+
additional_property_item0: ModelWithAnyJsonPropertiesAdditionalPropertyItem0
52+
additional_property_item0 = ModelWithAnyJsonPropertiesAdditionalPropertyItem0.from_dict(data)
5553

56-
return additional_property
54+
return additional_property_item0
5755
except: # noqa: E722
5856
pass
5957
try:
60-
cast(List[str], data)
58+
additional_property_item1: List[str]
59+
additional_property_item1 = cast(List[str], data)
6160

62-
return additional_property
61+
return additional_property_item1
6362
except: # noqa: E722
6463
pass
6564
return cast(

end_to_end_tests/golden-record/my_test_api_client/models/model_with_union_property.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,20 +42,23 @@ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
4242

4343
def _parse_a_property(data: Any) -> Union[Unset, AnEnum, AnIntEnum]:
4444
data = None if isinstance(data, Unset) else data
45-
a_property: Union[Unset, AnEnum, AnIntEnum]
4645
try:
46+
a_property_item0: Union[Unset, AnEnum]
47+
a_property_item0 = UNSET
4748
_a_property_item0 = data
4849
if _a_property_item0 is not None and _a_property_item0 is not UNSET:
49-
AnEnum(_a_property_item0)
50+
a_property_item0 = AnEnum(_a_property_item0)
5051

51-
return a_property
52+
return a_property_item0
5253
except: # noqa: E722
5354
pass
55+
a_property_item1: Union[Unset, AnIntEnum]
56+
a_property_item1 = UNSET
5457
_a_property_item1 = data
5558
if _a_property_item1 is not None and _a_property_item1 is not UNSET:
56-
AnIntEnum(_a_property_item1)
59+
a_property_item1 = AnIntEnum(_a_property_item1)
5760

58-
return a_property
61+
return a_property_item1
5962

6063
a_property = _parse_a_property(d.pop("a_property", UNSET))
6164

end_to_end_tests/golden-record/my_test_api_client/models/model_with_union_property_inlined.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -44,20 +44,23 @@ def _parse_fruit(
4444
data: Any,
4545
) -> Union[Unset, ModelWithUnionPropertyInlinedFruitItem0, ModelWithUnionPropertyInlinedFruitItem1]:
4646
data = None if isinstance(data, Unset) else data
47-
fruit: Union[Unset, ModelWithUnionPropertyInlinedFruitItem0, ModelWithUnionPropertyInlinedFruitItem1]
4847
try:
48+
fruit_item0: Union[ModelWithUnionPropertyInlinedFruitItem0, Unset]
49+
fruit_item0 = UNSET
4950
_fruit_item0 = data
5051
if not isinstance(_fruit_item0, Unset):
51-
ModelWithUnionPropertyInlinedFruitItem0.from_dict(cast(Dict[str, Any], _fruit_item0))
52+
fruit_item0 = ModelWithUnionPropertyInlinedFruitItem0.from_dict(cast(Dict[str, Any], _fruit_item0))
5253

53-
return fruit
54+
return fruit_item0
5455
except: # noqa: E722
5556
pass
57+
fruit_item1: Union[ModelWithUnionPropertyInlinedFruitItem1, Unset]
58+
fruit_item1 = UNSET
5659
_fruit_item1 = data
5760
if not isinstance(_fruit_item1, Unset):
58-
ModelWithUnionPropertyInlinedFruitItem1.from_dict(cast(Dict[str, Any], _fruit_item1))
61+
fruit_item1 = ModelWithUnionPropertyInlinedFruitItem1.from_dict(cast(Dict[str, Any], _fruit_item1))
5962

60-
return fruit
63+
return fruit_item1
6164

6265
fruit = _parse_fruit(d.pop("fruit", UNSET))
6366

openapi_python_client/templates/property_templates/union_property.py.jinja

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,20 @@
11
{% macro construct(property, source, initial_value=None) %}
22
def _parse_{{ property.python_name }}(data: Any) -> {{ property.get_type_string() }}:
33
data = None if isinstance(data, Unset) else data
4-
{{ property.python_name }}: {{ property.get_type_string() }}
54
{% for inner_property in property.inner_properties_with_template() %}
65
{% if not loop.last or property.has_properties_without_templates %}
76
try:
7+
{{ inner_property.python_name }}: {{ inner_property.get_type_string() }}
88
{% from "property_templates/" + inner_property.template import construct %}
99
{{ construct(inner_property, "data", initial_value="UNSET") | indent(8) }}
10-
return {{ property.python_name }}
10+
return {{ inner_property.python_name }}
1111
except: # noqa: E722
1212
pass
1313
{% else %}{# Don't do try/except for the last one #}
14+
{{ inner_property.python_name }}: {{ inner_property.get_type_string() }}
1415
{% from "property_templates/" + inner_property.template import construct %}
1516
{{ construct(inner_property, "data", initial_value="UNSET") | indent(4) }}
16-
return {{ property.python_name }}
17+
return {{ inner_property.python_name }}
1718
{% endif %}
1819
{% endfor %}
1920
{% if property.has_properties_without_templates %}

0 commit comments

Comments
 (0)