Hacked By AnonymousFox

Current Path : /opt/alt/python38/lib64/python3.8/__pycache__/
Upload File :
Current File : //opt/alt/python38/lib64/python3.8/__pycache__/copyreg.cpython-38.opt-1.pyc

U

i�f��@s�dZdddddgZiZddd�Zdd�ZzeWnek
rDYnXd	d
�Zeeee�dd�Zd
Z	dd�Z
dd�Zdd�Zdd�Z
iZiZiZdd�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|<|dk	r(t|�dS)Nz$reduction functions must be callable)�callable�	TypeError�dispatch_tabler)�ob_type�pickle_function�constructor_ob�r�,/opt/alt/python38/lib64/python3.8/copyreg.pyrs
cCst|�std��dS)Nzconstructors must be callable)rr)�objectrrr
rscCst|j|jffS�N)�complex�real�imag)�crrr
�pickle_complex"srcCs<|tkrt�|�}n$|�||�}|jtjkr8|�||�|Sr)r�__new__�__init__)�cls�base�state�objrrr
�_reconstructor)sricCs�|j}|jD]}t|d�r|jt@sq.qt}|tkr<d}n"||krVtd|j�d���||�}|||f}z
|j}Wn\t	k
r�t
|dd�r�td|j�d|���d�z
|j}Wnt	k
r�d}YnXYnX|�}|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�	_HEAPTYPErr�__name__�__getstate__�AttributeError�getattr�__dict__r)�self�protorrr�args�getstate�dictrrr
�
_reduce_ex6s4


�

r,cGs|j|f|��Sr�r)rr)rrr
�
__newobj__Zsr.cCs|j|f|�|�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__]sr0cCs�|j�d�}|dk	r|Sg}t|d�s(n�|jD]�}d|jkr.|jd}t|t�rV|f}|D]^}|dkrjqZqZ|�d�r�|�d�s�|j�	d�}|r�|�
d||f�q�|�
|�qZ|�
|�qZq.z
||_WnYnX|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&�getr r�
isinstance�str�
startswith�endswithr"�lstrip�appendr1)r�namesr�slots�name�strippedrrr
�
_slotnamescs2





r@cCs�t|�}d|krdks&ntd��||f}t�|�|krNt�|�|krNdS|tkrjtd|t|f��|tkr�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_registryr5�_inverted_registry��moduler>�code�keyrrr
r�s$�
�
�cCsR||f}t�|�|ks$t�|�|kr4td||f��t|=t|=|tkrNt|=dS)z0Unregister an extension code.  For testing only.z%key %s is not registered with code %sN)rDr5rErC�_extension_cacherFrrr
r�s��cCst��dSr)rJ�clearrrrr
r�s)N)�__doc__�__all__rrrr�	NameErrorrrr!r,r.r0r@rDrErJrrrrrrr
�<module>s4�

	$<

Hacked By AnonymousFox1.0, Coded By AnonymousFox