Spaces:
Running
Running
from typing import Any, Callable, Dict, List, Optional, Sequence, Union | |
from fastapi import params | |
from fastapi._compat import Undefined | |
from fastapi.openapi.models import Example | |
from typing_extensions import Annotated, Doc, deprecated | |
_Unset: Any = Undefined | |
def Path( # noqa: N802 | |
default: Annotated[ | |
Any, | |
Doc( | |
""" | |
Default value if the parameter field is not set. | |
This doesn't affect `Path` parameters as the value is always required. | |
The parameter is available only for compatibility. | |
""" | |
), | |
] = ..., | |
*, | |
default_factory: Annotated[ | |
Union[Callable[[], Any], None], | |
Doc( | |
""" | |
A callable to generate the default value. | |
This doesn't affect `Path` parameters as the value is always required. | |
The parameter is available only for compatibility. | |
""" | |
), | |
] = _Unset, | |
alias: Annotated[ | |
Optional[str], | |
Doc( | |
""" | |
An alternative name for the parameter field. | |
This will be used to extract the data and for the generated OpenAPI. | |
It is particularly useful when you can't use the name you want because it | |
is a Python reserved keyword or similar. | |
""" | |
), | |
] = None, | |
alias_priority: Annotated[ | |
Union[int, None], | |
Doc( | |
""" | |
Priority of the alias. This affects whether an alias generator is used. | |
""" | |
), | |
] = _Unset, | |
# TODO: update when deprecating Pydantic v1, import these types | |
# validation_alias: str | AliasPath | AliasChoices | None | |
validation_alias: Annotated[ | |
Union[str, None], | |
Doc( | |
""" | |
'Whitelist' validation step. The parameter field will be the single one | |
allowed by the alias or set of aliases defined. | |
""" | |
), | |
] = None, | |
serialization_alias: Annotated[ | |
Union[str, None], | |
Doc( | |
""" | |
'Blacklist' validation step. The vanilla parameter field will be the | |
single one of the alias' or set of aliases' fields and all the other | |
fields will be ignored at serialization time. | |
""" | |
), | |
] = None, | |
title: Annotated[ | |
Optional[str], | |
Doc( | |
""" | |
Human-readable title. | |
""" | |
), | |
] = None, | |
description: Annotated[ | |
Optional[str], | |
Doc( | |
""" | |
Human-readable description. | |
""" | |
), | |
] = None, | |
gt: Annotated[ | |
Optional[float], | |
Doc( | |
""" | |
Greater than. If set, value must be greater than this. Only applicable to | |
numbers. | |
""" | |
), | |
] = None, | |
ge: Annotated[ | |
Optional[float], | |
Doc( | |
""" | |
Greater than or equal. If set, value must be greater than or equal to | |
this. Only applicable to numbers. | |
""" | |
), | |
] = None, | |
lt: Annotated[ | |
Optional[float], | |
Doc( | |
""" | |
Less than. If set, value must be less than this. Only applicable to numbers. | |
""" | |
), | |
] = None, | |
le: Annotated[ | |
Optional[float], | |
Doc( | |
""" | |
Less than or equal. If set, value must be less than or equal to this. | |
Only applicable to numbers. | |
""" | |
), | |
] = None, | |
min_length: Annotated[ | |
Optional[int], | |
Doc( | |
""" | |
Minimum length for strings. | |
""" | |
), | |
] = None, | |
max_length: Annotated[ | |
Optional[int], | |
Doc( | |
""" | |
Maximum length for strings. | |
""" | |
), | |
] = None, | |
pattern: Annotated[ | |
Optional[str], | |
Doc( | |
""" | |
RegEx pattern for strings. | |
""" | |
), | |
] = None, | |
regex: Annotated[ | |
Optional[str], | |
Doc( | |
""" | |
RegEx pattern for strings. | |
""" | |
), | |
deprecated( | |
"Deprecated in FastAPI 0.100.0 and Pydantic v2, use `pattern` instead." | |
), | |
] = None, | |
discriminator: Annotated[ | |
Union[str, None], | |
Doc( | |
""" | |
Parameter field name for discriminating the type in a tagged union. | |
""" | |
), | |
] = None, | |
strict: Annotated[ | |
Union[bool, None], | |
Doc( | |
""" | |
If `True`, strict validation is applied to the field. | |
""" | |
), | |
] = _Unset, | |
multiple_of: Annotated[ | |
Union[float, None], | |
Doc( | |
""" | |
Value must be a multiple of this. Only applicable to numbers. | |
""" | |
), | |
] = _Unset, | |
allow_inf_nan: Annotated[ | |
Union[bool, None], | |
Doc( | |
""" | |
Allow `inf`, `-inf`, `nan`. Only applicable to numbers. | |
""" | |
), | |
] = _Unset, | |
max_digits: Annotated[ | |
Union[int, None], | |
Doc( | |
""" | |
Maximum number of allow digits for strings. | |
""" | |
), | |
] = _Unset, | |
decimal_places: Annotated[ | |
Union[int, None], | |
Doc( | |
""" | |
Maximum number of decimal places allowed for numbers. | |
""" | |
), | |
] = _Unset, | |
examples: Annotated[ | |
Optional[List[Any]], | |
Doc( | |
""" | |
Example values for this field. | |
""" | |
), | |
] = None, | |
example: Annotated[ | |
Optional[Any], | |
deprecated( | |
"Deprecated in OpenAPI 3.1.0 that now uses JSON Schema 2020-12, " | |
"although still supported. Use examples instead." | |
), | |
] = _Unset, | |
openapi_examples: Annotated[ | |
Optional[Dict[str, Example]], | |
Doc( | |
""" | |
OpenAPI-specific examples. | |
It will be added to the generated OpenAPI (e.g. visible at `/docs`). | |
Swagger UI (that provides the `/docs` interface) has better support for the | |
OpenAPI-specific examples than the JSON Schema `examples`, that's the main | |
use case for this. | |
Read more about it in the | |
[FastAPI docs for Declare Request Example Data](https://fastapi.tiangolo.com/tutorial/schema-extra-example/#using-the-openapi_examples-parameter). | |
""" | |
), | |
] = None, | |
deprecated: Annotated[ | |
Union[deprecated, str, bool, None], | |
Doc( | |
""" | |
Mark this parameter field as deprecated. | |
It will affect the generated OpenAPI (e.g. visible at `/docs`). | |
""" | |
), | |
] = None, | |
include_in_schema: Annotated[ | |
bool, | |
Doc( | |
""" | |
To include (or not) this parameter field in the generated OpenAPI. | |
You probably don't need it, but it's available. | |
This affects the generated OpenAPI (e.g. visible at `/docs`). | |
""" | |
), | |
] = True, | |
json_schema_extra: Annotated[ | |
Union[Dict[str, Any], None], | |
Doc( | |
""" | |
Any additional JSON schema data. | |
""" | |
), | |
] = None, | |
**extra: Annotated[ | |
Any, | |
Doc( | |
""" | |
Include extra fields used by the JSON Schema. | |
""" | |
), | |
deprecated( | |
""" | |
The `extra` kwargs is deprecated. Use `json_schema_extra` instead. | |
""" | |
), | |
], | |
) -> Any: | |
""" | |
Declare a path parameter for a *path operation*. | |
Read more about it in the | |
[FastAPI docs for Path Parameters and Numeric Validations](https://fastapi.tiangolo.com/tutorial/path-params-numeric-validations/). | |
```python | |
from typing import Annotated | |
from fastapi import FastAPI, Path | |
app = FastAPI() | |
@app.get("/items/{item_id}") | |
async def read_items( | |
item_id: Annotated[int, Path(title="The ID of the item to get")], | |
): | |
return {"item_id": item_id} | |
``` | |
""" | |
return params.Path( | |
default=default, | |
default_factory=default_factory, | |
alias=alias, | |
alias_priority=alias_priority, | |
validation_alias=validation_alias, | |
serialization_alias=serialization_alias, | |
title=title, | |
description=description, | |
gt=gt, | |
ge=ge, | |
lt=lt, | |
le=le, | |
min_length=min_length, | |
max_length=max_length, | |
pattern=pattern, | |
regex=regex, | |
discriminator=discriminator, | |
strict=strict, | |
multiple_of=multiple_of, | |
allow_inf_nan=allow_inf_nan, | |
max_digits=max_digits, | |
decimal_places=decimal_places, | |
example=example, | |
examples=examples, | |
openapi_examples=openapi_examples, | |
deprecated=deprecated, | |
include_in_schema=include_in_schema, | |
json_schema_extra=json_schema_extra, | |
**extra, | |
) | |
def Query( # noqa: N802 | |
default: Annotated[ | |
Any, | |
Doc( | |
""" | |
Default value if the parameter field is not set. | |
""" | |
), | |
] = Undefined, | |
*, | |
default_factory: Annotated[ | |
Union[Callable[[], Any], None], | |
Doc( | |
""" | |
A callable to generate the default value. | |
This doesn't affect `Path` parameters as the value is always required. | |
The parameter is available only for compatibility. | |
""" | |
), | |
] = _Unset, | |
alias: Annotated[ | |
Optional[str], | |
Doc( | |
""" | |
An alternative name for the parameter field. | |
This will be used to extract the data and for the generated OpenAPI. | |
It is particularly useful when you can't use the name you want because it | |
is a Python reserved keyword or similar. | |
""" | |
), | |
] = None, | |
alias_priority: Annotated[ | |
Union[int, None], | |
Doc( | |
""" | |
Priority of the alias. This affects whether an alias generator is used. | |
""" | |
), | |
] = _Unset, | |
# TODO: update when deprecating Pydantic v1, import these types | |
# validation_alias: str | AliasPath | AliasChoices | None | |
validation_alias: Annotated[ | |
Union[str, None], | |
Doc( | |
""" | |
'Whitelist' validation step. The parameter field will be the single one | |
allowed by the alias or set of aliases defined. | |
""" | |
), | |
] = None, | |
serialization_alias: Annotated[ | |
Union[str, None], | |
Doc( | |
""" | |
'Blacklist' validation step. The vanilla parameter field will be the | |
single one of the alias' or set of aliases' fields and all the other | |
fields will be ignored at serialization time. | |
""" | |
), | |
] = None, | |
title: Annotated[ | |
Optional[str], | |
Doc( | |
""" | |
Human-readable title. | |
""" | |
), | |
] = None, | |
description: Annotated[ | |
Optional[str], | |
Doc( | |
""" | |
Human-readable description. | |
""" | |
), | |
] = None, | |
gt: Annotated[ | |
Optional[float], | |
Doc( | |
""" | |
Greater than. If set, value must be greater than this. Only applicable to | |
numbers. | |
""" | |
), | |
] = None, | |
ge: Annotated[ | |
Optional[float], | |
Doc( | |
""" | |
Greater than or equal. If set, value must be greater than or equal to | |
this. Only applicable to numbers. | |
""" | |
), | |
] = None, | |
lt: Annotated[ | |
Optional[float], | |
Doc( | |
""" | |
Less than. If set, value must be less than this. Only applicable to numbers. | |
""" | |
), | |
] = None, | |
le: Annotated[ | |
Optional[float], | |
Doc( | |
""" | |
Less than or equal. If set, value must be less than or equal to this. | |
Only applicable to numbers. | |
""" | |
), | |
] = None, | |
min_length: Annotated[ | |
Optional[int], | |
Doc( | |
""" | |
Minimum length for strings. | |
""" | |
), | |
] = None, | |
max_length: Annotated[ | |
Optional[int], | |
Doc( | |
""" | |
Maximum length for strings. | |
""" | |
), | |
] = None, | |
pattern: Annotated[ | |
Optional[str], | |
Doc( | |
""" | |
RegEx pattern for strings. | |
""" | |
), | |
] = None, | |
regex: Annotated[ | |
Optional[str], | |
Doc( | |
""" | |
RegEx pattern for strings. | |
""" | |
), | |
deprecated( | |
"Deprecated in FastAPI 0.100.0 and Pydantic v2, use `pattern` instead." | |
), | |
] = None, | |
discriminator: Annotated[ | |
Union[str, None], | |
Doc( | |
""" | |
Parameter field name for discriminating the type in a tagged union. | |
""" | |
), | |
] = None, | |
strict: Annotated[ | |
Union[bool, None], | |
Doc( | |
""" | |
If `True`, strict validation is applied to the field. | |
""" | |
), | |
] = _Unset, | |
multiple_of: Annotated[ | |
Union[float, None], | |
Doc( | |
""" | |
Value must be a multiple of this. Only applicable to numbers. | |
""" | |
), | |
] = _Unset, | |
allow_inf_nan: Annotated[ | |
Union[bool, None], | |
Doc( | |
""" | |
Allow `inf`, `-inf`, `nan`. Only applicable to numbers. | |
""" | |
), | |
] = _Unset, | |
max_digits: Annotated[ | |
Union[int, None], | |
Doc( | |
""" | |
Maximum number of allow digits for strings. | |
""" | |
), | |
] = _Unset, | |
decimal_places: Annotated[ | |
Union[int, None], | |
Doc( | |
""" | |
Maximum number of decimal places allowed for numbers. | |
""" | |
), | |
] = _Unset, | |
examples: Annotated[ | |
Optional[List[Any]], | |
Doc( | |
""" | |
Example values for this field. | |
""" | |
), | |
] = None, | |
example: Annotated[ | |
Optional[Any], | |
deprecated( | |
"Deprecated in OpenAPI 3.1.0 that now uses JSON Schema 2020-12, " | |
"although still supported. Use examples instead." | |
), | |
] = _Unset, | |
openapi_examples: Annotated[ | |
Optional[Dict[str, Example]], | |
Doc( | |
""" | |
OpenAPI-specific examples. | |
It will be added to the generated OpenAPI (e.g. visible at `/docs`). | |
Swagger UI (that provides the `/docs` interface) has better support for the | |
OpenAPI-specific examples than the JSON Schema `examples`, that's the main | |
use case for this. | |
Read more about it in the | |
[FastAPI docs for Declare Request Example Data](https://fastapi.tiangolo.com/tutorial/schema-extra-example/#using-the-openapi_examples-parameter). | |
""" | |
), | |
] = None, | |
deprecated: Annotated[ | |
Union[deprecated, str, bool, None], | |
Doc( | |
""" | |
Mark this parameter field as deprecated. | |
It will affect the generated OpenAPI (e.g. visible at `/docs`). | |
""" | |
), | |
] = None, | |
include_in_schema: Annotated[ | |
bool, | |
Doc( | |
""" | |
To include (or not) this parameter field in the generated OpenAPI. | |
You probably don't need it, but it's available. | |
This affects the generated OpenAPI (e.g. visible at `/docs`). | |
""" | |
), | |
] = True, | |
json_schema_extra: Annotated[ | |
Union[Dict[str, Any], None], | |
Doc( | |
""" | |
Any additional JSON schema data. | |
""" | |
), | |
] = None, | |
**extra: Annotated[ | |
Any, | |
Doc( | |
""" | |
Include extra fields used by the JSON Schema. | |
""" | |
), | |
deprecated( | |
""" | |
The `extra` kwargs is deprecated. Use `json_schema_extra` instead. | |
""" | |
), | |
], | |
) -> Any: | |
return params.Query( | |
default=default, | |
default_factory=default_factory, | |
alias=alias, | |
alias_priority=alias_priority, | |
validation_alias=validation_alias, | |
serialization_alias=serialization_alias, | |
title=title, | |
description=description, | |
gt=gt, | |
ge=ge, | |
lt=lt, | |
le=le, | |
min_length=min_length, | |
max_length=max_length, | |
pattern=pattern, | |
regex=regex, | |
discriminator=discriminator, | |
strict=strict, | |
multiple_of=multiple_of, | |
allow_inf_nan=allow_inf_nan, | |
max_digits=max_digits, | |
decimal_places=decimal_places, | |
example=example, | |
examples=examples, | |
openapi_examples=openapi_examples, | |
deprecated=deprecated, | |
include_in_schema=include_in_schema, | |
json_schema_extra=json_schema_extra, | |
**extra, | |
) | |
def Header( # noqa: N802 | |
default: Annotated[ | |
Any, | |
Doc( | |
""" | |
Default value if the parameter field is not set. | |
""" | |
), | |
] = Undefined, | |
*, | |
default_factory: Annotated[ | |
Union[Callable[[], Any], None], | |
Doc( | |
""" | |
A callable to generate the default value. | |
This doesn't affect `Path` parameters as the value is always required. | |
The parameter is available only for compatibility. | |
""" | |
), | |
] = _Unset, | |
alias: Annotated[ | |
Optional[str], | |
Doc( | |
""" | |
An alternative name for the parameter field. | |
This will be used to extract the data and for the generated OpenAPI. | |
It is particularly useful when you can't use the name you want because it | |
is a Python reserved keyword or similar. | |
""" | |
), | |
] = None, | |
alias_priority: Annotated[ | |
Union[int, None], | |
Doc( | |
""" | |
Priority of the alias. This affects whether an alias generator is used. | |
""" | |
), | |
] = _Unset, | |
# TODO: update when deprecating Pydantic v1, import these types | |
# validation_alias: str | AliasPath | AliasChoices | None | |
validation_alias: Annotated[ | |
Union[str, None], | |
Doc( | |
""" | |
'Whitelist' validation step. The parameter field will be the single one | |
allowed by the alias or set of aliases defined. | |
""" | |
), | |
] = None, | |
serialization_alias: Annotated[ | |
Union[str, None], | |
Doc( | |
""" | |
'Blacklist' validation step. The vanilla parameter field will be the | |
single one of the alias' or set of aliases' fields and all the other | |
fields will be ignored at serialization time. | |
""" | |
), | |
] = None, | |
convert_underscores: Annotated[ | |
bool, | |
Doc( | |
""" | |
Automatically convert underscores to hyphens in the parameter field name. | |
Read more about it in the | |
[FastAPI docs for Header Parameters](https://fastapi.tiangolo.com/tutorial/header-params/#automatic-conversion) | |
""" | |
), | |
] = True, | |
title: Annotated[ | |
Optional[str], | |
Doc( | |
""" | |
Human-readable title. | |
""" | |
), | |
] = None, | |
description: Annotated[ | |
Optional[str], | |
Doc( | |
""" | |
Human-readable description. | |
""" | |
), | |
] = None, | |
gt: Annotated[ | |
Optional[float], | |
Doc( | |
""" | |
Greater than. If set, value must be greater than this. Only applicable to | |
numbers. | |
""" | |
), | |
] = None, | |
ge: Annotated[ | |
Optional[float], | |
Doc( | |
""" | |
Greater than or equal. If set, value must be greater than or equal to | |
this. Only applicable to numbers. | |
""" | |
), | |
] = None, | |
lt: Annotated[ | |
Optional[float], | |
Doc( | |
""" | |
Less than. If set, value must be less than this. Only applicable to numbers. | |
""" | |
), | |
] = None, | |
le: Annotated[ | |
Optional[float], | |
Doc( | |
""" | |
Less than or equal. If set, value must be less than or equal to this. | |
Only applicable to numbers. | |
""" | |
), | |
] = None, | |
min_length: Annotated[ | |
Optional[int], | |
Doc( | |
""" | |
Minimum length for strings. | |
""" | |
), | |
] = None, | |
max_length: Annotated[ | |
Optional[int], | |
Doc( | |
""" | |
Maximum length for strings. | |
""" | |
), | |
] = None, | |
pattern: Annotated[ | |
Optional[str], | |
Doc( | |
""" | |
RegEx pattern for strings. | |
""" | |
), | |
] = None, | |
regex: Annotated[ | |
Optional[str], | |
Doc( | |
""" | |
RegEx pattern for strings. | |
""" | |
), | |
deprecated( | |
"Deprecated in FastAPI 0.100.0 and Pydantic v2, use `pattern` instead." | |
), | |
] = None, | |
discriminator: Annotated[ | |
Union[str, None], | |
Doc( | |
""" | |
Parameter field name for discriminating the type in a tagged union. | |
""" | |
), | |
] = None, | |
strict: Annotated[ | |
Union[bool, None], | |
Doc( | |
""" | |
If `True`, strict validation is applied to the field. | |
""" | |
), | |
] = _Unset, | |
multiple_of: Annotated[ | |
Union[float, None], | |
Doc( | |
""" | |
Value must be a multiple of this. Only applicable to numbers. | |
""" | |
), | |
] = _Unset, | |
allow_inf_nan: Annotated[ | |
Union[bool, None], | |
Doc( | |
""" | |
Allow `inf`, `-inf`, `nan`. Only applicable to numbers. | |
""" | |
), | |
] = _Unset, | |
max_digits: Annotated[ | |
Union[int, None], | |
Doc( | |
""" | |
Maximum number of allow digits for strings. | |
""" | |
), | |
] = _Unset, | |
decimal_places: Annotated[ | |
Union[int, None], | |
Doc( | |
""" | |
Maximum number of decimal places allowed for numbers. | |
""" | |
), | |
] = _Unset, | |
examples: Annotated[ | |
Optional[List[Any]], | |
Doc( | |
""" | |
Example values for this field. | |
""" | |
), | |
] = None, | |
example: Annotated[ | |
Optional[Any], | |
deprecated( | |
"Deprecated in OpenAPI 3.1.0 that now uses JSON Schema 2020-12, " | |
"although still supported. Use examples instead." | |
), | |
] = _Unset, | |
openapi_examples: Annotated[ | |
Optional[Dict[str, Example]], | |
Doc( | |
""" | |
OpenAPI-specific examples. | |
It will be added to the generated OpenAPI (e.g. visible at `/docs`). | |
Swagger UI (that provides the `/docs` interface) has better support for the | |
OpenAPI-specific examples than the JSON Schema `examples`, that's the main | |
use case for this. | |
Read more about it in the | |
[FastAPI docs for Declare Request Example Data](https://fastapi.tiangolo.com/tutorial/schema-extra-example/#using-the-openapi_examples-parameter). | |
""" | |
), | |
] = None, | |
deprecated: Annotated[ | |
Union[deprecated, str, bool, None], | |
Doc( | |
""" | |
Mark this parameter field as deprecated. | |
It will affect the generated OpenAPI (e.g. visible at `/docs`). | |
""" | |
), | |
] = None, | |
include_in_schema: Annotated[ | |
bool, | |
Doc( | |
""" | |
To include (or not) this parameter field in the generated OpenAPI. | |
You probably don't need it, but it's available. | |
This affects the generated OpenAPI (e.g. visible at `/docs`). | |
""" | |
), | |
] = True, | |
json_schema_extra: Annotated[ | |
Union[Dict[str, Any], None], | |
Doc( | |
""" | |
Any additional JSON schema data. | |
""" | |
), | |
] = None, | |
**extra: Annotated[ | |
Any, | |
Doc( | |
""" | |
Include extra fields used by the JSON Schema. | |
""" | |
), | |
deprecated( | |
""" | |
The `extra` kwargs is deprecated. Use `json_schema_extra` instead. | |
""" | |
), | |
], | |
) -> Any: | |
return params.Header( | |
default=default, | |
default_factory=default_factory, | |
alias=alias, | |
alias_priority=alias_priority, | |
validation_alias=validation_alias, | |
serialization_alias=serialization_alias, | |
convert_underscores=convert_underscores, | |
title=title, | |
description=description, | |
gt=gt, | |
ge=ge, | |
lt=lt, | |
le=le, | |
min_length=min_length, | |
max_length=max_length, | |
pattern=pattern, | |
regex=regex, | |
discriminator=discriminator, | |
strict=strict, | |
multiple_of=multiple_of, | |
allow_inf_nan=allow_inf_nan, | |
max_digits=max_digits, | |
decimal_places=decimal_places, | |
example=example, | |
examples=examples, | |
openapi_examples=openapi_examples, | |
deprecated=deprecated, | |
include_in_schema=include_in_schema, | |
json_schema_extra=json_schema_extra, | |
**extra, | |
) | |
def Cookie( # noqa: N802 | |
default: Annotated[ | |
Any, | |
Doc( | |
""" | |
Default value if the parameter field is not set. | |
""" | |
), | |
] = Undefined, | |
*, | |
default_factory: Annotated[ | |
Union[Callable[[], Any], None], | |
Doc( | |
""" | |
A callable to generate the default value. | |
This doesn't affect `Path` parameters as the value is always required. | |
The parameter is available only for compatibility. | |
""" | |
), | |
] = _Unset, | |
alias: Annotated[ | |
Optional[str], | |
Doc( | |
""" | |
An alternative name for the parameter field. | |
This will be used to extract the data and for the generated OpenAPI. | |
It is particularly useful when you can't use the name you want because it | |
is a Python reserved keyword or similar. | |
""" | |
), | |
] = None, | |
alias_priority: Annotated[ | |
Union[int, None], | |
Doc( | |
""" | |
Priority of the alias. This affects whether an alias generator is used. | |
""" | |
), | |
] = _Unset, | |
# TODO: update when deprecating Pydantic v1, import these types | |
# validation_alias: str | AliasPath | AliasChoices | None | |
validation_alias: Annotated[ | |
Union[str, None], | |
Doc( | |
""" | |
'Whitelist' validation step. The parameter field will be the single one | |
allowed by the alias or set of aliases defined. | |
""" | |
), | |
] = None, | |
serialization_alias: Annotated[ | |
Union[str, None], | |
Doc( | |
""" | |
'Blacklist' validation step. The vanilla parameter field will be the | |
single one of the alias' or set of aliases' fields and all the other | |
fields will be ignored at serialization time. | |
""" | |
), | |
] = None, | |
title: Annotated[ | |
Optional[str], | |
Doc( | |
""" | |
Human-readable title. | |
""" | |
), | |
] = None, | |
description: Annotated[ | |
Optional[str], | |
Doc( | |
""" | |
Human-readable description. | |
""" | |
), | |
] = None, | |
gt: Annotated[ | |
Optional[float], | |
Doc( | |
""" | |
Greater than. If set, value must be greater than this. Only applicable to | |
numbers. | |
""" | |
), | |
] = None, | |
ge: Annotated[ | |
Optional[float], | |
Doc( | |
""" | |
Greater than or equal. If set, value must be greater than or equal to | |
this. Only applicable to numbers. | |
""" | |
), | |
] = None, | |
lt: Annotated[ | |
Optional[float], | |
Doc( | |
""" | |
Less than. If set, value must be less than this. Only applicable to numbers. | |
""" | |
), | |
] = None, | |
le: Annotated[ | |
Optional[float], | |
Doc( | |
""" | |
Less than or equal. If set, value must be less than or equal to this. | |
Only applicable to numbers. | |
""" | |
), | |
] = None, | |
min_length: Annotated[ | |
Optional[int], | |
Doc( | |
""" | |
Minimum length for strings. | |
""" | |
), | |
] = None, | |
max_length: Annotated[ | |
Optional[int], | |
Doc( | |
""" | |
Maximum length for strings. | |
""" | |
), | |
] = None, | |
pattern: Annotated[ | |
Optional[str], | |
Doc( | |
""" | |
RegEx pattern for strings. | |
""" | |
), | |
] = None, | |
regex: Annotated[ | |
Optional[str], | |
Doc( | |
""" | |
RegEx pattern for strings. | |
""" | |
), | |
deprecated( | |
"Deprecated in FastAPI 0.100.0 and Pydantic v2, use `pattern` instead." | |
), | |
] = None, | |
discriminator: Annotated[ | |
Union[str, None], | |
Doc( | |
""" | |
Parameter field name for discriminating the type in a tagged union. | |
""" | |
), | |
] = None, | |
strict: Annotated[ | |
Union[bool, None], | |
Doc( | |
""" | |
If `True`, strict validation is applied to the field. | |
""" | |
), | |
] = _Unset, | |
multiple_of: Annotated[ | |
Union[float, None], | |
Doc( | |
""" | |
Value must be a multiple of this. Only applicable to numbers. | |
""" | |
), | |
] = _Unset, | |
allow_inf_nan: Annotated[ | |
Union[bool, None], | |
Doc( | |
""" | |
Allow `inf`, `-inf`, `nan`. Only applicable to numbers. | |
""" | |
), | |
] = _Unset, | |
max_digits: Annotated[ | |
Union[int, None], | |
Doc( | |
""" | |
Maximum number of allow digits for strings. | |
""" | |
), | |
] = _Unset, | |
decimal_places: Annotated[ | |
Union[int, None], | |
Doc( | |
""" | |
Maximum number of decimal places allowed for numbers. | |
""" | |
), | |
] = _Unset, | |
examples: Annotated[ | |
Optional[List[Any]], | |
Doc( | |
""" | |
Example values for this field. | |
""" | |
), | |
] = None, | |
example: Annotated[ | |
Optional[Any], | |
deprecated( | |
"Deprecated in OpenAPI 3.1.0 that now uses JSON Schema 2020-12, " | |
"although still supported. Use examples instead." | |
), | |
] = _Unset, | |
openapi_examples: Annotated[ | |
Optional[Dict[str, Example]], | |
Doc( | |
""" | |
OpenAPI-specific examples. | |
It will be added to the generated OpenAPI (e.g. visible at `/docs`). | |
Swagger UI (that provides the `/docs` interface) has better support for the | |
OpenAPI-specific examples than the JSON Schema `examples`, that's the main | |
use case for this. | |
Read more about it in the | |
[FastAPI docs for Declare Request Example Data](https://fastapi.tiangolo.com/tutorial/schema-extra-example/#using-the-openapi_examples-parameter). | |
""" | |
), | |
] = None, | |
deprecated: Annotated[ | |
Union[deprecated, str, bool, None], | |
Doc( | |
""" | |
Mark this parameter field as deprecated. | |
It will affect the generated OpenAPI (e.g. visible at `/docs`). | |
""" | |
), | |
] = None, | |
include_in_schema: Annotated[ | |
bool, | |
Doc( | |
""" | |
To include (or not) this parameter field in the generated OpenAPI. | |
You probably don't need it, but it's available. | |
This affects the generated OpenAPI (e.g. visible at `/docs`). | |
""" | |
), | |
] = True, | |
json_schema_extra: Annotated[ | |
Union[Dict[str, Any], None], | |
Doc( | |
""" | |
Any additional JSON schema data. | |
""" | |
), | |
] = None, | |
**extra: Annotated[ | |
Any, | |
Doc( | |
""" | |
Include extra fields used by the JSON Schema. | |
""" | |
), | |
deprecated( | |
""" | |
The `extra` kwargs is deprecated. Use `json_schema_extra` instead. | |
""" | |
), | |
], | |
) -> Any: | |
return params.Cookie( | |
default=default, | |
default_factory=default_factory, | |
alias=alias, | |
alias_priority=alias_priority, | |
validation_alias=validation_alias, | |
serialization_alias=serialization_alias, | |
title=title, | |
description=description, | |
gt=gt, | |
ge=ge, | |
lt=lt, | |
le=le, | |
min_length=min_length, | |
max_length=max_length, | |
pattern=pattern, | |
regex=regex, | |
discriminator=discriminator, | |
strict=strict, | |
multiple_of=multiple_of, | |
allow_inf_nan=allow_inf_nan, | |
max_digits=max_digits, | |
decimal_places=decimal_places, | |
example=example, | |
examples=examples, | |
openapi_examples=openapi_examples, | |
deprecated=deprecated, | |
include_in_schema=include_in_schema, | |
json_schema_extra=json_schema_extra, | |
**extra, | |
) | |
def Body( # noqa: N802 | |
default: Annotated[ | |
Any, | |
Doc( | |
""" | |
Default value if the parameter field is not set. | |
""" | |
), | |
] = Undefined, | |
*, | |
default_factory: Annotated[ | |
Union[Callable[[], Any], None], | |
Doc( | |
""" | |
A callable to generate the default value. | |
This doesn't affect `Path` parameters as the value is always required. | |
The parameter is available only for compatibility. | |
""" | |
), | |
] = _Unset, | |
embed: Annotated[ | |
bool, | |
Doc( | |
""" | |
When `embed` is `True`, the parameter will be expected in a JSON body as a | |
key instead of being the JSON body itself. | |
This happens automatically when more than one `Body` parameter is declared. | |
Read more about it in the | |
[FastAPI docs for Body - Multiple Parameters](https://fastapi.tiangolo.com/tutorial/body-multiple-params/#embed-a-single-body-parameter). | |
""" | |
), | |
] = False, | |
media_type: Annotated[ | |
str, | |
Doc( | |
""" | |
The media type of this parameter field. Changing it would affect the | |
generated OpenAPI, but currently it doesn't affect the parsing of the data. | |
""" | |
), | |
] = "application/json", | |
alias: Annotated[ | |
Optional[str], | |
Doc( | |
""" | |
An alternative name for the parameter field. | |
This will be used to extract the data and for the generated OpenAPI. | |
It is particularly useful when you can't use the name you want because it | |
is a Python reserved keyword or similar. | |
""" | |
), | |
] = None, | |
alias_priority: Annotated[ | |
Union[int, None], | |
Doc( | |
""" | |
Priority of the alias. This affects whether an alias generator is used. | |
""" | |
), | |
] = _Unset, | |
# TODO: update when deprecating Pydantic v1, import these types | |
# validation_alias: str | AliasPath | AliasChoices | None | |
validation_alias: Annotated[ | |
Union[str, None], | |
Doc( | |
""" | |
'Whitelist' validation step. The parameter field will be the single one | |
allowed by the alias or set of aliases defined. | |
""" | |
), | |
] = None, | |
serialization_alias: Annotated[ | |
Union[str, None], | |
Doc( | |
""" | |
'Blacklist' validation step. The vanilla parameter field will be the | |
single one of the alias' or set of aliases' fields and all the other | |
fields will be ignored at serialization time. | |
""" | |
), | |
] = None, | |
title: Annotated[ | |
Optional[str], | |
Doc( | |
""" | |
Human-readable title. | |
""" | |
), | |
] = None, | |
description: Annotated[ | |
Optional[str], | |
Doc( | |
""" | |
Human-readable description. | |
""" | |
), | |
] = None, | |
gt: Annotated[ | |
Optional[float], | |
Doc( | |
""" | |
Greater than. If set, value must be greater than this. Only applicable to | |
numbers. | |
""" | |
), | |
] = None, | |
ge: Annotated[ | |
Optional[float], | |
Doc( | |
""" | |
Greater than or equal. If set, value must be greater than or equal to | |
this. Only applicable to numbers. | |
""" | |
), | |
] = None, | |
lt: Annotated[ | |
Optional[float], | |
Doc( | |
""" | |
Less than. If set, value must be less than this. Only applicable to numbers. | |
""" | |
), | |
] = None, | |
le: Annotated[ | |
Optional[float], | |
Doc( | |
""" | |
Less than or equal. If set, value must be less than or equal to this. | |
Only applicable to numbers. | |
""" | |
), | |
] = None, | |
min_length: Annotated[ | |
Optional[int], | |
Doc( | |
""" | |
Minimum length for strings. | |
""" | |
), | |
] = None, | |
max_length: Annotated[ | |
Optional[int], | |
Doc( | |
""" | |
Maximum length for strings. | |
""" | |
), | |
] = None, | |
pattern: Annotated[ | |
Optional[str], | |
Doc( | |
""" | |
RegEx pattern for strings. | |
""" | |
), | |
] = None, | |
regex: Annotated[ | |
Optional[str], | |
Doc( | |
""" | |
RegEx pattern for strings. | |
""" | |
), | |
deprecated( | |
"Deprecated in FastAPI 0.100.0 and Pydantic v2, use `pattern` instead." | |
), | |
] = None, | |
discriminator: Annotated[ | |
Union[str, None], | |
Doc( | |
""" | |
Parameter field name for discriminating the type in a tagged union. | |
""" | |
), | |
] = None, | |
strict: Annotated[ | |
Union[bool, None], | |
Doc( | |
""" | |
If `True`, strict validation is applied to the field. | |
""" | |
), | |
] = _Unset, | |
multiple_of: Annotated[ | |
Union[float, None], | |
Doc( | |
""" | |
Value must be a multiple of this. Only applicable to numbers. | |
""" | |
), | |
] = _Unset, | |
allow_inf_nan: Annotated[ | |
Union[bool, None], | |
Doc( | |
""" | |
Allow `inf`, `-inf`, `nan`. Only applicable to numbers. | |
""" | |
), | |
] = _Unset, | |
max_digits: Annotated[ | |
Union[int, None], | |
Doc( | |
""" | |
Maximum number of allow digits for strings. | |
""" | |
), | |
] = _Unset, | |
decimal_places: Annotated[ | |
Union[int, None], | |
Doc( | |
""" | |
Maximum number of decimal places allowed for numbers. | |
""" | |
), | |
] = _Unset, | |
examples: Annotated[ | |
Optional[List[Any]], | |
Doc( | |
""" | |
Example values for this field. | |
""" | |
), | |
] = None, | |
example: Annotated[ | |
Optional[Any], | |
deprecated( | |
"Deprecated in OpenAPI 3.1.0 that now uses JSON Schema 2020-12, " | |
"although still supported. Use examples instead." | |
), | |
] = _Unset, | |
openapi_examples: Annotated[ | |
Optional[Dict[str, Example]], | |
Doc( | |
""" | |
OpenAPI-specific examples. | |
It will be added to the generated OpenAPI (e.g. visible at `/docs`). | |
Swagger UI (that provides the `/docs` interface) has better support for the | |
OpenAPI-specific examples than the JSON Schema `examples`, that's the main | |
use case for this. | |
Read more about it in the | |
[FastAPI docs for Declare Request Example Data](https://fastapi.tiangolo.com/tutorial/schema-extra-example/#using-the-openapi_examples-parameter). | |
""" | |
), | |
] = None, | |
deprecated: Annotated[ | |
Union[deprecated, str, bool, None], | |
Doc( | |
""" | |
Mark this parameter field as deprecated. | |
It will affect the generated OpenAPI (e.g. visible at `/docs`). | |
""" | |
), | |
] = None, | |
include_in_schema: Annotated[ | |
bool, | |
Doc( | |
""" | |
To include (or not) this parameter field in the generated OpenAPI. | |
You probably don't need it, but it's available. | |
This affects the generated OpenAPI (e.g. visible at `/docs`). | |
""" | |
), | |
] = True, | |
json_schema_extra: Annotated[ | |
Union[Dict[str, Any], None], | |
Doc( | |
""" | |
Any additional JSON schema data. | |
""" | |
), | |
] = None, | |
**extra: Annotated[ | |
Any, | |
Doc( | |
""" | |
Include extra fields used by the JSON Schema. | |
""" | |
), | |
deprecated( | |
""" | |
The `extra` kwargs is deprecated. Use `json_schema_extra` instead. | |
""" | |
), | |
], | |
) -> Any: | |
return params.Body( | |
default=default, | |
default_factory=default_factory, | |
embed=embed, | |
media_type=media_type, | |
alias=alias, | |
alias_priority=alias_priority, | |
validation_alias=validation_alias, | |
serialization_alias=serialization_alias, | |
title=title, | |
description=description, | |
gt=gt, | |
ge=ge, | |
lt=lt, | |
le=le, | |
min_length=min_length, | |
max_length=max_length, | |
pattern=pattern, | |
regex=regex, | |
discriminator=discriminator, | |
strict=strict, | |
multiple_of=multiple_of, | |
allow_inf_nan=allow_inf_nan, | |
max_digits=max_digits, | |
decimal_places=decimal_places, | |
example=example, | |
examples=examples, | |
openapi_examples=openapi_examples, | |
deprecated=deprecated, | |
include_in_schema=include_in_schema, | |
json_schema_extra=json_schema_extra, | |
**extra, | |
) | |
def Form( # noqa: N802 | |
default: Annotated[ | |
Any, | |
Doc( | |
""" | |
Default value if the parameter field is not set. | |
""" | |
), | |
] = Undefined, | |
*, | |
default_factory: Annotated[ | |
Union[Callable[[], Any], None], | |
Doc( | |
""" | |
A callable to generate the default value. | |
This doesn't affect `Path` parameters as the value is always required. | |
The parameter is available only for compatibility. | |
""" | |
), | |
] = _Unset, | |
media_type: Annotated[ | |
str, | |
Doc( | |
""" | |
The media type of this parameter field. Changing it would affect the | |
generated OpenAPI, but currently it doesn't affect the parsing of the data. | |
""" | |
), | |
] = "application/x-www-form-urlencoded", | |
alias: Annotated[ | |
Optional[str], | |
Doc( | |
""" | |
An alternative name for the parameter field. | |
This will be used to extract the data and for the generated OpenAPI. | |
It is particularly useful when you can't use the name you want because it | |
is a Python reserved keyword or similar. | |
""" | |
), | |
] = None, | |
alias_priority: Annotated[ | |
Union[int, None], | |
Doc( | |
""" | |
Priority of the alias. This affects whether an alias generator is used. | |
""" | |
), | |
] = _Unset, | |
# TODO: update when deprecating Pydantic v1, import these types | |
# validation_alias: str | AliasPath | AliasChoices | None | |
validation_alias: Annotated[ | |
Union[str, None], | |
Doc( | |
""" | |
'Whitelist' validation step. The parameter field will be the single one | |
allowed by the alias or set of aliases defined. | |
""" | |
), | |
] = None, | |
serialization_alias: Annotated[ | |
Union[str, None], | |
Doc( | |
""" | |
'Blacklist' validation step. The vanilla parameter field will be the | |
single one of the alias' or set of aliases' fields and all the other | |
fields will be ignored at serialization time. | |
""" | |
), | |
] = None, | |
title: Annotated[ | |
Optional[str], | |
Doc( | |
""" | |
Human-readable title. | |
""" | |
), | |
] = None, | |
description: Annotated[ | |
Optional[str], | |
Doc( | |
""" | |
Human-readable description. | |
""" | |
), | |
] = None, | |
gt: Annotated[ | |
Optional[float], | |
Doc( | |
""" | |
Greater than. If set, value must be greater than this. Only applicable to | |
numbers. | |
""" | |
), | |
] = None, | |
ge: Annotated[ | |
Optional[float], | |
Doc( | |
""" | |
Greater than or equal. If set, value must be greater than or equal to | |
this. Only applicable to numbers. | |
""" | |
), | |
] = None, | |
lt: Annotated[ | |
Optional[float], | |
Doc( | |
""" | |
Less than. If set, value must be less than this. Only applicable to numbers. | |
""" | |
), | |
] = None, | |
le: Annotated[ | |
Optional[float], | |
Doc( | |
""" | |
Less than or equal. If set, value must be less than or equal to this. | |
Only applicable to numbers. | |
""" | |
), | |
] = None, | |
min_length: Annotated[ | |
Optional[int], | |
Doc( | |
""" | |
Minimum length for strings. | |
""" | |
), | |
] = None, | |
max_length: Annotated[ | |
Optional[int], | |
Doc( | |
""" | |
Maximum length for strings. | |
""" | |
), | |
] = None, | |
pattern: Annotated[ | |
Optional[str], | |
Doc( | |
""" | |
RegEx pattern for strings. | |
""" | |
), | |
] = None, | |
regex: Annotated[ | |
Optional[str], | |
Doc( | |
""" | |
RegEx pattern for strings. | |
""" | |
), | |
deprecated( | |
"Deprecated in FastAPI 0.100.0 and Pydantic v2, use `pattern` instead." | |
), | |
] = None, | |
discriminator: Annotated[ | |
Union[str, None], | |
Doc( | |
""" | |
Parameter field name for discriminating the type in a tagged union. | |
""" | |
), | |
] = None, | |
strict: Annotated[ | |
Union[bool, None], | |
Doc( | |
""" | |
If `True`, strict validation is applied to the field. | |
""" | |
), | |
] = _Unset, | |
multiple_of: Annotated[ | |
Union[float, None], | |
Doc( | |
""" | |
Value must be a multiple of this. Only applicable to numbers. | |
""" | |
), | |
] = _Unset, | |
allow_inf_nan: Annotated[ | |
Union[bool, None], | |
Doc( | |
""" | |
Allow `inf`, `-inf`, `nan`. Only applicable to numbers. | |
""" | |
), | |
] = _Unset, | |
max_digits: Annotated[ | |
Union[int, None], | |
Doc( | |
""" | |
Maximum number of allow digits for strings. | |
""" | |
), | |
] = _Unset, | |
decimal_places: Annotated[ | |
Union[int, None], | |
Doc( | |
""" | |
Maximum number of decimal places allowed for numbers. | |
""" | |
), | |
] = _Unset, | |
examples: Annotated[ | |
Optional[List[Any]], | |
Doc( | |
""" | |
Example values for this field. | |
""" | |
), | |
] = None, | |
example: Annotated[ | |
Optional[Any], | |
deprecated( | |
"Deprecated in OpenAPI 3.1.0 that now uses JSON Schema 2020-12, " | |
"although still supported. Use examples instead." | |
), | |
] = _Unset, | |
openapi_examples: Annotated[ | |
Optional[Dict[str, Example]], | |
Doc( | |
""" | |
OpenAPI-specific examples. | |
It will be added to the generated OpenAPI (e.g. visible at `/docs`). | |
Swagger UI (that provides the `/docs` interface) has better support for the | |
OpenAPI-specific examples than the JSON Schema `examples`, that's the main | |
use case for this. | |
Read more about it in the | |
[FastAPI docs for Declare Request Example Data](https://fastapi.tiangolo.com/tutorial/schema-extra-example/#using-the-openapi_examples-parameter). | |
""" | |
), | |
] = None, | |
deprecated: Annotated[ | |
Union[deprecated, str, bool, None], | |
Doc( | |
""" | |
Mark this parameter field as deprecated. | |
It will affect the generated OpenAPI (e.g. visible at `/docs`). | |
""" | |
), | |
] = None, | |
include_in_schema: Annotated[ | |
bool, | |
Doc( | |
""" | |
To include (or not) this parameter field in the generated OpenAPI. | |
You probably don't need it, but it's available. | |
This affects the generated OpenAPI (e.g. visible at `/docs`). | |
""" | |
), | |
] = True, | |
json_schema_extra: Annotated[ | |
Union[Dict[str, Any], None], | |
Doc( | |
""" | |
Any additional JSON schema data. | |
""" | |
), | |
] = None, | |
**extra: Annotated[ | |
Any, | |
Doc( | |
""" | |
Include extra fields used by the JSON Schema. | |
""" | |
), | |
deprecated( | |
""" | |
The `extra` kwargs is deprecated. Use `json_schema_extra` instead. | |
""" | |
), | |
], | |
) -> Any: | |
return params.Form( | |
default=default, | |
default_factory=default_factory, | |
media_type=media_type, | |
alias=alias, | |
alias_priority=alias_priority, | |
validation_alias=validation_alias, | |
serialization_alias=serialization_alias, | |
title=title, | |
description=description, | |
gt=gt, | |
ge=ge, | |
lt=lt, | |
le=le, | |
min_length=min_length, | |
max_length=max_length, | |
pattern=pattern, | |
regex=regex, | |
discriminator=discriminator, | |
strict=strict, | |
multiple_of=multiple_of, | |
allow_inf_nan=allow_inf_nan, | |
max_digits=max_digits, | |
decimal_places=decimal_places, | |
example=example, | |
examples=examples, | |
openapi_examples=openapi_examples, | |
deprecated=deprecated, | |
include_in_schema=include_in_schema, | |
json_schema_extra=json_schema_extra, | |
**extra, | |
) | |
def File( # noqa: N802 | |
default: Annotated[ | |
Any, | |
Doc( | |
""" | |
Default value if the parameter field is not set. | |
""" | |
), | |
] = Undefined, | |
*, | |
default_factory: Annotated[ | |
Union[Callable[[], Any], None], | |
Doc( | |
""" | |
A callable to generate the default value. | |
This doesn't affect `Path` parameters as the value is always required. | |
The parameter is available only for compatibility. | |
""" | |
), | |
] = _Unset, | |
media_type: Annotated[ | |
str, | |
Doc( | |
""" | |
The media type of this parameter field. Changing it would affect the | |
generated OpenAPI, but currently it doesn't affect the parsing of the data. | |
""" | |
), | |
] = "multipart/form-data", | |
alias: Annotated[ | |
Optional[str], | |
Doc( | |
""" | |
An alternative name for the parameter field. | |
This will be used to extract the data and for the generated OpenAPI. | |
It is particularly useful when you can't use the name you want because it | |
is a Python reserved keyword or similar. | |
""" | |
), | |
] = None, | |
alias_priority: Annotated[ | |
Union[int, None], | |
Doc( | |
""" | |
Priority of the alias. This affects whether an alias generator is used. | |
""" | |
), | |
] = _Unset, | |
# TODO: update when deprecating Pydantic v1, import these types | |
# validation_alias: str | AliasPath | AliasChoices | None | |
validation_alias: Annotated[ | |
Union[str, None], | |
Doc( | |
""" | |
'Whitelist' validation step. The parameter field will be the single one | |
allowed by the alias or set of aliases defined. | |
""" | |
), | |
] = None, | |
serialization_alias: Annotated[ | |
Union[str, None], | |
Doc( | |
""" | |
'Blacklist' validation step. The vanilla parameter field will be the | |
single one of the alias' or set of aliases' fields and all the other | |
fields will be ignored at serialization time. | |
""" | |
), | |
] = None, | |
title: Annotated[ | |
Optional[str], | |
Doc( | |
""" | |
Human-readable title. | |
""" | |
), | |
] = None, | |
description: Annotated[ | |
Optional[str], | |
Doc( | |
""" | |
Human-readable description. | |
""" | |
), | |
] = None, | |
gt: Annotated[ | |
Optional[float], | |
Doc( | |
""" | |
Greater than. If set, value must be greater than this. Only applicable to | |
numbers. | |
""" | |
), | |
] = None, | |
ge: Annotated[ | |
Optional[float], | |
Doc( | |
""" | |
Greater than or equal. If set, value must be greater than or equal to | |
this. Only applicable to numbers. | |
""" | |
), | |
] = None, | |
lt: Annotated[ | |
Optional[float], | |
Doc( | |
""" | |
Less than. If set, value must be less than this. Only applicable to numbers. | |
""" | |
), | |
] = None, | |
le: Annotated[ | |
Optional[float], | |
Doc( | |
""" | |
Less than or equal. If set, value must be less than or equal to this. | |
Only applicable to numbers. | |
""" | |
), | |
] = None, | |
min_length: Annotated[ | |
Optional[int], | |
Doc( | |
""" | |
Minimum length for strings. | |
""" | |
), | |
] = None, | |
max_length: Annotated[ | |
Optional[int], | |
Doc( | |
""" | |
Maximum length for strings. | |
""" | |
), | |
] = None, | |
pattern: Annotated[ | |
Optional[str], | |
Doc( | |
""" | |
RegEx pattern for strings. | |
""" | |
), | |
] = None, | |
regex: Annotated[ | |
Optional[str], | |
Doc( | |
""" | |
RegEx pattern for strings. | |
""" | |
), | |
deprecated( | |
"Deprecated in FastAPI 0.100.0 and Pydantic v2, use `pattern` instead." | |
), | |
] = None, | |
discriminator: Annotated[ | |
Union[str, None], | |
Doc( | |
""" | |
Parameter field name for discriminating the type in a tagged union. | |
""" | |
), | |
] = None, | |
strict: Annotated[ | |
Union[bool, None], | |
Doc( | |
""" | |
If `True`, strict validation is applied to the field. | |
""" | |
), | |
] = _Unset, | |
multiple_of: Annotated[ | |
Union[float, None], | |
Doc( | |
""" | |
Value must be a multiple of this. Only applicable to numbers. | |
""" | |
), | |
] = _Unset, | |
allow_inf_nan: Annotated[ | |
Union[bool, None], | |
Doc( | |
""" | |
Allow `inf`, `-inf`, `nan`. Only applicable to numbers. | |
""" | |
), | |
] = _Unset, | |
max_digits: Annotated[ | |
Union[int, None], | |
Doc( | |
""" | |
Maximum number of allow digits for strings. | |
""" | |
), | |
] = _Unset, | |
decimal_places: Annotated[ | |
Union[int, None], | |
Doc( | |
""" | |
Maximum number of decimal places allowed for numbers. | |
""" | |
), | |
] = _Unset, | |
examples: Annotated[ | |
Optional[List[Any]], | |
Doc( | |
""" | |
Example values for this field. | |
""" | |
), | |
] = None, | |
example: Annotated[ | |
Optional[Any], | |
deprecated( | |
"Deprecated in OpenAPI 3.1.0 that now uses JSON Schema 2020-12, " | |
"although still supported. Use examples instead." | |
), | |
] = _Unset, | |
openapi_examples: Annotated[ | |
Optional[Dict[str, Example]], | |
Doc( | |
""" | |
OpenAPI-specific examples. | |
It will be added to the generated OpenAPI (e.g. visible at `/docs`). | |
Swagger UI (that provides the `/docs` interface) has better support for the | |
OpenAPI-specific examples than the JSON Schema `examples`, that's the main | |
use case for this. | |
Read more about it in the | |
[FastAPI docs for Declare Request Example Data](https://fastapi.tiangolo.com/tutorial/schema-extra-example/#using-the-openapi_examples-parameter). | |
""" | |
), | |
] = None, | |
deprecated: Annotated[ | |
Union[deprecated, str, bool, None], | |
Doc( | |
""" | |
Mark this parameter field as deprecated. | |
It will affect the generated OpenAPI (e.g. visible at `/docs`). | |
""" | |
), | |
] = None, | |
include_in_schema: Annotated[ | |
bool, | |
Doc( | |
""" | |
To include (or not) this parameter field in the generated OpenAPI. | |
You probably don't need it, but it's available. | |
This affects the generated OpenAPI (e.g. visible at `/docs`). | |
""" | |
), | |
] = True, | |
json_schema_extra: Annotated[ | |
Union[Dict[str, Any], None], | |
Doc( | |
""" | |
Any additional JSON schema data. | |
""" | |
), | |
] = None, | |
**extra: Annotated[ | |
Any, | |
Doc( | |
""" | |
Include extra fields used by the JSON Schema. | |
""" | |
), | |
deprecated( | |
""" | |
The `extra` kwargs is deprecated. Use `json_schema_extra` instead. | |
""" | |
), | |
], | |
) -> Any: | |
return params.File( | |
default=default, | |
default_factory=default_factory, | |
media_type=media_type, | |
alias=alias, | |
alias_priority=alias_priority, | |
validation_alias=validation_alias, | |
serialization_alias=serialization_alias, | |
title=title, | |
description=description, | |
gt=gt, | |
ge=ge, | |
lt=lt, | |
le=le, | |
min_length=min_length, | |
max_length=max_length, | |
pattern=pattern, | |
regex=regex, | |
discriminator=discriminator, | |
strict=strict, | |
multiple_of=multiple_of, | |
allow_inf_nan=allow_inf_nan, | |
max_digits=max_digits, | |
decimal_places=decimal_places, | |
example=example, | |
examples=examples, | |
openapi_examples=openapi_examples, | |
deprecated=deprecated, | |
include_in_schema=include_in_schema, | |
json_schema_extra=json_schema_extra, | |
**extra, | |
) | |
def Depends( # noqa: N802 | |
dependency: Annotated[ | |
Optional[Callable[..., Any]], | |
Doc( | |
""" | |
A "dependable" callable (like a function). | |
Don't call it directly, FastAPI will call it for you, just pass the object | |
directly. | |
""" | |
), | |
] = None, | |
*, | |
use_cache: Annotated[ | |
bool, | |
Doc( | |
""" | |
By default, after a dependency is called the first time in a request, if | |
the dependency is declared again for the rest of the request (for example | |
if the dependency is needed by several dependencies), the value will be | |
re-used for the rest of the request. | |
Set `use_cache` to `False` to disable this behavior and ensure the | |
dependency is called again (if declared more than once) in the same request. | |
""" | |
), | |
] = True, | |
) -> Any: | |
""" | |
Declare a FastAPI dependency. | |
It takes a single "dependable" callable (like a function). | |
Don't call it directly, FastAPI will call it for you. | |
Read more about it in the | |
[FastAPI docs for Dependencies](https://fastapi.tiangolo.com/tutorial/dependencies/). | |
**Example** | |
```python | |
from typing import Annotated | |
from fastapi import Depends, FastAPI | |
app = FastAPI() | |
async def common_parameters(q: str | None = None, skip: int = 0, limit: int = 100): | |
return {"q": q, "skip": skip, "limit": limit} | |
@app.get("/items/") | |
async def read_items(commons: Annotated[dict, Depends(common_parameters)]): | |
return commons | |
``` | |
""" | |
return params.Depends(dependency=dependency, use_cache=use_cache) | |
def Security( # noqa: N802 | |
dependency: Annotated[ | |
Optional[Callable[..., Any]], | |
Doc( | |
""" | |
A "dependable" callable (like a function). | |
Don't call it directly, FastAPI will call it for you, just pass the object | |
directly. | |
""" | |
), | |
] = None, | |
*, | |
scopes: Annotated[ | |
Optional[Sequence[str]], | |
Doc( | |
""" | |
OAuth2 scopes required for the *path operation* that uses this Security | |
dependency. | |
The term "scope" comes from the OAuth2 specification, it seems to be | |
intentionaly vague and interpretable. It normally refers to permissions, | |
in cases to roles. | |
These scopes are integrated with OpenAPI (and the API docs at `/docs`). | |
So they are visible in the OpenAPI specification. | |
) | |
""" | |
), | |
] = None, | |
use_cache: Annotated[ | |
bool, | |
Doc( | |
""" | |
By default, after a dependency is called the first time in a request, if | |
the dependency is declared again for the rest of the request (for example | |
if the dependency is needed by several dependencies), the value will be | |
re-used for the rest of the request. | |
Set `use_cache` to `False` to disable this behavior and ensure the | |
dependency is called again (if declared more than once) in the same request. | |
""" | |
), | |
] = True, | |
) -> Any: | |
""" | |
Declare a FastAPI Security dependency. | |
The only difference with a regular dependency is that it can declare OAuth2 | |
scopes that will be integrated with OpenAPI and the automatic UI docs (by default | |
at `/docs`). | |
It takes a single "dependable" callable (like a function). | |
Don't call it directly, FastAPI will call it for you. | |
Read more about it in the | |
[FastAPI docs for Security](https://fastapi.tiangolo.com/tutorial/security/) and | |
in the | |
[FastAPI docs for OAuth2 scopes](https://fastapi.tiangolo.com/advanced/security/oauth2-scopes/). | |
**Example** | |
```python | |
from typing import Annotated | |
from fastapi import Depends, FastAPI | |
from .db import User | |
from .security import get_current_active_user | |
app = FastAPI() | |
@app.get("/users/me/items/") | |
async def read_own_items( | |
current_user: Annotated[User, Security(get_current_active_user, scopes=["items"])] | |
): | |
return [{"item_id": "Foo", "owner": current_user.username}] | |
``` | |
""" | |
return params.Security(dependency=dependency, scopes=scopes, use_cache=use_cache) | |