Skip to content

Commit d31a990

Browse files
authored
Merge branch 'main' into renovate/httpx-0.x
2 parents ae2e645 + 97aa5cd commit d31a990

File tree

4 files changed

+72
-4
lines changed

4 files changed

+72
-4
lines changed

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

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1+
import datetime
12
import json
23
from io import BytesIO
34
from typing import Any, Dict, List, Optional, Tuple, Type, TypeVar, Union, cast
45

56
import attr
7+
from dateutil.parser import isoparse
68

79
from ..models.body_upload_file_tests_upload_post_additional_property import (
810
BodyUploadFileTestsUploadPostAdditionalProperty,
@@ -28,6 +30,8 @@ class BodyUploadFileTestsUploadPost:
2830
some_object (BodyUploadFileTestsUploadPostSomeObject):
2931
some_optional_file (Union[Unset, File]):
3032
some_string (Union[Unset, str]): Default: 'some_default_string'.
33+
a_datetime (Union[Unset, datetime.datetime]):
34+
a_date (Union[Unset, datetime.date]):
3135
some_number (Union[Unset, float]):
3236
some_array (Union[Unset, List[float]]):
3337
some_optional_object (Union[Unset, BodyUploadFileTestsUploadPostSomeOptionalObject]):
@@ -40,6 +44,8 @@ class BodyUploadFileTestsUploadPost:
4044
some_nullable_object: Optional[BodyUploadFileTestsUploadPostSomeNullableObject]
4145
some_optional_file: Union[Unset, File] = UNSET
4246
some_string: Union[Unset, str] = "some_default_string"
47+
a_datetime: Union[Unset, datetime.datetime] = UNSET
48+
a_date: Union[Unset, datetime.date] = UNSET
4349
some_number: Union[Unset, float] = UNSET
4450
some_array: Union[Unset, List[float]] = UNSET
4551
some_optional_object: Union[Unset, BodyUploadFileTestsUploadPostSomeOptionalObject] = UNSET
@@ -58,6 +64,14 @@ def to_dict(self) -> Dict[str, Any]:
5864
some_optional_file = self.some_optional_file.to_tuple()
5965

6066
some_string = self.some_string
67+
a_datetime: Union[Unset, str] = UNSET
68+
if not isinstance(self.a_datetime, Unset):
69+
a_datetime = self.a_datetime.isoformat()
70+
71+
a_date: Union[Unset, str] = UNSET
72+
if not isinstance(self.a_date, Unset):
73+
a_date = self.a_date.isoformat()
74+
6175
some_number = self.some_number
6276
some_array: Union[Unset, List[float]] = UNSET
6377
if not isinstance(self.some_array, Unset):
@@ -88,6 +102,10 @@ def to_dict(self) -> Dict[str, Any]:
88102
field_dict["some_optional_file"] = some_optional_file
89103
if some_string is not UNSET:
90104
field_dict["some_string"] = some_string
105+
if a_datetime is not UNSET:
106+
field_dict["a_datetime"] = a_datetime
107+
if a_date is not UNSET:
108+
field_dict["a_date"] = a_date
91109
if some_number is not UNSET:
92110
field_dict["some_number"] = some_number
93111
if some_array is not UNSET:
@@ -113,6 +131,14 @@ def to_multipart(self) -> Dict[str, Any]:
113131
if isinstance(self.some_string, Unset)
114132
else (None, str(self.some_string).encode(), "text/plain")
115133
)
134+
a_datetime: Union[Unset, bytes] = UNSET
135+
if not isinstance(self.a_datetime, Unset):
136+
a_datetime = self.a_datetime.isoformat().encode()
137+
138+
a_date: Union[Unset, bytes] = UNSET
139+
if not isinstance(self.a_date, Unset):
140+
a_date = self.a_date.isoformat().encode()
141+
116142
some_number = (
117143
self.some_number
118144
if isinstance(self.some_number, Unset)
@@ -152,6 +178,10 @@ def to_multipart(self) -> Dict[str, Any]:
152178
field_dict["some_optional_file"] = some_optional_file
153179
if some_string is not UNSET:
154180
field_dict["some_string"] = some_string
181+
if a_datetime is not UNSET:
182+
field_dict["a_datetime"] = a_datetime
183+
if a_date is not UNSET:
184+
field_dict["a_date"] = a_date
155185
if some_number is not UNSET:
156186
field_dict["some_number"] = some_number
157187
if some_array is not UNSET:
@@ -179,6 +209,20 @@ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
179209

180210
some_string = d.pop("some_string", UNSET)
181211

212+
_a_datetime = d.pop("a_datetime", UNSET)
213+
a_datetime: Union[Unset, datetime.datetime]
214+
if isinstance(_a_datetime, Unset):
215+
a_datetime = UNSET
216+
else:
217+
a_datetime = isoparse(_a_datetime)
218+
219+
_a_date = d.pop("a_date", UNSET)
220+
a_date: Union[Unset, datetime.date]
221+
if isinstance(_a_date, Unset):
222+
a_date = UNSET
223+
else:
224+
a_date = isoparse(_a_date).date()
225+
182226
some_number = d.pop("some_number", UNSET)
183227

184228
some_array = cast(List[float], d.pop("some_array", UNSET))
@@ -209,6 +253,8 @@ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
209253
some_object=some_object,
210254
some_optional_file=some_optional_file,
211255
some_string=some_string,
256+
a_datetime=a_datetime,
257+
a_date=a_date,
212258
some_number=some_number,
213259
some_array=some_array,
214260
some_optional_object=some_optional_object,

end_to_end_tests/openapi.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1309,6 +1309,16 @@
13091309
"type": "string",
13101310
"default": "some_default_string"
13111311
},
1312+
"a_datetime": {
1313+
"title": "A Datetime",
1314+
"type": "string",
1315+
"format": "date-time"
1316+
},
1317+
"a_date": {
1318+
"title": "A Date",
1319+
"type": "string",
1320+
"format": "date"
1321+
},
13121322
"some_number": {
13131323
"title": "Some Number",
13141324
"type": "number"

openapi_python_client/templates/property_templates/date_property.py.jinja

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,19 @@ isoparse({{ source }}).date()
1212

1313
{% macro transform(property, source, destination, declare_type=True, multipart=False) %}
1414
{% set transformed = source + ".isoformat()" %}
15-
{% if multipart %} {# Multipart data must be bytes, not str #}
15+
{% if multipart %}{# Multipart data must be bytes, not str #}
1616
{% set transformed = transformed + ".encode()" %}
1717
{% endif %}
1818
{% if property.required %}
1919
{{ destination }} = {{ transformed }} {% if property.nullable %}if {{ source }} else None {%endif%}
2020
{% else %}
21-
{{ destination }}{% if declare_type %}: {{ property.get_type_string(json=True) }}{% endif %} = UNSET
21+
{% if declare_type %}
22+
{% set type_annotation = property.get_type_string(json=True) %}
23+
{% if multipart %}{% set type_annotation = type_annotation | replace("str", "bytes") %}{% endif %}
24+
{{ destination }}: {{ type_annotation }} = UNSET
25+
{% else %}
26+
{{ destination }} = UNSET
27+
{% endif %}
2228
if not isinstance({{ source }}, Unset):
2329
{% if property.nullable %}
2430
{{ destination }} = {{ transformed }} if {{ source }} else None

openapi_python_client/templates/property_templates/datetime_property.py.jinja

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ isoparse({{ source }})
1212

1313
{% macro transform(property, source, destination, declare_type=True, multipart=False) %}
1414
{% set transformed = source + ".isoformat()" %}
15-
{% if multipart %} {# Multipart data must be bytes, not str #}
15+
{% if multipart %}{# Multipart data must be bytes, not str #}
1616
{% set transformed = transformed + ".encode()" %}
1717
{% endif %}
1818
{% if property.required %}
@@ -22,7 +22,13 @@ isoparse({{ source }})
2222
{{ destination }} = {{ transformed }}
2323
{% endif %}
2424
{% else %}
25-
{{ destination }}{% if declare_type %}: {{ property.get_type_string(json=True) }}{% endif %} = UNSET
25+
{% if declare_type %}
26+
{% set type_annotation = property.get_type_string(json=True) %}
27+
{% if multipart %}{% set type_annotation = type_annotation | replace("str", "bytes") %}{% endif %}
28+
{{ destination }}: {{ type_annotation }} = UNSET
29+
{% else %}
30+
{{ destination }} = UNSET
31+
{% endif %}
2632
if not isinstance({{ source }}, Unset):
2733
{% if property.nullable %}
2834
{{ destination }} = {{ transformed }} if {{ source }} else None

0 commit comments

Comments
 (0)