o
    i                     @   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re  e  e  e  e  e   dS dS )    )baditems
badobjectsbadtypeserrorsparentat
globalvars)settings)IS_PYPY)PicklingErrorNc                  C   sD  t  } t| | gksJ t| | u sJ t| t| ksJ tt| tu s)J t| d}t|t	s5J t
t| d t
| ksFJ t
t| d t
| ksWJ tdd t
t| d D }t	|}tjdst| jt	u rzdnd}t|t|| ksJ d}d| v rt||u sJ |d sJ d S d S )N   c                 S   s   g | ]}|j j|jd  fqS )r   )	__class____name__args).0err r   S/home/ubuntu/veenaModal/venv/lib/python3.10/site-packages/dill/tests/test_detect.py
<listcomp>   s    z#test_bad_things.<locals>.<listcomp>COVERAGEr      r   )inspectcurrentframer   r   r   typer   	TypeError
isinstancedictlistkeyssetvaluesosenvirongetf_localslen)fdsaproxynr   r   r   test_bad_things   s    
"" 0r,   c                  C   sl   g d} t | }t|t}|| u sJ trt|td u sJ nt|t| d u s*J ttttu s4J d S )N)            )iterr   r   r
   intr   id)xlistiterobjr   r   r   test_parent%   s   
r8   )r   r      c                 C   s   t | d  S )Nr   r)   r5   r   r   r   squared1      r<   c                    s    fdd}|S )Nc                    s   t  |  S N)r<   )yr;   r   r   bar5   r=   zfoo.<locals>.barr   )r5   r@   r   r;   r   foo4   s   rA   c                   @   s   e Zd Zdd Zdd ZdS )_classc                 C      d S r>   r   selfr   r   r   _method:      z_class._methodc                 C   s   dS )NTr   rD   r   r   r   ok<   rG   z	_class.okN)r   
__module____qualname__rF   rH   r   r   r   r   rB   9   s    rB   c                  C   s   dd } t | tddddksJ t tdd}t|td	d
gks#J t tdd}|i ks/J td}t |dd}t|td	d
gksEJ t |dd}t|td	gksVJ ~t t}t|td
gksfJ d S )Nc                  S      t  dd } d S )Nc                  S   rK   )Nc                   S   s   t  d S r>   )cr   r   r   r   hD   s   z-test_globals.<locals>.f.<locals>.g.<locals>.h)b)rM   r   r   r   gB      z"test_globals.<locals>.f.<locals>.gr:   )rO   r   r   r   r&   @   rP   ztest_globals.<locals>.fr   r   r9   )r)   rN   rL   Trecurser<   r)   F)r   r   rA   r   r<   )r&   reszapr   r   r   test_globals?   s   rU   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )Fooc                 C   rC   r>   r   rD   r   r   r   __init__c   rG   zFoo.__init__c                 C   s   t d d t d< i S )Nr   r   )r@   rD   r   r   r   __getstate__e   s   zFoo.__getstate__c                 C   rC   r>   r   )rE   datar   r   r   __setstate__h   rG   zFoo.__setstate__N)r   rI   rJ   rW   rX   rZ   r   r   r   r   rV   b   s    rV   c                  C   sh   ddl m} m} | t td }| dd dd td |ks J | dd dd td |d	 ks2J d S )
Nr   dumpsloadsc                   S      t S r>   r&   r   r   r   r   <lambda>q       ztest_getstate.<locals>.<lambda>FrQ   c                   S   r^   r>   r_   r   r   r   r   r`   s   ra   Tr   )dillr\   r]   r&   r@   )r\   r]   rN   r   r   r   test_getstatem   s   rc   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s;J d S )Nr   r[   )sinpic                 S   s   t | |  S r>   rd   r;   r   r   r   sinc|   r=   ztest_deleted.<locals>.sincTrR   rd   r   rf   )	rb   r\   r]   mathrd   re   r	   globalspop)r\   r]   re   rg   _sincsinc_rS   r   r   r   test_deletedw   s   rm   c                  C   s   zddl m} m} ddlm} |dk rtjdkrW d S W n
 ty&   Y d S w dtd< | d}|d	 }||g|}t	}t
 }t|ddd
 |t	u sKJ |t
 u sRJ d S )Nr   )symbolslambdify)__version__z2.4.0i TrR   r5   r   )rR   builtin)sympyrn   ro   numpyrp   sys
hexversionImportErrorr	   minri   r   )rn   ro   
numversionr5   r?   r&   zr'   r   r   r   test_lambdify   s$   rz   __main__)"dill.detectr   r   r   r   r   r   r   rb   r	   
dill._dillr
   pickler   r   rt   r!   r,   r8   r)   rN   rL   r<   rA   rB   rU   r@   objectrV   r&   rc   rm   rz   r   r   r   r   r   <module>   s8   $

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