o
    ~]2                     @   s  zd dl mZ d dl mZmZ W n ey   dZeew dZ	de Zde Zd dl
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ d dlm Z m!Z!m"Z" d dl#m#Z# e"$d	 zd
dl%m&Z& W n ey   zd
dl'm&Z& W n	 ey   Y nw Y nw zd
dl(m)Z* W n ey   zd
dl+m)Z* W n ey   e,Z*Y nw Y nw e* Z-d dlm.Z/ dddZ0dddZ1e1  dd Zdd Z2[*dS )   )this_version)readmelicensez0First run 'python setup.py build' to build dill.zMike McKerns
)dumpdumpsloadloadsdump_sessionload_sessionPickler	UnpicklerregistercopypicklepicklescheckHIGHEST_PROTOCOLDEFAULT_PROTOCOLPicklingErrorUnpicklingErrorHANDLE_FMODECONTENTS_FMODE
FILE_FMODE)sourcetempdetect)settingsF    )reload)OrderedDict)objtypesTc                 C   s   ddl m} | rt|j ndd |jD  |r t|j ndd |jD  t|j ~dd ttj	
 D  tt dS )a  load pickleable and/or unpickleable types to ``dill.types``

    ``dill.types`` is meant to mimic the ``types`` module, providing a
    registry of object types.  By default, the module is empty (for import
    speed purposes). Use the ``load_types`` function to load selected object
    types to the ``dill.types`` module.

    Args:
        pickleable (bool, default=True): if True, load pickleable types.
        unpickleable (bool, default=True): if True, load unpickleable types.

    Returns:
        None
    r   )_objectsc                 S      g | ]}t |d qS Nobjectspop.0obj r+   F/var/www/Datamplify/venv/lib/python3.10/site-packages/dill/__init__.py
<listcomp>R       zload_types.<locals>.<listcomp>c                 S   r#   r$   r%   r(   r+   r+   r,   r-   V   r.   c                 S   s&   g | ]}| d dkrtj|qS )Type)findtypes__dict__r'   r(   r+   r+   r,   r-   Z   s    
N) r"   r&   updatesucceedsfailures
registeredlistr2   r3   keysr   )
pickleableunpickleabler"   r+   r+   r,   
load_types>   s   r=   c                 C   s(   ddl m}m} | r|  dS |  dS )a  add (or remove) dill types to/from the pickle registry

    by default, ``dill`` populates its types to ``pickle.Pickler.dispatch``.
    Thus, all ``dill`` types are available upon calling ``'import pickle'``.
    To drop all ``dill`` types from the ``pickle`` dispatch, *use_dill=False*.

    Args:
        use_dill (bool, default=True): if True, extend the dispatch table.

    Returns:
        None
    r   )_revert_extension_extendN)_dillr>   r?   )use_dillr>   r?   r+   r+   r,   extend_   s
   
rB   c                   C   s   t t dS )zprint licenseN)print__license__r+   r+   r+   r,   r   s   s   r   c                   C   s   t tdd  dS )zprint citationiiN)rC   __doc__r+   r+   r+   r,   citationx   s   rF   N)TT)T)3infor   __version__r   rE   r   rD   ImportErrormsg
__author__r@   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r4   r   r   r   r   trace	importlibr   impcollectionsr    odictordereddictdictr&   r!   r2   r=   rB   rF   r+   r+   r+   r,   <module>   s\   	X


!