pythonasyncioapiasyncfastapiframeworkjsonjson-schemaopenapiopenapi3pydanticpython-typespython3redocreststarletteswaggerswagger-uiuvicornweb
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.2 KiB
53 lines
1.2 KiB
from typing import (
|
|
Any,
|
|
Dict,
|
|
List,
|
|
Tuple,
|
|
Union,
|
|
)
|
|
|
|
from fastapi.types import IncEx
|
|
from pydantic.fields import FieldInfo
|
|
from typing_extensions import Literal, Protocol
|
|
|
|
|
|
class ModelField(Protocol):
|
|
field_info: "FieldInfo"
|
|
name: str
|
|
mode: Literal["validation", "serialization"] = "validation"
|
|
_version: Literal["v1", "v2"] = "v1"
|
|
|
|
@property
|
|
def alias(self) -> str: ...
|
|
|
|
@property
|
|
def required(self) -> bool: ...
|
|
|
|
@property
|
|
def default(self) -> Any: ...
|
|
|
|
@property
|
|
def type_(self) -> Any: ...
|
|
|
|
def get_default(self) -> Any: ...
|
|
|
|
def validate(
|
|
self,
|
|
value: Any,
|
|
values: Dict[str, Any] = {}, # noqa: B006
|
|
*,
|
|
loc: Tuple[Union[int, str], ...] = (),
|
|
) -> Tuple[Any, Union[List[Dict[str, Any]], None]]: ...
|
|
|
|
def serialize(
|
|
self,
|
|
value: Any,
|
|
*,
|
|
mode: Literal["json", "python"] = "json",
|
|
include: Union[IncEx, None] = None,
|
|
exclude: Union[IncEx, None] = None,
|
|
by_alias: bool = True,
|
|
exclude_unset: bool = False,
|
|
exclude_defaults: bool = False,
|
|
exclude_none: bool = False,
|
|
) -> Any: ...
|
|
|