Browse Source

new changes 2

pull/14060/head
SaisakthiM 11 months ago
parent
commit
b56f571308
  1. 7
      fastapi/encoders.py

7
fastapi/encoders.py

@ -19,9 +19,9 @@ from uuid import UUID
from fastapi.types import IncEx from fastapi.types import IncEx
from pydantic import BaseModel from pydantic import BaseModel
from pydantic_extra_types.color import Color
from pydantic.networks import AnyUrl, NameEmail from pydantic.networks import AnyUrl, NameEmail
from pydantic.types import SecretBytes, SecretStr from pydantic.types import SecretBytes, SecretStr
from pydantic_extra_types.color import Color # ✅ updated import
from typing_extensions import Annotated, Doc from typing_extensions import Annotated, Doc
from ._compat import PYDANTIC_V2, UndefinedType, Url, _model_dump from ._compat import PYDANTIC_V2, UndefinedType, Url, _model_dump
@ -219,7 +219,7 @@ def jsonable_encoder(
if not PYDANTIC_V2: if not PYDANTIC_V2:
encoders = getattr(obj.__config__, "json_encoders", {}) # type: ignore[attr-defined] encoders = getattr(obj.__config__, "json_encoders", {}) # type: ignore[attr-defined]
if custom_encoder: if custom_encoder:
encoders.update(custom_encoder) encoders = {**encoders, **custom_encoder}
obj_dict = _model_dump( obj_dict = _model_dump(
obj, obj,
mode="json", mode="json",
@ -241,6 +241,7 @@ def jsonable_encoder(
sqlalchemy_safe=sqlalchemy_safe, sqlalchemy_safe=sqlalchemy_safe,
) )
if dataclasses.is_dataclass(obj): if dataclasses.is_dataclass(obj):
assert not isinstance(obj, type)
obj_dict = dataclasses.asdict(obj) obj_dict = dataclasses.asdict(obj)
return jsonable_encoder( return jsonable_encoder(
obj_dict, obj_dict,
@ -340,4 +341,4 @@ def jsonable_encoder(
exclude_none=exclude_none, exclude_none=exclude_none,
custom_encoder=custom_encoder, custom_encoder=custom_encoder,
sqlalchemy_safe=sqlalchemy_safe, sqlalchemy_safe=sqlalchemy_safe,
) )
Loading…
Cancel
Save