File: //opt/alt/python311/lib/python3.11/site-packages/jsons/__pycache__/__init__.cpython-311.pyc
�
)�;fK. � �v � d Z ddlmZ ddlmZmZmZmZmZ ddlm Z ddl
mZmZ ddl
mZ ddlmZmZmZmZmZmZmZ ddlmZ dd lmZ dd
lmZmZmZ ddlm Z m!Z!m"Z" ddl#m$Z$ dd
l%m&Z&m'Z'm(Z(m)Z) ddl*m+Z+m,Z,m-Z-m.Z. ddl/m0Z0m1Z1m2Z2 ddl3m4Z4 ddl5m6Z6 ddl7m8Z8m9Z9m:Z: ddl;m<Z< ddl=m>Z> ddl?m@Z@ ddlAmBZB ddlCmDZD ddlEmFZF ddlGmHZH ddlImJZJ ddlKmLZL ddlMmNZN ddlOmPZP ddlQmRZR ddlSmTZT dd lUmVZV dd!lWmXZX dd"lYmZZZ dd#l[m\Z\ dd$l]m^Z^ dd%l_m`Z` dd&lambZb dd'lcmdZd dd(lemfZf dd)lgmhZh dd*limjZj dd+lkmlZlmmZmmnZnmoZompZpmqZqmrZr dd,lsmtZt dd-lumvZv dd.lwmxZx dd/lymzZz dd0l{m|Z| dd1l}m~Z~ dd2lm�Z� dd3l�m�Z� dd4l�m�Z� dd5l�m�Z� dd6l�m�Z� dd7l�m�Z� dd8l�m�Z� dd9l�m�Z� dd:l�m�Z� dd;l�m�Z� dd<l�m�Z� dd=l�m�Z� e'Z�e&Z�e(Z�e)Z�g d>�ej� �ej� �ej� �e0j� �e1j� �e2j� �e6j� �e$j� �e-j� �d?�e.j� �d@�dA�e:j� �e8j� �dB�e!j� �e"j� �e<j� �e>j� �e'j� �e&j� �e(j� �e)j� �dC�dD�dE�dF�elj� �emj� �enj� �eoj� �epj� �eqj� �erj� �e�j� �e|j� �e�j� �e�j� �e~j� �etj� �exj� �evj� �e�j� �e�j� �e�j� �e�j� �e�j� �ezj� �e�j� �e�j� �e�j� �ePj� �edj� �efj� �eJj� �eHj� �eLj� �e@j� �eDj� �eBj� �e^j� �ebj� �e`j� �e\j� �eTj� �eZj� �eRj� �eNj� �eVj� �ehj� �eFj� �eXj� �Z� e-e�e�ef� � e-ete�� � e-exe� � e-eve� � e-e�e� � e-e�e� � e-e�e� � e-e�e�e�e�e�dGf� � e-e~eef� � e-e|edH� � e-e�e�ef� � e-e�edH� � e-e�e�dH� � e-e�e� � e-eze � � e-e�eef� � e-e�e� � e.ePe�ef� � e.ede�ef� � e.efeef� � e.eHe� � e.eDe� � e.eBe� � e.e^e� � e.ebe� � e.e`e� � e.e\e�� � e.eTe� � e.eZe�e�e�f� � e.eLeef� � e.eRee�efdH� � e.eNedH� � e.eVe�dH� � e.ehe� � e.e@e�� � e.eFe � � e.eXe� � e�rLejrLddIl�m�Z� e��� e�� � e��� ej� � e-e�e�� � e.eje�� � dGS dGS dGS )Ja�
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'
� )�Mapping)�datetime�date�time�timezone� timedelta)�Decimal)�Enum�IntEnum)�PurePath)�Union�List�Tuple�Iterable�Optional�DefaultDict�Dict)�UUID)�NoneType)�dump�dumps�dumpb)�announce_class�suppress_warnings�suppress_warning)�fork)� camelcase� snakecase�
pascalcase�lispcase)�get_serializer�get_deserializer�set_serializer�set_deserializer)�load�loads�loadb)�__version__)� transform)�validate�
get_validator�
set_validator)�JsonSerializable)� Verbosity)�default_complex_deserializer)�default_date_deserializer)�default_datetime_deserializer)�default_decimal_deserializer)� default_defaultdict_deserializer)�default_dict_deserializer)�default_enum_deserializer)�default_iterable_deserializer)�default_list_deserializer)�default_mapping_deserializer)�default_nonetype_deserializer)�default_object_deserializer)�default_path_deserializer)�default_primitive_deserializer)�default_string_deserializer)�default_time_deserializer)�default_timedelta_deserializer)�default_timezone_deserializer)�default_tuple_deserializer)�default_union_deserializer)�default_uuid_deserializer)�default_zone_info_deserializer)�
JsonsError�ValidationError�SerializationError�DeserializationError�DecodeError�UnfulfilledArgumentError�InvalidDecorationError)�default_complex_serializer)�default_date_serializer)�default_datetime_serializer)�default_decimal_serializer)�default_dict_serializer)�default_enum_serializer)�default_iterable_serializer)�default_list_serializer)�default_object_serializer)�default_path_serializer)�default_primitive_serializer)�default_time_serializer)�default_timedelta_serializer)�default_timezone_serializer)�default_tuple_serializer)�default_union_serializer)�default_uuid_serializer)�default_zone_info_serializerr( r! r"