1515
1616import pendulum
1717from fastapi .encoders import jsonable_encoder
18- from pydantic import BaseConfig , ValidationError , fields
1918from starlette .responses import JSONResponse
2019from starlette .templating import (
2120 _TemplateResponse as TemplateResponse , # pyright: ignore[reportPrivateUsage]
2221)
22+ class ModelField :
23+ pass
2324
2425_T = TypeVar ("_T" , bound = type )
2526
@@ -69,7 +70,7 @@ def decode(cls, value: bytes) -> Any:
6970 # decode_as_type method and then stores a different kind of field for a
7071 # given type, do make sure that the subclass provides its own class
7172 # attribute for this cache.
72- _type_field_cache : ClassVar [Dict [Any , fields . ModelField ]] = {}
73+ _type_field_cache : ClassVar [Dict [Any , ModelField ]] = {}
7374
7475 @overload
7576 @classmethod
@@ -89,18 +90,6 @@ def decode_as_type(cls, value: bytes, *, type_: Optional[_T]) -> Union[_T, Any]:
8990
9091 """
9192 result = cls .decode (value )
92- if type_ is not None :
93- try :
94- field = cls ._type_field_cache [type_ ]
95- except KeyError :
96- field = cls ._type_field_cache [type_ ] = fields .ModelField (
97- name = "body" , type_ = type_ , class_validators = None , model_config = BaseConfig
98- )
99- result , errors = field .validate (result , {}, loc = ())
100- if errors is not None :
101- if not isinstance (errors , list ):
102- errors = [errors ]
103- raise ValidationError (errors , type_ )
10493 return result
10594
10695
0 commit comments