+import warnings
from collections import deque
from copy import copy
from dataclasses import dataclass, is_dataclass
return self.field_info.annotation
def __post_init__(self) -> None:
- self._type_adapter: TypeAdapter[Any] = TypeAdapter(
- Annotated[self.field_info.annotation, self.field_info]
- )
+ with warnings.catch_warnings():
+ # Pydantic >= 2.12.0 warns about field specific metadata that is unused
+ # (e.g. `TypeAdapter(Annotated[int, Field(alias='b')])`). In some cases, we
+ # end up building the type adapter from a model field annotation so we
+ # need to ignore the warning:
+ if PYDANTIC_VERSION_MINOR_TUPLE >= (2, 12):
+ from pydantic.warnings import UnsupportedFieldAttributeWarning
+
+ warnings.simplefilter(
+ "ignore", category=UnsupportedFieldAttributeWarning
+ )
+ self._type_adapter: TypeAdapter[Any] = TypeAdapter(
+ Annotated[self.field_info.annotation, self.field_info]
+ )
def get_default(self) -> Any:
if self.field_info.is_required():
cookie = "cookie"
-class Param(FieldInfo):
+class Param(FieldInfo): # type: ignore[misc]
in_: ParamTypes
def __init__(
return f"{self.__class__.__name__}({self.default})"
-class Path(Param):
+class Path(Param): # type: ignore[misc]
in_ = ParamTypes.path
def __init__(
)
-class Query(Param):
+class Query(Param): # type: ignore[misc]
in_ = ParamTypes.query
def __init__(
)
-class Header(Param):
+class Header(Param): # type: ignore[misc]
in_ = ParamTypes.header
def __init__(
)
-class Cookie(Param):
+class Cookie(Param): # type: ignore[misc]
in_ = ParamTypes.cookie
def __init__(
)
-class Body(FieldInfo):
+class Body(FieldInfo): # type: ignore[misc]
def __init__(
self,
default: Any = Undefined,
return f"{self.__class__.__name__}({self.default})"
-class Form(Body):
+class Form(Body): # type: ignore[misc]
def __init__(
self,
default: Any = Undefined,
)
-class File(Form):
+class File(Form): # type: ignore[misc]
def __init__(
self,
default: Any = Undefined,