X7ROOT File Manager
Current Path:
/opt/alt/python37/lib/python3.7/site-packages/jsons/serializers
opt
/
alt
/
python37
/
lib
/
python3.7
/
site-packages
/
jsons
/
serializers
/
📁
..
📄
__init__.py
(189 B)
📁
__pycache__
📄
default_complex.py
(244 B)
📄
default_date.py
(593 B)
📄
default_datetime.py
(909 B)
📄
default_decimal.py
(294 B)
📄
default_dict.py
(3.22 KB)
📄
default_enum.py
(612 B)
📄
default_iterable.py
(2.82 KB)
📄
default_list.py
(1.53 KB)
📄
default_object.py
(13.03 KB)
📄
default_path.py
(540 B)
📄
default_primitive.py
(1.06 KB)
📄
default_time.py
(487 B)
📄
default_timedelta.py
(379 B)
📄
default_timezone.py
(524 B)
📄
default_tuple.py
(1.48 KB)
📄
default_union.py
(1.45 KB)
📄
default_uuid.py
(393 B)
📄
default_zone_info.py
(365 B)
Editing: default_union.py
from typing import Union from jsons._common_impl import get_class_name, NoneType from jsons._compatibility_impl import get_union_params from jsons._dump_impl import dump from jsons.exceptions import JsonsError, SerializationError def default_union_serializer(obj: object, cls: Union, **kwargs) -> object: """ Serialize an object to any matching type of the given union. The first successful serialization is returned. :param obj: The object that is to be serialized. :param cls: The Union type with a generic (e.g. Union[str, int]). :param kwargs: Any keyword arguments that are passed through the serialization process. :return: An object of the first type of the Union that could be serialized successfully. """ sub_types = get_union_params(cls) # Cater for Optional[...]/Union[None, ...] first to avoid blindly # string-ifying None in later serializers. if obj is None and NoneType in sub_types: return obj for sub_type in sub_types: try: return dump(obj, sub_type, **kwargs) except JsonsError: pass # Try the next one. else: args_msg = ', '.join([get_class_name(cls_) for cls_ in get_union_params(cls)]) err_msg = ('Could not match the object of type "{}" to any type of ' 'the Union: {}'.format(type(obj), args_msg)) raise SerializationError(err_msg)
Upload File
Create Folder