U
    -e                     @   s   d dl Z d dlZd dlZdejd< dd Zdd Zdd	d
ZdddZde_e	d d a
e ddd Zdd Zdd Zdd Zdd Zedkre  e  e  dS )    NTrecursec                 C   s   | S N )ar   r   Z/var/www/html/Darija-Ai-Train/env/lib/python3.8/site-packages/dill/tests/test_functions.py
function_a   s    r   c                 C   s   | | S r   r   )bb1r   r   r   
function_b   s    r
      c                 C   s   | | S r   r   )cc1r   r   r   
function_c   s    r   c                 C   s   | | | S )z
doc stringr   )dZd1d2r   r   r   
function_d   s    r   za modulezE
def function_e(e, *e1, e2=1, e3=2):
    return e + sum(e1) + e2 + e3c                 C   s   t | 7 a t S r   )	globalvar)xr   r   r   function_with_cache'   s    r   c                      s    fddS )Nc                      s    S r   r   r   valuer   r   <lambda>1       z3function_with_unassigned_variable.<locals>.<lambda>r   r   r   r   r   !function_with_unassigned_variable.   s    r   c                  C   sB   G dd d} dd l }dd l}|  }||}| |ks>td S )Nc                   @   s   e Zd Zdd ZdS )ztest_issue_510.<locals>.Fooc                 S   s   dd }| | | _d S )Nc                 S   s   | S r   r   )selfr   r   r   f29   s    z0test_issue_510.<locals>.Foo.__init__.<locals>.f2)__get__r   )r   r   r   r   r   __init__8   s    z$test_issue_510.<locals>.Foo.__init__N)__name__
__module____qualname__r   r   r   r   r   Foo7   s   r!   r   )dillpickletoolscopyr   AssertionError)r!   r"   r#   ff1r   r   r   test_issue_5104   s
    
r(   c                  C   s  t t} t | ddks tt t}t |dddksBtt t}t |ddksbtt |dddksztt t}t |jtjkstt |j	tj	kstt |dddkstt |ddddkstt |dddddkstt
d d}t t
}t
ddks&tt
ddks8tt
ddksJtt
ddks\tt }t t |}dt|jd kstz
|  W n tk
r   Y n
X td	td
 d S )Nr   r               )r   emptyz&cell_copy() did not read an empty cella_  
dumped_func_e = dill.dumps(function_e)
assert dill.loads(dumped_func_e)(1, 2) == 6
assert dill.loads(dumped_func_e)(1, 2, 3) == 9
assert dill.loads(dumped_func_e)(1, 2, e2=3) == 8
assert dill.loads(dumped_func_e)(1, 2, e2=3, e3=4) == 10
assert dill.loads(dumped_func_e)(1, 2, 3, e2=4) == 12
assert dill.loads(dumped_func_e)(1, 2, 3, e2=4, e3=5) == 15)r"   dumpsr   loadsr%   r
   r   r   __doc__r   r   r   str__closure__	Exceptionexec)Zdumped_func_aZdumped_func_bZdumped_func_cZdumped_func_dr   Zdumped_func_cacheZ
empty_cellZ	cell_copyr   r   r   test_functionsC   s:    





r5   c                     sD  dd l } ddlm}m}m}m} tj | jdt	d t
 dd}| jrN| jd=  fdd|D d	d d
| dd dd  dd dd  dd  |D ]\}}}tfdd| D }	z(||	  |dkr|d
 f|	  W q tk
r< }
 ztd||
W 5 d }
~
X Y qX qd S )Nr   )ALL_CODE_PARAMSCODE_PARAMSCODE_VERSION_create_codeignore)category	co_lnotabr   c                    s   i | ]}|t  d | qS )Zco_)getattr).0r&   )coder   r   
<dictcomp>x   s      z$test_code_object.<locals>.<dictcomp>ZposonlyargcountZlnotabZ	linetablequalnamenameZexceptiontableZendlinetableZcolumntablec                 3   s   | ]} | V  qd S r   r   )r>   p)fieldsr   r   	<genexpr>   s     z#test_code_object.<locals>.<genexpr>)r*   
   z6failed to construct code object with format version {})warningsZ
dill._dillr6   r7   r8   r9   r   __code__filterwarningsDeprecationWarningr=   filters
setdefaulttuplesplitr3   format)rG   r6   r7   r8   r9   ZLNOTABversion_paramsargserrorr   )r?   rD   r   test_code_objectq   s.     
rU   __main__)r   )r   )	functoolsr"   syssettingsr   r
   r   r   r   r4   r   	lru_cacher   r   r(   r5   rU   r   r   r   r   r   <module>   s(   



.