|
|
@ -241,6 +241,7 @@ def jsonable_encoder( |
|
|
if exclude is not None and not isinstance(exclude, (set, dict)): |
|
|
if exclude is not None and not isinstance(exclude, (set, dict)): |
|
|
exclude = set(exclude) # type: ignore[assignment] # ty: ignore[invalid-assignment] |
|
|
exclude = set(exclude) # type: ignore[assignment] # ty: ignore[invalid-assignment] |
|
|
if isinstance(obj, BaseModel): |
|
|
if isinstance(obj, BaseModel): |
|
|
|
|
|
if custom_encoder: |
|
|
|
|
|
|
|
|
def custom_encoder_fallback(value: Any) -> Any: |
|
|
def custom_encoder_fallback(value: Any) -> Any: |
|
|
if type(value) in custom_encoder: |
|
|
if type(value) in custom_encoder: |
|
|
@ -272,7 +273,7 @@ def jsonable_encoder( |
|
|
exclude_unset=exclude_unset, |
|
|
exclude_unset=exclude_unset, |
|
|
exclude_none=exclude_none, |
|
|
exclude_none=exclude_none, |
|
|
exclude_defaults=exclude_defaults, |
|
|
exclude_defaults=exclude_defaults, |
|
|
fallback=custom_encoder_fallback if custom_encoder else None, |
|
|
fallback=custom_encoder_fallback, |
|
|
) |
|
|
) |
|
|
return jsonable_encoder( |
|
|
return jsonable_encoder( |
|
|
obj_dict, |
|
|
obj_dict, |
|
|
@ -283,6 +284,21 @@ def jsonable_encoder( |
|
|
custom_encoder=custom_encoder, |
|
|
custom_encoder=custom_encoder, |
|
|
sqlalchemy_safe=sqlalchemy_safe, |
|
|
sqlalchemy_safe=sqlalchemy_safe, |
|
|
) |
|
|
) |
|
|
|
|
|
obj_dict = obj.model_dump( |
|
|
|
|
|
mode="json", |
|
|
|
|
|
include=include, |
|
|
|
|
|
exclude=exclude, |
|
|
|
|
|
by_alias=by_alias, |
|
|
|
|
|
exclude_unset=exclude_unset, |
|
|
|
|
|
exclude_none=exclude_none, |
|
|
|
|
|
exclude_defaults=exclude_defaults, |
|
|
|
|
|
) |
|
|
|
|
|
return jsonable_encoder( |
|
|
|
|
|
obj_dict, |
|
|
|
|
|
exclude_none=exclude_none, |
|
|
|
|
|
exclude_defaults=exclude_defaults, |
|
|
|
|
|
sqlalchemy_safe=sqlalchemy_safe, |
|
|
|
|
|
) |
|
|
if dataclasses.is_dataclass(obj): |
|
|
if dataclasses.is_dataclass(obj): |
|
|
assert not isinstance(obj, type) |
|
|
assert not isinstance(obj, type) |
|
|
obj_dict = dataclasses.asdict(obj) |
|
|
obj_dict = dataclasses.asdict(obj) |
|
|
|