HEX
Server: LiteSpeed
System: Linux us-phx-web1284.main-hosting.eu 4.18.0-553.109.1.lve.el8.x86_64 #1 SMP Thu Mar 5 20:23:46 UTC 2026 x86_64
User: u300739242 (300739242)
PHP: 8.2.30
Disabled: system, shell_exec, passthru, mysql_list_dbs, ini_alter, dl, symlink, link, chgrp, leak, popen, apache_child_terminate, virtual, mb_send_mail
Upload Files
File: //opt/alt/python311/lib/python3.11/site-packages/jsons/__pycache__/_common_impl.cpython-311.pyc
�

)�;f����dZddlZddlZddlmZddlmZmZmZm	Z	m
Z
ddlmZddl
mZddlmZed��ZeeeeefZeeeeeeeeef	ZdZe	d	��ZGd
�d��Ze		d"d
edeeegefdedeefd���Z d
efd�Z!dede"defd�Z#dede"defd�Z$d
edededefd�Z%de"dedeeeeeffd�Z&d
efd�Z'dede"dedefd�Z(d
edefd �Z)d
edeefd!�Z*dS)#z�
PRIVATE MODULE: do not import (from) it directly.

This module contains implementations of common functionality that can be used
throughout `jsons`.
�N)�
import_module)�Callable�Optional�Tuple�TypeVar�Any)�cached)�get_union_params)�UnknownClassErrorz-meta�Tc���eZdZdZdZe��Ze��Ze��Z	e��Z
e��Ze��Ze��Z
dZe��Zed���ZdS)�StateHolderzH
    This class holds the registered serializers and deserializers.
    rFc��|js6||jvr/d�||��}tj|g|�Ri|��dSdSdS)NzP{} Use suppress_warning({}) or suppress_warnings(True) to turn off this message.)�_suppress_warnings�_suppressed_warnings�format�warnings�warn)�cls�msg�code�args�kwargs�msg_s      �E/opt/alt/python311/lib/python3.11/site-packages/jsons/_common_impl.py�_warnzStateHolder._warn&si���%�	1�$�c�6N�*N�*N�-�-3�V�C��->�->�
��M�$�0��0�0�0��0�0�0�0�0�	1�	1�*N�*N�N)�__name__�
__module__�__qualname__�__doc__�
_fork_counter�list�_classes_serializers�_classes_deserializers�dict�_serializers�_deserializers�_validators�_classes_validators�_announced_classesr�setr�classmethodr�rrrrs����������M��4�6�6��!�T�V�V���4�6�6�L��T�V�V�N��$�&�&�K��$�&�&����������3�5�5���1�1��[�1�1�1rrFr�transformer�fully_qualified�returnc���|pd�}t|��}|r||��St|��}|r't|��}|rd�||��}||��}|S)a_
    Return the name of a class.
    :param cls: the class of which the name if to be returned.
    :param transformer: any string transformer, e.g. ``str.lower``.
    :param fully_qualified: if ``True`` return the fully qualified name (i.e.
    complete with module name).
    :return: the name of ``cls``, transformed if a transformer is given.
    c��|S�Nr.)�xs r�<lambda>z get_class_name.<locals>.<lambda>:s��A�rz{}.{})�_get_special_cases�_get_simple_name�_get_moduler)rr/r0�cls_name�modules     r�get_class_namer<.s����.�+�+�K�!�#�&�&�H��%��{�8�$�$�$���$�$�H��8��S�!�!���	8��~�~�f�h�7�7�H��{�8�$�$�H��Orc�N�t|d��r|jdkr	|jSdSdS)Nr zNewType.<locals>.new_type)�hasattrr r)rs rr7r7Gs;����^�$�$��� �$?�?�?��|����?�?r�cls_str�sourcec�~�tt|d��}|r|Sd|vrd|vrt|||��S	|�d��}d�|dd���}|d}t|��}t||��}n.#tttf$rt|||��}YnwxYw|S)N�[�]�.���)
�getattr�builtins�_get_generic_cls_from_str�split�joinr�ImportError�AttributeError�
ValueError�_lookup_announced_class)r?r@�	fork_instr�splitted�module_namer:�
cls_modules        r�get_cls_from_strrSMs���
�(�G�T�
*�
*�C�
���
�
�g�~�~�#��.�.�(��&�)�D�D�D�B��=�=��%�%���h�h�x����}�-�-���B�<��"�;�/�/�
��j�(�+�+�������4�B�B�B�%�g�v�y�A�A����B�����Js�AB�(B:�9B:c�����|�d��\}}|dd�}t|����}��fd�|�d��D��}|t|��S)NrBrrEc�V��g|]%}t|���������&Sr.)rS�strip)�.0�srOr@s  ��r�
<listcomp>z-_get_generic_cls_from_str.<locals>.<listcomp>cs=���2�2�2��!������F�I�>�>�2�2�2r�,)rIrS�tuple)r?r@rO�
origin_str�subtypes_str�origin�subtypess ``    rrHrH^s�����&�}�}�S�1�1��J����"��%�L�
�j�&�)�
<�
<�F�2�2�2�2�2�%�+�+�C�0�0�2�2�2�H��%��/�/�"�"r�
cls_from_meta�
cls_from_type�inferred_clsc�4�|||g}|r|||g}|D]}|r|cS�	dSr4r.)rr`rarb�order�elems      r�determine_precedencerfhsU��
�-��/�E��4���]�3�������	��K�K�K�	��r�json_objrOc��t|t��rBt|vr9|tdd}t|||��}||tfSdS)N�classes�/)NN)�
isinstancer&�	META_ATTRrS)rgrOr?rs    r�get_cls_and_metarmxsZ���(�D�!�!�(�i�8�&;�&;��9�%�i�0��5���w��)�<�<���H�Y�'�'�'��:rc��|ttdtfv}|s?t|�����}d|vsd|vott|��v}|S)N�union�optional)r�object�NoneTyper<�lowerr
)r�resultr:s   r�can_match_with_noneru�sh��
�S�&�$��1�
1�F��9�!�#�&�&�,�,�.�.���h�&�@�*��*@�8��"2�3�"7�"7�7�	��Mrc��|j�|��}|s&d�|��}t|||���|S)NzdCould not find a suitable type for "{}". Make sure it can be imported or that is has been announced.)r+�getrr)r?r@rOrrs     rrNrN�sN���
&�
*�
*�7�
3�
3�C��6�9�9?�����	���V�W�5�5�5��Jrc�4�|�t|��}t|dd��}|st|dd��}|s`t|��}|�d��d}|�d��d}|�d��d}|S)Nr�_namerBrrDrEz'>)�typerF�reprrI)rr:s  rr8r8�s���
�{��3�i�i���s�J��-�-�H��/��3���.�.���,���9�9���>�>�#�&�&�q�)���>�>�#�&�&�r�*���>�>�%�(�(��+���Orc�b�tjj}t|dd��}|r||kr|SdSdS)Nr)�str�	__class__rrF)r�builtin_moduler;s   rr9r9�sD���]�-�N�
�S�,��
-�
-�F�
��&�N�*�*��
���*�*r)NF)+r!rGr�	importlibr�typingrrrrr�jsons._cacher	�jsons._compatibility_implr
�jsons.exceptionsrrzrrr}�int�float�bool�	JSON_KEYSr#r[r,r&�VALID_TYPESrlrrr<r7rqrSrHrfrmrurNr8r9r.rr�<module>r�s�������������#�#�#�#�#�#�:�:�:�:�:�:�:�:�:�:�:�:�:�:�������6�6�6�6�6�6�.�.�.�.�.�.��4��:�:��
�#�u�d�H�-�	��C���d�E�3��h�G���	��G�C�L�L��1�1�1�1�1�1�1�1�.�AE�+0����� (��3�%��*�)=� >��$(��5=�c�]�������0�D������c��6�������"#�s�#�F�#�$�#�#�#�#�
�
�
��
��
��	
�
�
�
� �����!�(�4�.�(�4�.�"@�A������T�����	��	��	��	�!�	�	�	�	��$��3������T��h�s�m������r