MOON
Server: Apache
System: Linux vps.erhabenn.com.br 3.10.0-1160.119.1.el7.tuxcare.els2.x86_64 #1 SMP Mon Jul 15 12:09:18 UTC 2024 x86_64
User: sonne (1011)
PHP: 8.2.31
Disabled: NONE
Upload Files
File: //usr/lib/mysqlsh/lib/python3.9/__pycache__/copyreg.cpython-39.pyc
a

��Pfj�@s�dZgd�ZiZddd�Zdd�ZzeWney<Yn0dd�Zeeee�d	d
�ZdZ	e
ej�Z
dd
�Zdd�Zdd�Zdd�ZiZiZiZdd�Zdd�Zdd�ZdS)z�Helper to provide extensibility for pickle.

This is only useful to add pickle support for extension types defined in
C, not for instances of user-defined classes.
)�pickle�constructor�
add_extension�remove_extension�clear_extension_cacheNcCs,t|�std��|t|<|dur(t|�dS)Nz$reduction functions must be callable)�callable�	TypeError�dispatch_tabler)Zob_typeZpickle_functionZconstructor_ob�r	�)/usr/lib/mysqlsh/lib/python3.9/copyreg.pyrs
rcCst|�std��dS)Nzconstructors must be callable)rr)�objectr	r	r
rsrcCst|j|jffS�N)�complex�real�imag)�cr	r	r
�pickle_complex"srcCs<|turt�|�}n$|�||�}|jtjkr8|�||�|Sr)r�__new__�__init__)�cls�base�state�objr	r	r
�_reconstructor)sric	Cs|dksJ�|j}|jD]:}t|d�r4|jt@s4qX|j}t|t�r|j|urqXqt	}|t	urfd}n"||ur�t
d|j�d���||�}|||f}z
|j}WnXt
y�t|dd�r�t
d|j�d|���d�z
|j}Wnt
y�d}Yn0Yn0|�}|�rt||fSt|fSdS)N��	__flags__zcannot pickle z object�	__slots__zf object: a class that defines __slots__ without defining __getstate__ cannot be pickled with protocol )�	__class__�__mro__�hasattrr�	_HEAPTYPEr�
isinstance�	_new_type�__self__rr�__name__�__getstate__�AttributeError�getattr�__dict__r)	�self�protorr�newr�args�getstate�dictr	r	r
�
_reduce_ex7s@


��

r.cGs|j|g|�R�Sr�r)rr+r	r	r
�
__newobj__^sr0cCs|j|g|�Ri|��S)zUsed by pickle protocol 4, instead of __newobj__ to allow classes with
    keyword-only arguments to be pickled correctly.
    r/)rr+�kwargsr	r	r
�
__newobj_ex__asr2cCs�|j�d�}|dur|Sg}t|d�s(n�|jD]�}d|jvr.|jd}t|t�rV|f}|D]^}|dvrjqZqZ|�d�r�|�d�s�|j�	d�}|r�|�
d||f�q�|�
|�qZ|�
|�qZq.z
||_WnYn0|S)a�Return a list of slot names for a given class.

    This needs to find slots defined by the class and its bases, so we
    can't simply return the __slots__ attribute.  We must walk down
    the Method Resolution Order and concatenate the __slots__ of each
    class found there.  (This assumes classes don't modify their
    __slots__ attribute to misrepresent their slots after the class is
    defined.)
    �
__slotnames__Nr)r'�__weakref__�__�_z_%s%s)r'�getrrr �str�
startswith�endswithr#�lstrip�appendr3)r�namesr�slots�nameZstrippedr	r	r
�
_slotnamesgs2





r@cCs�t|�}d|krdks&ntd��||f}t�|�|krNt�|�|krNdS|tvrjtd|t|f��|tvr�td|t|f��|t|<|t|<dS)zRegister an extension code.�i���zcode out of rangeNz)key %s is already registered with code %sz$code %s is already in use for key %s)�int�
ValueError�_extension_registryr7�_inverted_registry��moduler?�code�keyr	r	r
r�s$�
�
�rcCsR||f}t�|�|ks$t�|�|kr4td||f��t|=t|=|tvrNt|=dS)z0Unregister an extension code.  For testing only.z%key %s is not registered with code %sN)rDr7rErC�_extension_cacherFr	r	r
r�s��rcCst��dSr)rJ�clearr	r	r	r
r�sr)N)�__doc__�__all__rrrr
�	NameErrorrrr�typerBrr!r.r0r2r@rDrErJrrrr	r	r	r
�<module>s.

	
'<