U
    ãÇ-eÖ  ã                
   @   sœ  zd dl mZmZmZmZ W n’   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 nX 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 e0 4d¡ 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 ƒ |rLt |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   s   g | ]}t  |d ¡‘qS ©N©ÚobjectsÚpop©Ú.0Úobj© r5   úN/var/www/html/Darija-Ai-Train/env/lib/python3.8/site-packages/dill/__init__.pyÚ
<listcomp>K   s     zload_types.<locals>.<listcomp>c                 S   s   g | ]}t  |d ¡‘qS r.   r/   r2   r5   r5   r6   r7   O   s     c                 S   s&   g | ]}|  d ¡dkrtj |¡‘qS )ÚTypeéÿÿÿÿ)ÚfindÚtypesÚ__dict__r1   r2   r5   r5   r6   r7   S   s    ÿN)Ú	importlibr,   Ú r-   r0   ÚupdateZsucceedsZfailuresÚ
registeredÚlistr;   r<   Úkeys)Z
pickleableZunpickleabler,   r-   r5   r5   r6   Ú
load_types6   s    rC   c                 C   s&   ddl m}m} | r|ƒ  n|ƒ  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)Ú_dillrD   rE   )Zuse_dillrD   rE   r5   r5   r6   ÚextendX   s
     rG   c                   C   s   t tƒ dS )zprint licenseN)Úprintr   r5   r5   r5   r6   Úlicensem   s    rI   c                   C   s   t tdd… ƒ dS )zprint citationiþÿÿiŠÿÿÿN)rH   r   r5   r5   r5   r6   Úcitationr   s    rJ   )TT)T)<Z__info__r   r   r   r   ÚosÚsysÚpathÚdirnameÚabspathÚ__file__ÚparentÚappendÚversionr   r   ÚjoinrF   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*   Útracer0   r+   r;   rC   rG   rI   rJ   r5   r5   r5   r6   Ú<module>
   s.   `

"
