Browse Source

🔨 marked encoders functions private

pull/13982/head
Ben Brady 9 months ago
parent
commit
faba06d882
  1. 26
      fastapi/encoders.py

26
fastapi/encoders.py

@ -191,7 +191,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) exclude = set(exclude)
return encode_value( return _encode_value(
obj, obj,
include=include, include=include,
exclude=exclude, exclude=exclude,
@ -204,7 +204,7 @@ def jsonable_encoder(
) )
def encode_value( def _encode_value(
obj: Any, obj: Any,
include: Optional[IncEx] = None, include: Optional[IncEx] = None,
exclude: Optional[IncEx] = None, exclude: Optional[IncEx] = None,
@ -216,7 +216,7 @@ def encode_value(
sqlalchemy_safe: bool = True, sqlalchemy_safe: bool = True,
) -> Any: ) -> Any:
if custom_encoder: if custom_encoder:
encoder = find_encoder(obj, custom_encoder) encoder = _find_encoder(obj, custom_encoder)
if encoder: if encoder:
return encoder(obj) return encoder(obj)
@ -226,7 +226,7 @@ def encode_value(
if isinstance(obj, (list, set, frozenset, GeneratorType, tuple, deque)): if isinstance(obj, (list, set, frozenset, GeneratorType, tuple, deque)):
encoded_list = [] encoded_list = []
for item in obj: for item in obj:
value = encode_value( value = _encode_value(
item, item,
include=include, include=include,
exclude=exclude, exclude=exclude,
@ -242,7 +242,7 @@ def encode_value(
return encoded_list return encoded_list
if isinstance(obj, dict): if isinstance(obj, dict):
return encode_dict( return _encode_dict(
obj, obj,
include=include, include=include,
exclude=exclude, exclude=exclude,
@ -276,7 +276,7 @@ def encode_value(
if "__root__" in obj_dict: if "__root__" in obj_dict:
obj_dict = obj_dict["__root__"] obj_dict = obj_dict["__root__"]
return encode_value( return _encode_value(
obj_dict, obj_dict,
exclude_none=exclude_none, exclude_none=exclude_none,
exclude_defaults=exclude_defaults, exclude_defaults=exclude_defaults,
@ -288,7 +288,7 @@ def encode_value(
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)
return encode_dict( return _encode_dict(
obj_dict, obj_dict,
include=include, include=include,
exclude=exclude, exclude=exclude,
@ -300,7 +300,7 @@ def encode_value(
sqlalchemy_safe=sqlalchemy_safe, sqlalchemy_safe=sqlalchemy_safe,
) )
encoder = find_encoder(obj, ENCODERS_BY_TYPE) encoder = _find_encoder(obj, ENCODERS_BY_TYPE)
if encoder: if encoder:
return encoder(obj) return encoder(obj)
@ -314,7 +314,7 @@ def encode_value(
errors.append(e) errors.append(e)
raise ValueError(errors) from e raise ValueError(errors) from e
return encode_dict( return _encode_dict(
obj_dict, obj_dict,
include=include, include=include,
exclude=exclude, exclude=exclude,
@ -327,7 +327,7 @@ def encode_value(
) )
def encode_dict( def _encode_dict(
obj: Dict[Any, Any], obj: Dict[Any, Any],
include: Optional[IncEx] = None, include: Optional[IncEx] = None,
exclude: Optional[IncEx] = None, exclude: Optional[IncEx] = None,
@ -357,7 +357,7 @@ def encode_dict(
# TODO: use exclude_defaults when encoding keys and values # TODO: use exclude_defaults when encoding keys and values
# This is a bug from the original implementation, but is a breaking change # This is a bug from the original implementation, but is a breaking change
encoded_key = encode_value( encoded_key = _encode_value(
key, key,
by_alias=by_alias, by_alias=by_alias,
exclude_unset=exclude_unset, exclude_unset=exclude_unset,
@ -365,7 +365,7 @@ def encode_dict(
custom_encoder=custom_encoder, custom_encoder=custom_encoder,
sqlalchemy_safe=sqlalchemy_safe, sqlalchemy_safe=sqlalchemy_safe,
) )
encoded_value = encode_value( encoded_value = _encode_value(
value, value,
by_alias=by_alias, by_alias=by_alias,
exclude_unset=exclude_unset, exclude_unset=exclude_unset,
@ -379,7 +379,7 @@ def encode_dict(
return encoded_dict return encoded_dict
def find_encoder( def _find_encoder(
value: Any, encoders: Dict[Any, Callable[[Any], Any]] value: Any, encoders: Dict[Any, Callable[[Any], Any]]
) -> Optional[Callable[[Any], Any]]: ) -> Optional[Callable[[Any], Any]]:
# fastpath for exact class match # fastpath for exact class match

Loading…
Cancel
Save