Skip to content

Commit 745a7a3

Browse files
committed
Merge branch 'feature/add-unset-value-and-model-to-dict-params' into support_inline_object_schemas
2 parents 0fb3c48 + a669ba6 commit 745a7a3

File tree

10 files changed

+956
-35
lines changed

10 files changed

+956
-35
lines changed

end_to_end_tests/golden-record-custom/my_test_api_client/api/tests/defaults_tests_defaults_post.py

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -35,16 +35,16 @@ def _build_response(*, response: httpx.Response) -> httpx.Response[Union[None, H
3535
def httpx_request(
3636
*,
3737
client: Client,
38-
json_body: DictProp,
38+
json_body: Dict[Any, Any],
3939
string_prop: Union[Unset, str] = "the default string",
4040
datetime_prop: Union[Unset, datetime.datetime] = isoparse("1010-10-10T00:00:00"),
4141
date_prop: Union[Unset, datetime.date] = isoparse("1010-10-10").date(),
4242
float_prop: Union[Unset, float] = 3.14,
4343
int_prop: Union[Unset, int] = 7,
44-
boolean_prop: Union[Unset, bool] = UNSET,
44+
boolean_prop: Union[Unset, bool] = False,
4545
list_prop: Union[Unset, List[AnEnum]] = UNSET,
46-
union_prop: Union[Unset, Union[float, str]] = "not a float",
47-
an_enum: AnEnum,
46+
union_prop: Union[Unset, float, str] = "not a float",
47+
enum_prop: Union[Unset, AnEnum] = UNSET,
4848
) -> httpx.Response[Union[None, HTTPValidationError]]:
4949

5050
json_datetime_prop: Union[Unset, str] = UNSET
@@ -63,19 +63,19 @@ def httpx_request(
6363

6464
json_list_prop.append(an_enum)
6565

66-
json_union_prop: Union[Unset, Union[float, str]]
66+
json_union_prop: Union[Unset, float, str]
6767
if isinstance(union_prop, Unset):
6868
json_union_prop = UNSET
6969
elif isinstance(union_prop, float):
7070
json_union_prop = union_prop
7171
else:
7272
json_union_prop = union_prop
7373

74-
json_an_enum = an_enum.value
74+
json_enum_prop: Union[Unset, AnEnum] = UNSET
75+
if not isinstance(enum_prop, Unset):
76+
json_enum_prop = enum_prop.value
7577

76-
params: Dict[str, Any] = {
77-
"AnEnum": json_an_enum,
78-
}
78+
params: Dict[str, Any] = {}
7979
if string_prop is not UNSET:
8080
params["string_prop"] = string_prop
8181
if datetime_prop is not UNSET:
@@ -92,6 +92,8 @@ def httpx_request(
9292
params["list_prop"] = json_list_prop
9393
if union_prop is not UNSET:
9494
params["union_prop"] = json_union_prop
95+
if enum_prop is not UNSET:
96+
params["enum_prop"] = json_enum_prop
9597

9698
json_json_body = json_body.to_dict()
9799

end_to_end_tests/golden-record-custom/my_test_api_client/api/tests/optional_value_tests_optional_query_param.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
Client = httpx.Client
66

7-
from typing import List, Union
7+
from typing import List, Optional, Union
88

99
from ...models.http_validation_error import HTTPValidationError
1010
from ...types import UNSET, Unset

end_to_end_tests/golden-record-custom/my_test_api_client/api/tests/upload_file_tests_upload_post.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
Client = httpx.Client
66

7-
from typing import Union
7+
from typing import Optional, Union
88

99
from ...models.body_upload_file_tests_upload_post import BodyUploadFileTestsUploadPost
1010
from ...models.http_validation_error import HTTPValidationError
Lines changed: 130 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,130 @@
1+
import datetime
2+
from typing import Any, Dict, List, Optional, Union
3+
4+
import attr
5+
from dateutil.parser import isoparse
6+
7+
from ..models.an_enum import AnEnum
8+
from ..models.different_enum import DifferentEnum
9+
from ..types import UNSET, Unset
10+
11+
12+
@attr.s(auto_attribs=True)
13+
class AModel:
14+
""" A Model for testing all the ways custom objects can be used """
15+
16+
an_enum_value: AnEnum
17+
a_camel_date_time: Union[datetime.datetime, datetime.date]
18+
a_date: datetime.date
19+
required_not_nullable: str
20+
some_dict: Optional[Dict[Any, Any]]
21+
required_nullable: Optional[str]
22+
nested_list_of_enums: Union[Unset, List[List[DifferentEnum]]] = UNSET
23+
attr_1_leading_digit: Union[Unset, str] = UNSET
24+
not_required_nullable: Union[Unset, Optional[str]] = UNSET
25+
not_required_not_nullable: Union[Unset, str] = UNSET
26+
27+
def to_dict(self) -> Dict[str, Any]:
28+
an_enum_value = self.an_enum_value.value
29+
30+
if isinstance(self.a_camel_date_time, datetime.datetime):
31+
a_camel_date_time = self.a_camel_date_time.isoformat()
32+
33+
else:
34+
a_camel_date_time = self.a_camel_date_time.isoformat()
35+
36+
a_date = self.a_date.isoformat()
37+
38+
required_not_nullable = self.required_not_nullable
39+
nested_list_of_enums: Union[Unset, List[Any]] = UNSET
40+
if not isinstance(self.nested_list_of_enums, Unset):
41+
nested_list_of_enums = []
42+
for nested_list_of_enums_item_data in self.nested_list_of_enums:
43+
nested_list_of_enums_item = []
44+
for nested_list_of_enums_item_item_data in nested_list_of_enums_item_data:
45+
nested_list_of_enums_item_item = nested_list_of_enums_item_item_data.value
46+
47+
nested_list_of_enums_item.append(nested_list_of_enums_item_item)
48+
49+
nested_list_of_enums.append(nested_list_of_enums_item)
50+
51+
some_dict = self.some_dict if self.some_dict else None
52+
53+
attr_1_leading_digit = self.attr_1_leading_digit
54+
required_nullable = self.required_nullable
55+
not_required_nullable = self.not_required_nullable
56+
not_required_not_nullable = self.not_required_not_nullable
57+
58+
field_dict = {
59+
"an_enum_value": an_enum_value,
60+
"aCamelDateTime": a_camel_date_time,
61+
"a_date": a_date,
62+
"required_not_nullable": required_not_nullable,
63+
"some_dict": some_dict,
64+
"required_nullable": required_nullable,
65+
}
66+
if nested_list_of_enums is not UNSET:
67+
field_dict["nested_list_of_enums"] = nested_list_of_enums
68+
if attr_1_leading_digit is not UNSET:
69+
field_dict["1_leading_digit"] = attr_1_leading_digit
70+
if not_required_nullable is not UNSET:
71+
field_dict["not_required_nullable"] = not_required_nullable
72+
if not_required_not_nullable is not UNSET:
73+
field_dict["not_required_not_nullable"] = not_required_not_nullable
74+
75+
return field_dict
76+
77+
@staticmethod
78+
def from_dict(d: Dict[str, Any]) -> "AModel":
79+
an_enum_value = AnEnum(d["an_enum_value"])
80+
81+
def _parse_a_camel_date_time(data: Dict[str, Any]) -> Union[datetime.datetime, datetime.date]:
82+
a_camel_date_time: Union[datetime.datetime, datetime.date]
83+
try:
84+
a_camel_date_time = isoparse(d["aCamelDateTime"])
85+
86+
return a_camel_date_time
87+
except: # noqa: E722
88+
pass
89+
a_camel_date_time = isoparse(d["aCamelDateTime"]).date()
90+
91+
return a_camel_date_time
92+
93+
a_camel_date_time = _parse_a_camel_date_time(d["aCamelDateTime"])
94+
95+
a_date = isoparse(d["a_date"]).date()
96+
97+
required_not_nullable = d["required_not_nullable"]
98+
99+
nested_list_of_enums = []
100+
for nested_list_of_enums_item_data in d.get("nested_list_of_enums", UNSET) or []:
101+
nested_list_of_enums_item = []
102+
for nested_list_of_enums_item_item_data in nested_list_of_enums_item_data:
103+
nested_list_of_enums_item_item = DifferentEnum(nested_list_of_enums_item_item_data)
104+
105+
nested_list_of_enums_item.append(nested_list_of_enums_item_item)
106+
107+
nested_list_of_enums.append(nested_list_of_enums_item)
108+
109+
some_dict = d["some_dict"]
110+
111+
attr_1_leading_digit = d.get("1_leading_digit", UNSET)
112+
113+
required_nullable = d["required_nullable"]
114+
115+
not_required_nullable = d.get("not_required_nullable", UNSET)
116+
117+
not_required_not_nullable = d.get("not_required_not_nullable", UNSET)
118+
119+
return AModel(
120+
an_enum_value=an_enum_value,
121+
a_camel_date_time=a_camel_date_time,
122+
a_date=a_date,
123+
required_not_nullable=required_not_nullable,
124+
nested_list_of_enums=nested_list_of_enums,
125+
some_dict=some_dict,
126+
attr_1_leading_digit=attr_1_leading_digit,
127+
required_nullable=required_nullable,
128+
not_required_nullable=not_required_nullable,
129+
not_required_not_nullable=not_required_not_nullable,
130+
)
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
from typing import Any, Dict, List, Union
2+
3+
import attr
4+
5+
from ..models.validation_error import ValidationError
6+
from ..types import UNSET, Unset
7+
8+
9+
@attr.s(auto_attribs=True)
10+
class HTTPValidationError:
11+
""" """
12+
13+
detail: Union[Unset, List[ValidationError]] = UNSET
14+
15+
def to_dict(self) -> Dict[str, Any]:
16+
detail: Union[Unset, List[Any]] = UNSET
17+
if not isinstance(self.detail, Unset):
18+
detail = []
19+
for detail_item_data in self.detail:
20+
detail_item = detail_item_data.to_dict()
21+
22+
detail.append(detail_item)
23+
24+
field_dict = {}
25+
if detail is not UNSET:
26+
field_dict["detail"] = detail
27+
28+
return field_dict
29+
30+
@staticmethod
31+
def from_dict(d: Dict[str, Any]) -> "HTTPValidationError":
32+
detail = []
33+
for detail_item_data in d.get("detail", UNSET) or []:
34+
detail_item = ValidationError.from_dict(detail_item_data)
35+
36+
detail.append(detail_item)
37+
38+
return HTTPValidationError(
39+
detail=detail,
40+
)

end_to_end_tests/golden-record/my_test_api_client/api/tests/defaults_tests_defaults_post.py

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@ def _get_kwargs(
2020
date_prop: Union[Unset, datetime.date] = isoparse("1010-10-10").date(),
2121
float_prop: Union[Unset, float] = 3.14,
2222
int_prop: Union[Unset, int] = 7,
23-
boolean_prop: Union[Unset, bool] = UNSET,
23+
boolean_prop: Union[Unset, bool] = False,
2424
list_prop: Union[Unset, List[AnEnum]] = UNSET,
25-
union_prop: Union[Unset, Union[float, str]] = "not a float",
26-
an_enum: AnEnum,
25+
union_prop: Union[Unset, float, str] = "not a float",
26+
enum_prop: Union[Unset, AnEnum] = UNSET,
2727
) -> Dict[str, Any]:
2828
url = "{}/tests/defaults".format(client.base_url)
2929

@@ -45,15 +45,15 @@ def _get_kwargs(
4545

4646
json_list_prop.append(an_enum)
4747

48-
json_union_prop: Union[Unset, Union[float, str]]
48+
json_union_prop: Union[Unset, float, str]
4949
if isinstance(union_prop, Unset):
5050
json_union_prop = UNSET
5151
elif isinstance(union_prop, float):
5252
json_union_prop = union_prop
5353
else:
5454
json_union_prop = union_prop
5555

56-
json_an_enum = an_enum.value
56+
json_an_enum = enum_prop.value
5757

5858
params: Dict[str, Any] = {
5959
"AnEnum": json_an_enum,
@@ -113,10 +113,10 @@ def sync_detailed(
113113
date_prop: Union[Unset, datetime.date] = isoparse("1010-10-10").date(),
114114
float_prop: Union[Unset, float] = 3.14,
115115
int_prop: Union[Unset, int] = 7,
116-
boolean_prop: Union[Unset, bool] = UNSET,
116+
boolean_prop: Union[Unset, bool] = False,
117117
list_prop: Union[Unset, List[AnEnum]] = UNSET,
118-
union_prop: Union[Unset, Union[float, str]] = "not a float",
119-
an_enum: AnEnum,
118+
union_prop: Union[Unset, float, str] = "not a float",
119+
enum_prop: Union[Unset, AnEnum] = UNSET,
120120
) -> Response[Union[None, HTTPValidationError]]:
121121
kwargs = _get_kwargs(
122122
client=client,
@@ -129,7 +129,7 @@ def sync_detailed(
129129
boolean_prop=boolean_prop,
130130
list_prop=list_prop,
131131
union_prop=union_prop,
132-
an_enum=an_enum,
132+
enum_prop=enum_prop,
133133
)
134134

135135
response = httpx.post(
@@ -148,10 +148,10 @@ def sync(
148148
date_prop: Union[Unset, datetime.date] = isoparse("1010-10-10").date(),
149149
float_prop: Union[Unset, float] = 3.14,
150150
int_prop: Union[Unset, int] = 7,
151-
boolean_prop: Union[Unset, bool] = UNSET,
151+
boolean_prop: Union[Unset, bool] = False,
152152
list_prop: Union[Unset, List[AnEnum]] = UNSET,
153-
union_prop: Union[Unset, Union[float, str]] = "not a float",
154-
an_enum: AnEnum,
153+
union_prop: Union[Unset, float, str] = "not a float",
154+
enum_prop: Union[Unset, AnEnum] = UNSET,
155155
) -> Optional[Union[None, HTTPValidationError]]:
156156
""" """
157157

@@ -166,7 +166,7 @@ def sync(
166166
boolean_prop=boolean_prop,
167167
list_prop=list_prop,
168168
union_prop=union_prop,
169-
an_enum=an_enum,
169+
enum_prop=enum_prop,
170170
).parsed
171171

172172

@@ -179,10 +179,10 @@ async def asyncio_detailed(
179179
date_prop: Union[Unset, datetime.date] = isoparse("1010-10-10").date(),
180180
float_prop: Union[Unset, float] = 3.14,
181181
int_prop: Union[Unset, int] = 7,
182-
boolean_prop: Union[Unset, bool] = UNSET,
182+
boolean_prop: Union[Unset, bool] = False,
183183
list_prop: Union[Unset, List[AnEnum]] = UNSET,
184-
union_prop: Union[Unset, Union[float, str]] = "not a float",
185-
an_enum: AnEnum,
184+
union_prop: Union[Unset, float, str] = "not a float",
185+
enum_prop: Union[Unset, AnEnum] = UNSET,
186186
) -> Response[Union[None, HTTPValidationError]]:
187187
kwargs = _get_kwargs(
188188
client=client,
@@ -195,7 +195,7 @@ async def asyncio_detailed(
195195
boolean_prop=boolean_prop,
196196
list_prop=list_prop,
197197
union_prop=union_prop,
198-
an_enum=an_enum,
198+
enum_prop=enum_prop,
199199
)
200200

201201
async with httpx.AsyncClient() as _client:
@@ -213,10 +213,10 @@ async def asyncio(
213213
date_prop: Union[Unset, datetime.date] = isoparse("1010-10-10").date(),
214214
float_prop: Union[Unset, float] = 3.14,
215215
int_prop: Union[Unset, int] = 7,
216-
boolean_prop: Union[Unset, bool] = UNSET,
216+
boolean_prop: Union[Unset, bool] = False,
217217
list_prop: Union[Unset, List[AnEnum]] = UNSET,
218-
union_prop: Union[Unset, Union[float, str]] = "not a float",
219-
an_enum: AnEnum,
218+
union_prop: Union[Unset, float, str] = "not a float",
219+
enum_prop: Union[Unset, AnEnum] = UNSET,
220220
) -> Optional[Union[None, HTTPValidationError]]:
221221
""" """
222222

@@ -232,6 +232,6 @@ async def asyncio(
232232
boolean_prop=boolean_prop,
233233
list_prop=list_prop,
234234
union_prop=union_prop,
235-
an_enum=an_enum,
235+
enum_prop=enum_prop,
236236
)
237237
).parsed

0 commit comments

Comments
 (0)