Skip to content

Commit 11a0f1b

Browse files
committed
change _Unset to be Default(None) for type checking reasons
1 parent bf2a811 commit 11a0f1b

4 files changed

Lines changed: 115 additions & 113 deletions

File tree

fastapi/datastructures.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,3 +179,8 @@ def Default(value: DefaultType) -> DefaultType:
179179
if the overridden default value was truthy.
180180
"""
181181
return DefaultPlaceholder(value) # type: ignore
182+
183+
184+
# Sentinel for "parameter not provided" in Param/FieldInfo.
185+
# Typed as None to satisfy ty
186+
_Unset = Default(None)

fastapi/openapi/utils.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,13 @@
88
from fastapi import routing
99
from fastapi._compat import (
1010
ModelField,
11-
Undefined,
1211
get_definitions,
1312
get_flat_models_from_fields,
1413
get_model_name_map,
1514
get_schema_from_model_field,
1615
lenient_issubclass,
1716
)
18-
from fastapi.datastructures import DefaultPlaceholder
17+
from fastapi.datastructures import DefaultPlaceholder, _Unset
1918
from fastapi.dependencies.models import Dependant
2019
from fastapi.dependencies.utils import (
2120
_get_flat_fields_from_params,
@@ -170,7 +169,7 @@ def _get_openapi_operation_parameters(
170169
example = getattr(field_info, "example", None)
171170
if openapi_examples:
172171
parameter["examples"] = jsonable_encoder(openapi_examples)
173-
elif example != Undefined:
172+
elif example is not _Unset:
174173
parameter["example"] = jsonable_encoder(example)
175174
if getattr(field_info, "deprecated", None):
176175
parameter["deprecated"] = True
@@ -207,7 +206,7 @@ def get_openapi_operation_request_body(
207206
request_media_content["examples"] = jsonable_encoder(
208207
field_info.openapi_examples
209208
)
210-
elif field_info.example != Undefined:
209+
elif field_info.example is not _Unset:
211210
request_media_content["example"] = jsonable_encoder(field_info.example)
212211
request_body_oai["content"] = {request_media_type: request_media_content}
213212
return request_body_oai

0 commit comments

Comments
 (0)