o
    i                  
   @   s  zd dl mZmZmZmZ W nG   ddlZddlZejej	eje
Zeje ddlmZmZmZmZ eejedZde ZeejedZ[[[[[Y 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%m&Z&m'Z' d d	l(m)Z)m*Z*m+Z+m,Z,m-Z- d d
l.m/Z/m0Z0m(Z(m1Z1m2Z2 d dl3m3Z3 e04d i Z5d dl.m6Z7 dddZ8dddZ9e9  dd Z:dd Z;dS )   )__version__
__author____doc____license__    N)r   r   get_license_textget_readme_as_rstLICENSEz
%sz	README.md)dumpdumpsloadloadscopyPickler	UnpicklerregisterpicklepicklescheckDEFAULT_PROTOCOLHIGHEST_PROTOCOLHANDLE_FMODECONTENTS_FMODE
FILE_FMODEPickleErrorPickleWarningPicklingErrorPicklingWarningUnpicklingErrorUnpicklingWarning)dump_moduleload_moduleload_module_asdictdump_sessionload_session)detectloggersessionsourcetemp)settingsF)objtypesTc                 C   s   ddl m} 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
 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   )reloadr   )_objectsc                 S      g | ]}t |d qS Nobjectspop.0obj r6   J/home/ubuntu/veenaModal/venv/lib/python3.10/site-packages/dill/__init__.py
<listcomp>K       zload_types.<locals>.<listcomp>c                 S   r.   r/   r0   r3   r6   r6   r7   r8   O   r9   c                 S   s&   g | ]}| d dkrtj|qS )Type)findtypes__dict__r2   r3   r6   r6   r7   r8   S   s    
N)	importlibr,    r-   r1   updatesucceedsfailures
registeredlistr=   r>   keys)
pickleableunpickleabler,   r-   r6   r6   r7   
load_types6   s   rI   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)_dillrJ   rK   )use_dillrJ   rK   r6   r6   r7   extendX   s
   
rN   c                   C   s   t t dS )zprint licenseN)printr   r6   r6   r6   r7   licensem   s   rP   c                   C   s   t tdd  dS )zprint citationiiN)rO   r   r6   r6   r6   r7   citationr   s   rQ   )TT)T)<__info__r   r   r   r   ossyspathdirnameabspath__file__parentappendversionr   r   joinrL   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r'   r    r!   r"   r#   r$   r@   r%   r&   r(   r)   r*   tracer1   r+   r=   rI   rN   rP   rQ   r6   r6   r6   r7   <module>   s0   	`


"