Skip to content

Commit 6d523d6

Browse files
Nils Lindemannpre-commit-ci[bot]tiangolo
authored
📝 Fix types in examples under docs_src/extra_data_types (fastapi#10535)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Sebastián Ramírez <[email protected]>
1 parent d84d6e0 commit 6d523d6

File tree

10 files changed

+95
-215
lines changed

10 files changed

+95
-215
lines changed

docs_src/extra_data_types/tutorial001.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,19 @@
1010
@app.put("/items/{item_id}")
1111
async def read_items(
1212
item_id: UUID,
13-
start_datetime: Union[datetime, None] = Body(default=None),
14-
end_datetime: Union[datetime, None] = Body(default=None),
13+
start_datetime: datetime = Body(),
14+
end_datetime: datetime = Body(),
15+
process_after: timedelta = Body(),
1516
repeat_at: Union[time, None] = Body(default=None),
16-
process_after: Union[timedelta, None] = Body(default=None),
1717
):
1818
start_process = start_datetime + process_after
1919
duration = end_datetime - start_process
2020
return {
2121
"item_id": item_id,
2222
"start_datetime": start_datetime,
2323
"end_datetime": end_datetime,
24-
"repeat_at": repeat_at,
2524
"process_after": process_after,
25+
"repeat_at": repeat_at,
2626
"start_process": start_process,
2727
"duration": duration,
2828
}

docs_src/extra_data_types/tutorial001_an.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,19 +11,19 @@
1111
@app.put("/items/{item_id}")
1212
async def read_items(
1313
item_id: UUID,
14-
start_datetime: Annotated[Union[datetime, None], Body()] = None,
15-
end_datetime: Annotated[Union[datetime, None], Body()] = None,
14+
start_datetime: Annotated[datetime, Body()],
15+
end_datetime: Annotated[datetime, Body()],
16+
process_after: Annotated[timedelta, Body()],
1617
repeat_at: Annotated[Union[time, None], Body()] = None,
17-
process_after: Annotated[Union[timedelta, None], Body()] = None,
1818
):
1919
start_process = start_datetime + process_after
2020
duration = end_datetime - start_process
2121
return {
2222
"item_id": item_id,
2323
"start_datetime": start_datetime,
2424
"end_datetime": end_datetime,
25-
"repeat_at": repeat_at,
2625
"process_after": process_after,
26+
"repeat_at": repeat_at,
2727
"start_process": start_process,
2828
"duration": duration,
2929
}

docs_src/extra_data_types/tutorial001_an_py310.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,19 @@
1010
@app.put("/items/{item_id}")
1111
async def read_items(
1212
item_id: UUID,
13-
start_datetime: Annotated[datetime | None, Body()] = None,
14-
end_datetime: Annotated[datetime | None, Body()] = None,
13+
start_datetime: Annotated[datetime, Body()],
14+
end_datetime: Annotated[datetime, Body()],
15+
process_after: Annotated[timedelta, Body()],
1516
repeat_at: Annotated[time | None, Body()] = None,
16-
process_after: Annotated[timedelta | None, Body()] = None,
1717
):
1818
start_process = start_datetime + process_after
1919
duration = end_datetime - start_process
2020
return {
2121
"item_id": item_id,
2222
"start_datetime": start_datetime,
2323
"end_datetime": end_datetime,
24-
"repeat_at": repeat_at,
2524
"process_after": process_after,
25+
"repeat_at": repeat_at,
2626
"start_process": start_process,
2727
"duration": duration,
2828
}

docs_src/extra_data_types/tutorial001_an_py39.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,19 @@
1010
@app.put("/items/{item_id}")
1111
async def read_items(
1212
item_id: UUID,
13-
start_datetime: Annotated[Union[datetime, None], Body()] = None,
14-
end_datetime: Annotated[Union[datetime, None], Body()] = None,
13+
start_datetime: Annotated[datetime, Body()],
14+
end_datetime: Annotated[datetime, Body()],
15+
process_after: Annotated[timedelta, Body()],
1516
repeat_at: Annotated[Union[time, None], Body()] = None,
16-
process_after: Annotated[Union[timedelta, None], Body()] = None,
1717
):
1818
start_process = start_datetime + process_after
1919
duration = end_datetime - start_process
2020
return {
2121
"item_id": item_id,
2222
"start_datetime": start_datetime,
2323
"end_datetime": end_datetime,
24-
"repeat_at": repeat_at,
2524
"process_after": process_after,
25+
"repeat_at": repeat_at,
2626
"start_process": start_process,
2727
"duration": duration,
2828
}

docs_src/extra_data_types/tutorial001_py310.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,19 +9,19 @@
99
@app.put("/items/{item_id}")
1010
async def read_items(
1111
item_id: UUID,
12-
start_datetime: datetime | None = Body(default=None),
13-
end_datetime: datetime | None = Body(default=None),
12+
start_datetime: datetime = Body(),
13+
end_datetime: datetime = Body(),
14+
process_after: timedelta = Body(),
1415
repeat_at: time | None = Body(default=None),
15-
process_after: timedelta | None = Body(default=None),
1616
):
1717
start_process = start_datetime + process_after
1818
duration = end_datetime - start_process
1919
return {
2020
"item_id": item_id,
2121
"start_datetime": start_datetime,
2222
"end_datetime": end_datetime,
23-
"repeat_at": repeat_at,
2423
"process_after": process_after,
24+
"repeat_at": repeat_at,
2525
"start_process": start_process,
2626
"duration": duration,
2727
}

tests/test_tutorial/test_extra_data_types/test_tutorial001.py

Lines changed: 15 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ def test_openapi_schema():
6767
}
6868
],
6969
"requestBody": {
70+
"required": True,
7071
"content": {
7172
"application/json": {
7273
"schema": IsDict(
@@ -86,7 +87,7 @@ def test_openapi_schema():
8687
}
8788
)
8889
}
89-
}
90+
},
9091
},
9192
}
9293
}
@@ -97,40 +98,16 @@ def test_openapi_schema():
9798
"title": "Body_read_items_items__item_id__put",
9899
"type": "object",
99100
"properties": {
100-
"start_datetime": IsDict(
101-
{
102-
"title": "Start Datetime",
103-
"anyOf": [
104-
{"type": "string", "format": "date-time"},
105-
{"type": "null"},
106-
],
107-
}
108-
)
109-
| IsDict(
110-
# TODO: remove when deprecating Pydantic v1
111-
{
112-
"title": "Start Datetime",
113-
"type": "string",
114-
"format": "date-time",
115-
}
116-
),
117-
"end_datetime": IsDict(
118-
{
119-
"title": "End Datetime",
120-
"anyOf": [
121-
{"type": "string", "format": "date-time"},
122-
{"type": "null"},
123-
],
124-
}
125-
)
126-
| IsDict(
127-
# TODO: remove when deprecating Pydantic v1
128-
{
129-
"title": "End Datetime",
130-
"type": "string",
131-
"format": "date-time",
132-
}
133-
),
101+
"start_datetime": {
102+
"title": "Start Datetime",
103+
"type": "string",
104+
"format": "date-time",
105+
},
106+
"end_datetime": {
107+
"title": "End Datetime",
108+
"type": "string",
109+
"format": "date-time",
110+
},
134111
"repeat_at": IsDict(
135112
{
136113
"title": "Repeat At",
@@ -151,10 +128,8 @@ def test_openapi_schema():
151128
"process_after": IsDict(
152129
{
153130
"title": "Process After",
154-
"anyOf": [
155-
{"type": "string", "format": "duration"},
156-
{"type": "null"},
157-
],
131+
"type": "string",
132+
"format": "duration",
158133
}
159134
)
160135
| IsDict(
@@ -166,6 +141,7 @@ def test_openapi_schema():
166141
}
167142
),
168143
},
144+
"required": ["start_datetime", "end_datetime", "process_after"],
169145
},
170146
"ValidationError": {
171147
"title": "ValidationError",

tests/test_tutorial/test_extra_data_types/test_tutorial001_an.py

Lines changed: 15 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ def test_openapi_schema():
6767
}
6868
],
6969
"requestBody": {
70+
"required": True,
7071
"content": {
7172
"application/json": {
7273
"schema": IsDict(
@@ -86,7 +87,7 @@ def test_openapi_schema():
8687
}
8788
)
8889
}
89-
}
90+
},
9091
},
9192
}
9293
}
@@ -97,40 +98,16 @@ def test_openapi_schema():
9798
"title": "Body_read_items_items__item_id__put",
9899
"type": "object",
99100
"properties": {
100-
"start_datetime": IsDict(
101-
{
102-
"title": "Start Datetime",
103-
"anyOf": [
104-
{"type": "string", "format": "date-time"},
105-
{"type": "null"},
106-
],
107-
}
108-
)
109-
| IsDict(
110-
# TODO: remove when deprecating Pydantic v1
111-
{
112-
"title": "Start Datetime",
113-
"type": "string",
114-
"format": "date-time",
115-
}
116-
),
117-
"end_datetime": IsDict(
118-
{
119-
"title": "End Datetime",
120-
"anyOf": [
121-
{"type": "string", "format": "date-time"},
122-
{"type": "null"},
123-
],
124-
}
125-
)
126-
| IsDict(
127-
# TODO: remove when deprecating Pydantic v1
128-
{
129-
"title": "End Datetime",
130-
"type": "string",
131-
"format": "date-time",
132-
}
133-
),
101+
"start_datetime": {
102+
"title": "Start Datetime",
103+
"type": "string",
104+
"format": "date-time",
105+
},
106+
"end_datetime": {
107+
"title": "End Datetime",
108+
"type": "string",
109+
"format": "date-time",
110+
},
134111
"repeat_at": IsDict(
135112
{
136113
"title": "Repeat At",
@@ -151,10 +128,8 @@ def test_openapi_schema():
151128
"process_after": IsDict(
152129
{
153130
"title": "Process After",
154-
"anyOf": [
155-
{"type": "string", "format": "duration"},
156-
{"type": "null"},
157-
],
131+
"type": "string",
132+
"format": "duration",
158133
}
159134
)
160135
| IsDict(
@@ -166,6 +141,7 @@ def test_openapi_schema():
166141
}
167142
),
168143
},
144+
"required": ["start_datetime", "end_datetime", "process_after"],
169145
},
170146
"ValidationError": {
171147
"title": "ValidationError",

tests/test_tutorial/test_extra_data_types/test_tutorial001_an_py310.py

Lines changed: 15 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ def test_openapi_schema(client: TestClient):
7676
}
7777
],
7878
"requestBody": {
79+
"required": True,
7980
"content": {
8081
"application/json": {
8182
"schema": IsDict(
@@ -95,7 +96,7 @@ def test_openapi_schema(client: TestClient):
9596
}
9697
)
9798
}
98-
}
99+
},
99100
},
100101
}
101102
}
@@ -106,40 +107,16 @@ def test_openapi_schema(client: TestClient):
106107
"title": "Body_read_items_items__item_id__put",
107108
"type": "object",
108109
"properties": {
109-
"start_datetime": IsDict(
110-
{
111-
"title": "Start Datetime",
112-
"anyOf": [
113-
{"type": "string", "format": "date-time"},
114-
{"type": "null"},
115-
],
116-
}
117-
)
118-
| IsDict(
119-
# TODO: remove when deprecating Pydantic v1
120-
{
121-
"title": "Start Datetime",
122-
"type": "string",
123-
"format": "date-time",
124-
}
125-
),
126-
"end_datetime": IsDict(
127-
{
128-
"title": "End Datetime",
129-
"anyOf": [
130-
{"type": "string", "format": "date-time"},
131-
{"type": "null"},
132-
],
133-
}
134-
)
135-
| IsDict(
136-
# TODO: remove when deprecating Pydantic v1
137-
{
138-
"title": "End Datetime",
139-
"type": "string",
140-
"format": "date-time",
141-
}
142-
),
110+
"start_datetime": {
111+
"title": "Start Datetime",
112+
"type": "string",
113+
"format": "date-time",
114+
},
115+
"end_datetime": {
116+
"title": "End Datetime",
117+
"type": "string",
118+
"format": "date-time",
119+
},
143120
"repeat_at": IsDict(
144121
{
145122
"title": "Repeat At",
@@ -160,10 +137,8 @@ def test_openapi_schema(client: TestClient):
160137
"process_after": IsDict(
161138
{
162139
"title": "Process After",
163-
"anyOf": [
164-
{"type": "string", "format": "duration"},
165-
{"type": "null"},
166-
],
140+
"type": "string",
141+
"format": "duration",
167142
}
168143
)
169144
| IsDict(
@@ -175,6 +150,7 @@ def test_openapi_schema(client: TestClient):
175150
}
176151
),
177152
},
153+
"required": ["start_datetime", "end_datetime", "process_after"],
178154
},
179155
"ValidationError": {
180156
"title": "ValidationError",

0 commit comments

Comments
 (0)