HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //home/arjun/projects/env/lib/python3.10/site-packages/kombu/utils/__pycache__/json.cpython-310.pyc
o

'we�@s�UdZddlmZddlZddlZddlZddlmZmZmZddl	m
Z
ddlmZm
Z
mZdZz
ddlmZeef7ZWn	eyGYnwGd	d
�d
ej�Zd6dd�Zejedfdd�Zd7dd�Zejdefdd�Ze
egefZZed�Zed�Zd8d"d#�ZiZd$ed%<d&d'�d(d'�d)�Zd*ed+<eed,ej ej!�eed-d.d'�d/d'��eed0d1d'�ej!�ee
d2e"e
�eej#d3d4d'�d5d'��dS)9zJSON Serialization Utilities.�)�annotationsN)�date�datetime�time)�Decimal)�Any�Callable�TypeVar�)�Promisecs eZdZdZ�fdd�Z�ZS)�JSONEncoderzKombu custom json encoder.cs�t|dd�}|dur
|�St|t�rt|�St��D]\}\}}t||�r.t|||��Sqt|t�rRz	td|�d��WSt	yQtdt
�|��d��YSwt��
|�S)N�__json__�bytes�utf-8�base64)�getattr�
isinstance�
textual_types�str�	_encoders�items�_asr�decode�UnicodeDecodeErrorr�	b64encode�super�default)�self�o�reducer�t�marker�encoder��	__class__r
�I/home/arjun/projects/env/lib/python3.10/site-packages/kombu/utils/json.pyrs 

�
�zJSONEncoder.default)�__name__�
__module__�__qualname__�__doc__r�
__classcell__r
r
r#r%rsrr r�vrcCs
||d�S)N)�__type__�	__value__r
)r r+r
r
r%r0s
rcKs(|pi}||fd|it|fi|����S)z Serialize object to json string.�cls)�dict)�s�_dumpsr.�default_kwargs�kwargsr
r
r%�dumps4s r4rr/cCs>|��ddhkrt�|d�}|r||d�Stdt|��|S)z0Hook function to perform custom deserialization.r,r-zUnsupported type)�keys�	_decoders�get�
ValueError�type)r�decoderr
r
r%�object_hook<sr;TcCsTt|t�r
|���d�}nt|t�r|�d�}n|r$t|t�r$|�d�}|||d�S)zDeserialize json from string.r)r;)r�
memoryview�tobytesr�	bytearrayr)r0�_loads�decode_bytesr;r
r
r%�loadsHs


rA�T�EncodedT�type[T]r!r"�Callable[[T], EncodedT]r:�Callable[[EncodedT], T]cCs||ft|<|t|<dS)z=Add support for serializing/deserializing native python type.N)rr6)r r!r"r:r
r
r%�
register_type_srGz dict[type, tuple[str, EncoderT]]rcCs
|�d�S�Nr)�encode�rr
r
r%�<lambda>l�
rKcCst�|�d��SrH)r�	b64decoderIrJr
r
r%rKm�)rrzdict[str, DecoderT]r6rrcC�|��S�N��	isoformatrJr
r
r%rKv�cCst�|���SrP)r�
fromisoformatrrJr
r
r%rKwsrcCrOrPrQrJr
r
r%rKyrS�decimal�uuidcCs
d|jiS)N�hex)rWrJr
r
r%rK~rLcCstjdi|��S)Nr
)rV�UUIDrJr
r
r%rKrN)r rr+r)rr/)r rDr!rr"rEr:rF)$r)�
__future__rr�jsonrVrrrrUr�typingrrr	r�django.utils.functionalr�ImportErrorrrr4r;rA�DecoderT�EncoderTrBrCrGr�__annotations__r6rRrTrrXr
r
r
r%�<module>sX�

�

���