| import warnings
|
| from collections.abc import Sequence
|
| from dataclasses import dataclass
|
| from enum import Enum
|
| from typing import Annotated, Any, Callable, Optional, Union
|
|
|
| from fastapi.exceptions import FastAPIDeprecationWarning
|
| from fastapi.openapi.models import Example
|
| from pydantic import AliasChoices, AliasPath
|
| from pydantic.fields import FieldInfo
|
| from typing_extensions import Literal, deprecated
|
|
|
| from ._compat import (
|
| Undefined,
|
| )
|
|
|
| _Unset: Any = Undefined
|
|
|
|
|
| class ParamTypes(Enum):
|
| query = "query"
|
| header = "header"
|
| path = "path"
|
| cookie = "cookie"
|
|
|
|
|
| class Param(FieldInfo):
|
| in_: ParamTypes
|
|
|
| def __init__(
|
| self,
|
| default: Any = Undefined,
|
| *,
|
| default_factory: Union[Callable[[], Any], None] = _Unset,
|
| annotation: Optional[Any] = None,
|
| alias: Optional[str] = None,
|
| alias_priority: Union[int, None] = _Unset,
|
| validation_alias: Union[str, AliasPath, AliasChoices, None] = None,
|
| serialization_alias: Union[str, None] = None,
|
| title: Optional[str] = None,
|
| description: Optional[str] = None,
|
| gt: Optional[float] = None,
|
| ge: Optional[float] = None,
|
| lt: Optional[float] = None,
|
| le: Optional[float] = None,
|
| min_length: Optional[int] = None,
|
| max_length: Optional[int] = None,
|
| pattern: Optional[str] = None,
|
| regex: Annotated[
|
| Optional[str],
|
| deprecated(
|
| "Deprecated in FastAPI 0.100.0 and Pydantic v2, use `pattern` instead."
|
| ),
|
| ] = None,
|
| discriminator: Union[str, None] = None,
|
| strict: Union[bool, None] = _Unset,
|
| multiple_of: Union[float, None] = _Unset,
|
| allow_inf_nan: Union[bool, None] = _Unset,
|
| max_digits: Union[int, None] = _Unset,
|
| decimal_places: Union[int, None] = _Unset,
|
| examples: Optional[list[Any]] = 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: Optional[dict[str, Example]] = None,
|
| deprecated: Union[deprecated, str, bool, None] = None,
|
| include_in_schema: bool = True,
|
| json_schema_extra: Union[dict[str, Any], None] = None,
|
| **extra: Any,
|
| ):
|
| if example is not _Unset:
|
| warnings.warn(
|
| "`example` has been deprecated, please use `examples` instead",
|
| category=FastAPIDeprecationWarning,
|
| stacklevel=4,
|
| )
|
| self.example = example
|
| self.include_in_schema = include_in_schema
|
| self.openapi_examples = openapi_examples
|
| kwargs = dict(
|
| default=default,
|
| default_factory=default_factory,
|
| alias=alias,
|
| title=title,
|
| description=description,
|
| gt=gt,
|
| ge=ge,
|
| lt=lt,
|
| le=le,
|
| min_length=min_length,
|
| max_length=max_length,
|
| discriminator=discriminator,
|
| multiple_of=multiple_of,
|
| allow_inf_nan=allow_inf_nan,
|
| max_digits=max_digits,
|
| decimal_places=decimal_places,
|
| **extra,
|
| )
|
| if examples is not None:
|
| kwargs["examples"] = examples
|
| if regex is not None:
|
| warnings.warn(
|
| "`regex` has been deprecated, please use `pattern` instead",
|
| category=FastAPIDeprecationWarning,
|
| stacklevel=4,
|
| )
|
| current_json_schema_extra = json_schema_extra or extra
|
| kwargs["deprecated"] = deprecated
|
|
|
| if serialization_alias in (_Unset, None) and isinstance(alias, str):
|
| serialization_alias = alias
|
| if validation_alias in (_Unset, None):
|
| validation_alias = alias
|
| kwargs.update(
|
| {
|
| "annotation": annotation,
|
| "alias_priority": alias_priority,
|
| "validation_alias": validation_alias,
|
| "serialization_alias": serialization_alias,
|
| "strict": strict,
|
| "json_schema_extra": current_json_schema_extra,
|
| }
|
| )
|
| kwargs["pattern"] = pattern or regex
|
|
|
| use_kwargs = {k: v for k, v in kwargs.items() if v is not _Unset}
|
|
|
| super().__init__(**use_kwargs)
|
|
|
| def __repr__(self) -> str:
|
| return f"{self.__class__.__name__}({self.default})"
|
|
|
|
|
| class Path(Param):
|
| in_ = ParamTypes.path
|
|
|
| def __init__(
|
| self,
|
| default: Any = ...,
|
| *,
|
| default_factory: Union[Callable[[], Any], None] = _Unset,
|
| annotation: Optional[Any] = None,
|
| alias: Optional[str] = None,
|
| alias_priority: Union[int, None] = _Unset,
|
| validation_alias: Union[str, AliasPath, AliasChoices, None] = None,
|
| serialization_alias: Union[str, None] = None,
|
| title: Optional[str] = None,
|
| description: Optional[str] = None,
|
| gt: Optional[float] = None,
|
| ge: Optional[float] = None,
|
| lt: Optional[float] = None,
|
| le: Optional[float] = None,
|
| min_length: Optional[int] = None,
|
| max_length: Optional[int] = None,
|
| pattern: Optional[str] = None,
|
| regex: Annotated[
|
| Optional[str],
|
| deprecated(
|
| "Deprecated in FastAPI 0.100.0 and Pydantic v2, use `pattern` instead."
|
| ),
|
| ] = None,
|
| discriminator: Union[str, None] = None,
|
| strict: Union[bool, None] = _Unset,
|
| multiple_of: Union[float, None] = _Unset,
|
| allow_inf_nan: Union[bool, None] = _Unset,
|
| max_digits: Union[int, None] = _Unset,
|
| decimal_places: Union[int, None] = _Unset,
|
| examples: Optional[list[Any]] = 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: Optional[dict[str, Example]] = None,
|
| deprecated: Union[deprecated, str, bool, None] = None,
|
| include_in_schema: bool = True,
|
| json_schema_extra: Union[dict[str, Any], None] = None,
|
| **extra: Any,
|
| ):
|
| assert default is ..., "Path parameters cannot have a default value"
|
| self.in_ = self.in_
|
| super().__init__(
|
| default=default,
|
| default_factory=default_factory,
|
| annotation=annotation,
|
| 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,
|
| deprecated=deprecated,
|
| example=example,
|
| examples=examples,
|
| openapi_examples=openapi_examples,
|
| include_in_schema=include_in_schema,
|
| json_schema_extra=json_schema_extra,
|
| **extra,
|
| )
|
|
|
|
|
| class Query(Param):
|
| in_ = ParamTypes.query
|
|
|
| def __init__(
|
| self,
|
| default: Any = Undefined,
|
| *,
|
| default_factory: Union[Callable[[], Any], None] = _Unset,
|
| annotation: Optional[Any] = None,
|
| alias: Optional[str] = None,
|
| alias_priority: Union[int, None] = _Unset,
|
| validation_alias: Union[str, AliasPath, AliasChoices, None] = None,
|
| serialization_alias: Union[str, None] = None,
|
| title: Optional[str] = None,
|
| description: Optional[str] = None,
|
| gt: Optional[float] = None,
|
| ge: Optional[float] = None,
|
| lt: Optional[float] = None,
|
| le: Optional[float] = None,
|
| min_length: Optional[int] = None,
|
| max_length: Optional[int] = None,
|
| pattern: Optional[str] = None,
|
| regex: Annotated[
|
| Optional[str],
|
| deprecated(
|
| "Deprecated in FastAPI 0.100.0 and Pydantic v2, use `pattern` instead."
|
| ),
|
| ] = None,
|
| discriminator: Union[str, None] = None,
|
| strict: Union[bool, None] = _Unset,
|
| multiple_of: Union[float, None] = _Unset,
|
| allow_inf_nan: Union[bool, None] = _Unset,
|
| max_digits: Union[int, None] = _Unset,
|
| decimal_places: Union[int, None] = _Unset,
|
| examples: Optional[list[Any]] = 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: Optional[dict[str, Example]] = None,
|
| deprecated: Union[deprecated, str, bool, None] = None,
|
| include_in_schema: bool = True,
|
| json_schema_extra: Union[dict[str, Any], None] = None,
|
| **extra: Any,
|
| ):
|
| super().__init__(
|
| default=default,
|
| default_factory=default_factory,
|
| annotation=annotation,
|
| 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,
|
| deprecated=deprecated,
|
| example=example,
|
| examples=examples,
|
| openapi_examples=openapi_examples,
|
| include_in_schema=include_in_schema,
|
| json_schema_extra=json_schema_extra,
|
| **extra,
|
| )
|
|
|
|
|
| class Header(Param):
|
| in_ = ParamTypes.header
|
|
|
| def __init__(
|
| self,
|
| default: Any = Undefined,
|
| *,
|
| default_factory: Union[Callable[[], Any], None] = _Unset,
|
| annotation: Optional[Any] = None,
|
| alias: Optional[str] = None,
|
| alias_priority: Union[int, None] = _Unset,
|
| validation_alias: Union[str, AliasPath, AliasChoices, None] = None,
|
| serialization_alias: Union[str, None] = None,
|
| convert_underscores: bool = True,
|
| title: Optional[str] = None,
|
| description: Optional[str] = None,
|
| gt: Optional[float] = None,
|
| ge: Optional[float] = None,
|
| lt: Optional[float] = None,
|
| le: Optional[float] = None,
|
| min_length: Optional[int] = None,
|
| max_length: Optional[int] = None,
|
| pattern: Optional[str] = None,
|
| regex: Annotated[
|
| Optional[str],
|
| deprecated(
|
| "Deprecated in FastAPI 0.100.0 and Pydantic v2, use `pattern` instead."
|
| ),
|
| ] = None,
|
| discriminator: Union[str, None] = None,
|
| strict: Union[bool, None] = _Unset,
|
| multiple_of: Union[float, None] = _Unset,
|
| allow_inf_nan: Union[bool, None] = _Unset,
|
| max_digits: Union[int, None] = _Unset,
|
| decimal_places: Union[int, None] = _Unset,
|
| examples: Optional[list[Any]] = 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: Optional[dict[str, Example]] = None,
|
| deprecated: Union[deprecated, str, bool, None] = None,
|
| include_in_schema: bool = True,
|
| json_schema_extra: Union[dict[str, Any], None] = None,
|
| **extra: Any,
|
| ):
|
| self.convert_underscores = convert_underscores
|
| super().__init__(
|
| default=default,
|
| default_factory=default_factory,
|
| annotation=annotation,
|
| 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,
|
| deprecated=deprecated,
|
| example=example,
|
| examples=examples,
|
| openapi_examples=openapi_examples,
|
| include_in_schema=include_in_schema,
|
| json_schema_extra=json_schema_extra,
|
| **extra,
|
| )
|
|
|
|
|
| class Cookie(Param):
|
| in_ = ParamTypes.cookie
|
|
|
| def __init__(
|
| self,
|
| default: Any = Undefined,
|
| *,
|
| default_factory: Union[Callable[[], Any], None] = _Unset,
|
| annotation: Optional[Any] = None,
|
| alias: Optional[str] = None,
|
| alias_priority: Union[int, None] = _Unset,
|
| validation_alias: Union[str, AliasPath, AliasChoices, None] = None,
|
| serialization_alias: Union[str, None] = None,
|
| title: Optional[str] = None,
|
| description: Optional[str] = None,
|
| gt: Optional[float] = None,
|
| ge: Optional[float] = None,
|
| lt: Optional[float] = None,
|
| le: Optional[float] = None,
|
| min_length: Optional[int] = None,
|
| max_length: Optional[int] = None,
|
| pattern: Optional[str] = None,
|
| regex: Annotated[
|
| Optional[str],
|
| deprecated(
|
| "Deprecated in FastAPI 0.100.0 and Pydantic v2, use `pattern` instead."
|
| ),
|
| ] = None,
|
| discriminator: Union[str, None] = None,
|
| strict: Union[bool, None] = _Unset,
|
| multiple_of: Union[float, None] = _Unset,
|
| allow_inf_nan: Union[bool, None] = _Unset,
|
| max_digits: Union[int, None] = _Unset,
|
| decimal_places: Union[int, None] = _Unset,
|
| examples: Optional[list[Any]] = 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: Optional[dict[str, Example]] = None,
|
| deprecated: Union[deprecated, str, bool, None] = None,
|
| include_in_schema: bool = True,
|
| json_schema_extra: Union[dict[str, Any], None] = None,
|
| **extra: Any,
|
| ):
|
| super().__init__(
|
| default=default,
|
| default_factory=default_factory,
|
| annotation=annotation,
|
| 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,
|
| deprecated=deprecated,
|
| example=example,
|
| examples=examples,
|
| openapi_examples=openapi_examples,
|
| include_in_schema=include_in_schema,
|
| json_schema_extra=json_schema_extra,
|
| **extra,
|
| )
|
|
|
|
|
| class Body(FieldInfo):
|
| def __init__(
|
| self,
|
| default: Any = Undefined,
|
| *,
|
| default_factory: Union[Callable[[], Any], None] = _Unset,
|
| annotation: Optional[Any] = None,
|
| embed: Union[bool, None] = None,
|
| media_type: str = "application/json",
|
| alias: Optional[str] = None,
|
| alias_priority: Union[int, None] = _Unset,
|
| validation_alias: Union[str, AliasPath, AliasChoices, None] = None,
|
| serialization_alias: Union[str, None] = None,
|
| title: Optional[str] = None,
|
| description: Optional[str] = None,
|
| gt: Optional[float] = None,
|
| ge: Optional[float] = None,
|
| lt: Optional[float] = None,
|
| le: Optional[float] = None,
|
| min_length: Optional[int] = None,
|
| max_length: Optional[int] = None,
|
| pattern: Optional[str] = None,
|
| regex: Annotated[
|
| Optional[str],
|
| deprecated(
|
| "Deprecated in FastAPI 0.100.0 and Pydantic v2, use `pattern` instead."
|
| ),
|
| ] = None,
|
| discriminator: Union[str, None] = None,
|
| strict: Union[bool, None] = _Unset,
|
| multiple_of: Union[float, None] = _Unset,
|
| allow_inf_nan: Union[bool, None] = _Unset,
|
| max_digits: Union[int, None] = _Unset,
|
| decimal_places: Union[int, None] = _Unset,
|
| examples: Optional[list[Any]] = 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: Optional[dict[str, Example]] = None,
|
| deprecated: Union[deprecated, str, bool, None] = None,
|
| include_in_schema: bool = True,
|
| json_schema_extra: Union[dict[str, Any], None] = None,
|
| **extra: Any,
|
| ):
|
| self.embed = embed
|
| self.media_type = media_type
|
| if example is not _Unset:
|
| warnings.warn(
|
| "`example` has been deprecated, please use `examples` instead",
|
| category=FastAPIDeprecationWarning,
|
| stacklevel=4,
|
| )
|
| self.example = example
|
| self.include_in_schema = include_in_schema
|
| self.openapi_examples = openapi_examples
|
| kwargs = dict(
|
| default=default,
|
| default_factory=default_factory,
|
| alias=alias,
|
| title=title,
|
| description=description,
|
| gt=gt,
|
| ge=ge,
|
| lt=lt,
|
| le=le,
|
| min_length=min_length,
|
| max_length=max_length,
|
| discriminator=discriminator,
|
| multiple_of=multiple_of,
|
| allow_inf_nan=allow_inf_nan,
|
| max_digits=max_digits,
|
| decimal_places=decimal_places,
|
| **extra,
|
| )
|
| if examples is not None:
|
| kwargs["examples"] = examples
|
| if regex is not None:
|
| warnings.warn(
|
| "`regex` has been deprecated, please use `pattern` instead",
|
| category=FastAPIDeprecationWarning,
|
| stacklevel=4,
|
| )
|
| current_json_schema_extra = json_schema_extra or extra
|
| kwargs["deprecated"] = deprecated
|
| if serialization_alias in (_Unset, None) and isinstance(alias, str):
|
| serialization_alias = alias
|
| if validation_alias in (_Unset, None):
|
| validation_alias = alias
|
| kwargs.update(
|
| {
|
| "annotation": annotation,
|
| "alias_priority": alias_priority,
|
| "validation_alias": validation_alias,
|
| "serialization_alias": serialization_alias,
|
| "strict": strict,
|
| "json_schema_extra": current_json_schema_extra,
|
| }
|
| )
|
| kwargs["pattern"] = pattern or regex
|
|
|
| use_kwargs = {k: v for k, v in kwargs.items() if v is not _Unset}
|
|
|
| super().__init__(**use_kwargs)
|
|
|
| def __repr__(self) -> str:
|
| return f"{self.__class__.__name__}({self.default})"
|
|
|
|
|
| class Form(Body):
|
| def __init__(
|
| self,
|
| default: Any = Undefined,
|
| *,
|
| default_factory: Union[Callable[[], Any], None] = _Unset,
|
| annotation: Optional[Any] = None,
|
| media_type: str = "application/x-www-form-urlencoded",
|
| alias: Optional[str] = None,
|
| alias_priority: Union[int, None] = _Unset,
|
| validation_alias: Union[str, AliasPath, AliasChoices, None] = None,
|
| serialization_alias: Union[str, None] = None,
|
| title: Optional[str] = None,
|
| description: Optional[str] = None,
|
| gt: Optional[float] = None,
|
| ge: Optional[float] = None,
|
| lt: Optional[float] = None,
|
| le: Optional[float] = None,
|
| min_length: Optional[int] = None,
|
| max_length: Optional[int] = None,
|
| pattern: Optional[str] = None,
|
| regex: Annotated[
|
| Optional[str],
|
| deprecated(
|
| "Deprecated in FastAPI 0.100.0 and Pydantic v2, use `pattern` instead."
|
| ),
|
| ] = None,
|
| discriminator: Union[str, None] = None,
|
| strict: Union[bool, None] = _Unset,
|
| multiple_of: Union[float, None] = _Unset,
|
| allow_inf_nan: Union[bool, None] = _Unset,
|
| max_digits: Union[int, None] = _Unset,
|
| decimal_places: Union[int, None] = _Unset,
|
| examples: Optional[list[Any]] = 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: Optional[dict[str, Example]] = None,
|
| deprecated: Union[deprecated, str, bool, None] = None,
|
| include_in_schema: bool = True,
|
| json_schema_extra: Union[dict[str, Any], None] = None,
|
| **extra: Any,
|
| ):
|
| super().__init__(
|
| default=default,
|
| default_factory=default_factory,
|
| annotation=annotation,
|
| 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,
|
| deprecated=deprecated,
|
| example=example,
|
| examples=examples,
|
| openapi_examples=openapi_examples,
|
| include_in_schema=include_in_schema,
|
| json_schema_extra=json_schema_extra,
|
| **extra,
|
| )
|
|
|
|
|
| class File(Form):
|
| def __init__(
|
| self,
|
| default: Any = Undefined,
|
| *,
|
| default_factory: Union[Callable[[], Any], None] = _Unset,
|
| annotation: Optional[Any] = None,
|
| media_type: str = "multipart/form-data",
|
| alias: Optional[str] = None,
|
| alias_priority: Union[int, None] = _Unset,
|
| validation_alias: Union[str, AliasPath, AliasChoices, None] = None,
|
| serialization_alias: Union[str, None] = None,
|
| title: Optional[str] = None,
|
| description: Optional[str] = None,
|
| gt: Optional[float] = None,
|
| ge: Optional[float] = None,
|
| lt: Optional[float] = None,
|
| le: Optional[float] = None,
|
| min_length: Optional[int] = None,
|
| max_length: Optional[int] = None,
|
| pattern: Optional[str] = None,
|
| regex: Annotated[
|
| Optional[str],
|
| deprecated(
|
| "Deprecated in FastAPI 0.100.0 and Pydantic v2, use `pattern` instead."
|
| ),
|
| ] = None,
|
| discriminator: Union[str, None] = None,
|
| strict: Union[bool, None] = _Unset,
|
| multiple_of: Union[float, None] = _Unset,
|
| allow_inf_nan: Union[bool, None] = _Unset,
|
| max_digits: Union[int, None] = _Unset,
|
| decimal_places: Union[int, None] = _Unset,
|
| examples: Optional[list[Any]] = 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: Optional[dict[str, Example]] = None,
|
| deprecated: Union[deprecated, str, bool, None] = None,
|
| include_in_schema: bool = True,
|
| json_schema_extra: Union[dict[str, Any], None] = None,
|
| **extra: Any,
|
| ):
|
| super().__init__(
|
| default=default,
|
| default_factory=default_factory,
|
| annotation=annotation,
|
| 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,
|
| deprecated=deprecated,
|
| example=example,
|
| examples=examples,
|
| openapi_examples=openapi_examples,
|
| include_in_schema=include_in_schema,
|
| json_schema_extra=json_schema_extra,
|
| **extra,
|
| )
|
|
|
|
|
| @dataclass(frozen=True)
|
| class Depends:
|
| dependency: Optional[Callable[..., Any]] = None
|
| use_cache: bool = True
|
| scope: Union[Literal["function", "request"], None] = None
|
|
|
|
|
| @dataclass(frozen=True)
|
| class Security(Depends):
|
| scopes: Optional[Sequence[str]] = None
|
|
|