OXIESEC PANEL
- Current Dir:
/
/
opt
/
alt
/
python311
/
lib
/
python3.11
/
site-packages
/
jsons
Server IP: 2a02:4780:11:1084:0:327f:3464:10
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
09/05/2025 09:34:01 AM
rwxr-xr-x
📄
__init__.py
11.57 KB
05/08/2024 06:42:59 PM
rw-r--r--
📁
__pycache__
-
05/08/2024 06:42:59 PM
rwxr-xr-x
📄
_cache.py
1.23 KB
05/08/2024 06:42:59 PM
rw-r--r--
📄
_common_impl.py
5.89 KB
05/08/2024 06:42:59 PM
rw-r--r--
📄
_compatibility_impl.py
3.06 KB
05/08/2024 06:42:59 PM
rw-r--r--
📄
_datetime_impl.py
4.98 KB
05/08/2024 06:42:59 PM
rw-r--r--
📄
_dump_impl.py
4.01 KB
05/08/2024 06:42:59 PM
rw-r--r--
📄
_extra_impl.py
1.7 KB
05/08/2024 06:42:59 PM
rw-r--r--
📄
_fork_impl.py
1.39 KB
05/08/2024 06:42:59 PM
rw-r--r--
📄
_key_transformers.py
1.32 KB
05/08/2024 06:42:59 PM
rw-r--r--
📄
_lizers_impl.py
5.73 KB
05/08/2024 06:42:59 PM
rw-r--r--
📄
_load_impl.py
8.16 KB
05/08/2024 06:42:59 PM
rw-r--r--
📄
_multitasking.py
2.34 KB
05/08/2024 06:42:59 PM
rw-r--r--
📄
_package_info.py
376 bytes
05/08/2024 06:42:59 PM
rw-r--r--
📄
_transform_impl.py
1.48 KB
05/08/2024 06:42:59 PM
rw-r--r--
📄
_validation.py
2.64 KB
05/08/2024 06:42:59 PM
rw-r--r--
📁
classes
-
05/08/2024 06:42:59 PM
rwxr-xr-x
📄
decorators.py
6.62 KB
05/08/2024 06:42:59 PM
rw-r--r--
📁
deserializers
-
05/08/2024 06:42:59 PM
rwxr-xr-x
📄
exceptions.py
6.02 KB
05/08/2024 06:42:59 PM
rw-r--r--
📁
serializers
-
05/08/2024 06:42:59 PM
rwxr-xr-x
Editing: __init__.py
Close
""" Works with Python3.5+ JSON (de)serialization (jsons) from and to dicts and plain old Python objects. Works with dataclasses (Python3.7+). **Example:** >>> from dataclasses import dataclass >>> @dataclass ... class Car: ... color: str >>> @dataclass ... class Person: ... car: Car ... name: str >>> c = Car('Red') >>> p = Person(c, 'John') >>> dumped = dump(p) >>> dumped['name'] 'John' >>> dumped['car']['color'] 'Red' >>> p_reloaded = load(dumped, Person) >>> p_reloaded.name 'John' >>> p_reloaded.car.color 'Red' Deserialization will work with older Python classes (Python3.5+) given that type hints are present for custom types (i.e. any type that is not set at the bottom of this module). Serialization will work with no type hints at all. **Example** >>> class Car: ... def __init__(self, color): ... self.color = color >>> class Person: ... def __init__(self, car: Car, name): ... self.car = car ... self.name = name >>> c = Car('Red') >>> p = Person(c, 'John') >>> dumped = dump(p) >>> dumped['name'] 'John' >>> dumped['car']['color'] 'Red' >>> p_reloaded = load(dumped, Person) >>> p_reloaded.name 'John' >>> p_reloaded.car.color 'Red' Alternatively, you can make use of the `JsonSerializable` class. **Example** >>> class Car(JsonSerializable): ... def __init__(self, color): ... self.color = color >>> class Person(JsonSerializable): ... def __init__(self, car: Car, name): ... self.car = car ... self.name = name >>> c = Car('Red') >>> p = Person(c, 'John') >>> dumped = p.json >>> dumped['name'] 'John' >>> dumped['car']['color'] 'Red' >>> p_reloaded = Person.from_json(dumped) >>> p_reloaded.name 'John' >>> p_reloaded.car.color 'Red' """ from collections.abc import Mapping from datetime import datetime, date, time, timezone, timedelta from decimal import Decimal from enum import Enum, IntEnum from pathlib import PurePath from typing import Union, List, Tuple, Iterable, Optional, DefaultDict, Dict from uuid import UUID from jsons._common_impl import NoneType from jsons._dump_impl import ( dump, dumps, dumpb, ) from jsons._extra_impl import ( announce_class, suppress_warnings, suppress_warning, ) from jsons._fork_impl import fork from jsons._key_transformers import ( camelcase, snakecase, pascalcase, lispcase, ) from jsons._lizers_impl import ( get_serializer, get_deserializer, set_serializer, set_deserializer, ) from jsons._load_impl import ( load, loads, loadb, ) from jsons._package_info import __version__ from jsons._transform_impl import transform from jsons._validation import ( validate, get_validator, set_validator, ) from jsons.classes.json_serializable import JsonSerializable from jsons.classes.verbosity import Verbosity from jsons.deserializers.default_complex import default_complex_deserializer from jsons.deserializers.default_date import default_date_deserializer from jsons.deserializers.default_datetime import default_datetime_deserializer from jsons.deserializers.default_decimal import default_decimal_deserializer from jsons.deserializers.default_defaultdict import default_defaultdict_deserializer from jsons.deserializers.default_dict import default_dict_deserializer from jsons.deserializers.default_enum import default_enum_deserializer from jsons.deserializers.default_iterable import default_iterable_deserializer from jsons.deserializers.default_list import default_list_deserializer from jsons.deserializers.default_mapping import default_mapping_deserializer from jsons.deserializers.default_nonetype import default_nonetype_deserializer from jsons.deserializers.default_object import default_object_deserializer from jsons.deserializers.default_path import default_path_deserializer from jsons.deserializers.default_primitive import default_primitive_deserializer from jsons.deserializers.default_string import default_string_deserializer from jsons.deserializers.default_time import default_time_deserializer from jsons.deserializers.default_timedelta import default_timedelta_deserializer from jsons.deserializers.default_timezone import default_timezone_deserializer from jsons.deserializers.default_tuple import default_tuple_deserializer from jsons.deserializers.default_union import default_union_deserializer from jsons.deserializers.default_uuid import default_uuid_deserializer from jsons.deserializers.default_zone_info import default_zone_info_deserializer from jsons.exceptions import ( JsonsError, ValidationError, SerializationError, DeserializationError, DecodeError, UnfulfilledArgumentError, InvalidDecorationError ) from jsons.serializers.default_complex import default_complex_serializer from jsons.serializers.default_date import default_date_serializer from jsons.serializers.default_datetime import default_datetime_serializer from jsons.serializers.default_decimal import default_decimal_serializer from jsons.serializers.default_dict import default_dict_serializer from jsons.serializers.default_enum import default_enum_serializer from jsons.serializers.default_iterable import default_iterable_serializer from jsons.serializers.default_list import default_list_serializer from jsons.serializers.default_object import default_object_serializer from jsons.serializers.default_path import default_path_serializer from jsons.serializers.default_primitive import default_primitive_serializer from jsons.serializers.default_time import default_time_serializer from jsons.serializers.default_timedelta import default_timedelta_serializer from jsons.serializers.default_timezone import default_timezone_serializer from jsons.serializers.default_tuple import default_tuple_serializer from jsons.serializers.default_union import default_union_serializer from jsons.serializers.default_uuid import default_uuid_serializer from jsons.serializers.default_zone_info import default_zone_info_serializer KEY_TRANSFORMER_SNAKECASE = snakecase KEY_TRANSFORMER_CAMELCASE = camelcase KEY_TRANSFORMER_PASCALCASE = pascalcase KEY_TRANSFORMER_LISPCASE = lispcase __all__ = [ # Functions: '__version__', dump.__name__, dumps.__name__, dumpb.__name__, load.__name__, loads.__name__, loadb.__name__, transform.__name__, fork.__name__, set_serializer.__name__, 'get_serializer', set_deserializer.__name__, 'get_deserializer', 'get_validator', set_validator.__name__, validate.__name__, 'announce_class', suppress_warnings.__name__, suppress_warning.__name__, # Types: JsonSerializable.__name__, Verbosity.__name__, # Key transformers: snakecase.__name__, camelcase.__name__, pascalcase.__name__, lispcase.__name__, 'KEY_TRANSFORMER_SNAKECASE', 'KEY_TRANSFORMER_CAMELCASE', 'KEY_TRANSFORMER_PASCALCASE', 'KEY_TRANSFORMER_LISPCASE', # Errors: JsonsError.__name__, ValidationError.__name__, SerializationError.__name__, DeserializationError.__name__, DecodeError.__name__, UnfulfilledArgumentError.__name__, InvalidDecorationError.__name__, # Serializers: default_tuple_serializer.__name__, default_dict_serializer.__name__, default_iterable_serializer.__name__, default_list_serializer.__name__, default_enum_serializer.__name__, default_complex_serializer.__name__, default_datetime_serializer.__name__, default_date_serializer.__name__, default_time_serializer.__name__, default_timezone_serializer.__name__, default_timedelta_serializer.__name__, default_primitive_serializer.__name__, default_object_serializer.__name__, default_decimal_serializer.__name__, default_uuid_serializer.__name__, default_union_serializer.__name__, default_path_serializer.__name__, # Deserializers: default_list_deserializer.__name__, default_tuple_deserializer.__name__, default_union_deserializer.__name__, default_dict_deserializer.__name__, default_defaultdict_deserializer.__name__, default_enum_deserializer.__name__, default_complex_deserializer.__name__, default_datetime_deserializer.__name__, default_date_deserializer.__name__, default_time_deserializer.__name__, default_timezone_deserializer.__name__, default_timedelta_deserializer.__name__, default_string_deserializer.__name__, default_nonetype_deserializer.__name__, default_primitive_deserializer.__name__, default_mapping_deserializer.__name__, default_iterable_deserializer.__name__, default_object_deserializer.__name__, default_uuid_deserializer.__name__, default_decimal_deserializer.__name__, default_path_deserializer.__name__, ] set_serializer(default_tuple_serializer, (tuple, Tuple)) set_serializer(default_complex_serializer, complex) set_serializer(default_datetime_serializer, datetime) set_serializer(default_date_serializer, date) set_serializer(default_time_serializer, time) set_serializer(default_timezone_serializer, timezone) set_serializer(default_timedelta_serializer, timedelta) set_serializer(default_primitive_serializer, (str, int, float, bool, None)) set_serializer(default_enum_serializer, (Enum, IntEnum)) # must be after primitive_serializer set_serializer(default_dict_serializer, Mapping, False) set_serializer(default_list_serializer, (list, List)) set_serializer(default_iterable_serializer, Iterable, False) set_serializer(default_object_serializer, object, False) set_serializer(default_uuid_serializer, UUID) set_serializer(default_decimal_serializer, Decimal) set_serializer(default_union_serializer, (Union, Optional)) set_serializer(default_path_serializer, PurePath) set_deserializer(default_list_deserializer, (list, List)) set_deserializer(default_tuple_deserializer, (tuple, Tuple)) set_deserializer(default_union_deserializer, (Union, Optional)) set_deserializer(default_defaultdict_deserializer, DefaultDict) set_deserializer(default_datetime_deserializer, datetime) set_deserializer(default_date_deserializer, date) set_deserializer(default_time_deserializer, time) set_deserializer(default_timezone_deserializer, timezone) set_deserializer(default_timedelta_deserializer, timedelta) set_deserializer(default_string_deserializer, str) set_deserializer(default_nonetype_deserializer, NoneType) set_deserializer(default_primitive_deserializer, (int, float, bool)) set_deserializer(default_enum_deserializer, (Enum, IntEnum)) # must be after primitive_deserializer set_deserializer(default_mapping_deserializer, (Mapping, dict, Dict), False) set_deserializer(default_iterable_deserializer, Iterable, False) set_deserializer(default_object_deserializer, object, False) set_deserializer(default_uuid_deserializer, UUID) set_deserializer(default_complex_deserializer, complex) set_deserializer(default_decimal_deserializer, Decimal) set_deserializer(default_path_deserializer, PurePath) if default_zone_info_serializer and default_zone_info_deserializer: from zoneinfo import ZoneInfo __all__.append(default_zone_info_serializer) __all__.append(default_zone_info_deserializer) set_serializer(default_zone_info_serializer, ZoneInfo) set_deserializer(default_zone_info_deserializer, ZoneInfo)