U
    -e                     @   s  d dl mZmZmZmZmZmZmZ d dlm	Z	 d dl
mZ d dlmZ d dlZd dlZd dlZdd Zdd	 Zd
\ZZZdd Zdd ZG dd dZdd Zd gZG dd deZe Zdd Zdd Zdd Z e!dkre  e  e  e  e  e   dS )    )baditems
badobjectsbadtypeserrorsparentat
globalvars)settings)IS_PYPY)PicklingErrorNc                  C   s*  t  } t| | gkstt| | ks*tt| t| ks>ttt| tksRtt| d}t	|t
sjttt| d t| ksttt| d t| ksttdd tt| d D }t
|}tjdst|t|kstd}d| krt||ks&n
|d s&td S )N   c                 S   s   g | ]}|j j|jd  fqS )r   )	__class____name__args).0err r   W/var/www/html/Darija-Ai-Train/env/lib/python3.8/site-packages/dill/tests/test_detect.py
<listcomp>   s     z#test_bad_things.<locals>.<listcomp>ZCOVERAGE   r   )inspectcurrentframer   AssertionErrorr   r   typer   	TypeError
isinstancedictlistkeyssetvaluesosenvirongetlen)fdsanr   r   r   test_bad_things   s    
"" r*   c                  C   sp   ddddg} t | }t|t}|| ks*ttrBt|td ksXtnt|t| d ksXtttttksltd S )N            )iterr   r   r   r
   intr   id)xlistiterobjr   r   r   test_parent$   s    
 r6   )r   r      c                 C   s   t | d  S )Nr   r(   r3   r   r   r   squared0   s    r:   c                    s    fdd}|S )Nc                    s   t  |  S N)r:   )yr9   r   r   bar4   s    zfoo.<locals>.barr   )r3   r=   r   r9   r   foo3   s    r>   c                   @   s   e Zd Zdd Zdd ZdS )_classc                 C   s   d S r;   r   selfr   r   r   _method9   s    z_class._methodc                 C   s   dS )NTr   r@   r   r   r   ok;   s    z	_class.okN)r   
__module____qualname__rB   rC   r   r   r   r   r?   8   s   r?   c                  C   s   dd } t | tddddks"tt tdd}t|td	d
gksFtt tdd}|i ks^ttd}t |dd}t|td	d
gkstt |dd}t|td	gkst~t t}t|td
gkstd S )Nc                  S   s   t  dd } d S )Nc                  S   s   t  dd } d S )Nc                   S   s   t  d S r;   )cr   r   r   r   hC   s    z-test_globals.<locals>.f.<locals>.g.<locals>.h)b)rG   r   r   r   gA   s    z"test_globals.<locals>.f.<locals>.gr8   )rI   r   r   r   r%   ?   s    ztest_globals.<locals>.fr   r   r7   )r(   rH   rF   Trecurser:   r(   F)r   r   r   r>   r   r:   )r%   reszapr   r   r   test_globals>   s    rN   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )Fooc                 C   s   d S r;   r   r@   r   r   r   __init__b   s    zFoo.__init__c                 C   s   t d d t d< i S )Nr   r   )r=   r@   r   r   r   __getstate__d   s    zFoo.__getstate__c                 C   s   d S r;   r   )rA   datar   r   r   __setstate__g   s    zFoo.__setstate__N)r   rD   rE   rP   rQ   rS   r   r   r   r   rO   a   s   rO   c                  C   sh   ddl m} m} | t td }| dd dd td |ks@t| dd dd td |d	 ksdtd S )
Nr   dumpsloadsc                   S   s   t S r;   r%   r   r   r   r   <lambda>p       ztest_getstate.<locals>.<lambda>FrJ   c                   S   s   t S r;   rW   r   r   r   r   rX   r   rY   Tr   )dillrU   rV   r%   r=   r   )rU   rV   rH   r   r   r   test_getstatel   s    r[   c                  C   sz   ddl m} m} ddlmam} dd }dtd< | |}t dad	ab||}|d	}dd
lma |d	|ksvt	d S )Nr   rT   )sinpic                 S   s   t | |  S r;   r\   r9   r   r   r   sinc{   s    ztest_deleted.<locals>.sincTrK   r\   r   r^   )
rZ   rU   rV   mathr\   r]   r	   globalspopr   )rU   rV   r]   r_   Z_sincZsinc_rL   r   r   r   test_deletedv   s    rc   c                  C   s   zddl m} m} W n tk
r*   Y d S X dtd< | d}|d }||g|}t}t }t|ddd |tkstt|t kstd S )Nr   )symbolslambdifyTrK   r3   r   )rK   builtin)	Zsympyrd   re   ImportErrorr	   minra   r   r   )rd   re   r3   r<   r%   zr&   r   r   r   test_lambdify   s    rj   __main__)"Zdill.detectr   r   r   r   r   r   r   rZ   r	   Z
dill._dillr
   pickler   r   sysr!   r*   r6   r(   rH   rF   r:   r>   r?   rN   r=   objectrO   r%   r[   rc   rj   r   r   r   r   r   <module>	   s4   $

!	

