o
    NZh                     @   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   s*  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s{t|t|u s{J 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   M/var/www/html/lang_env/lib/python3.10/site-packages/dill/tests/test_detect.py
<listcomp>   s    z#test_bad_things.<locals>.<listcomp>ZCOVERAGE   r   )inspectcurrentframer   r   r   typer   	TypeError
isinstancedictlistkeyssetvaluesosenvirongetlen)fdsa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   
r5   )r   r      c                 C   s   t | d  S )Nr   r'   r2   r   r   r   squared0      r9   c                    s    fdd}|S )Nc                    s   t  |  S N)r9   )yr8   r   r   bar4   r:   zfoo.<locals>.barr   )r2   r=   r   r8   r   foo3   s   r>   c                   @   s   e Zd Zdd Zdd ZdS )_classc                 C      d S r;   r   selfr   r   r   _method9      z_class._methodc                 C   s   dS )NTr   rA   r   r   r   ok;   rD   z	_class.okN)r   
__module____qualname__rC   rE   r   r   r   r   r?   8   s    r?   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   rH   )Nc                   S   s   t  d S r;   )cr   r   r   r   hC   s   z-test_globals.<locals>.f.<locals>.g.<locals>.h)b)rJ   r   r   r   gA      z"test_globals.<locals>.f.<locals>.gr7   )rL   r   r   r   r$   ?   rM   ztest_globals.<locals>.fr   r   r6   )r'   rK   rI   Trecurser9   r'   F)r   r   r>   r   r9   )r$   reszapr   r   r   test_globals>   s   rR   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )Fooc                 C   r@   r;   r   rA   r   r   r   __init__b   rD   zFoo.__init__c                 C   s   t d d t d< i S )Nr   r   )r=   rA   r   r   r   __getstate__d   s   zFoo.__getstate__c                 C   r@   r;   r   )rB   datar   r   r   __setstate__g   rD   zFoo.__setstate__N)r   rF   rG   rT   rU   rW   r   r   r   r   rS   a   s    rS   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>p       ztest_getstate.<locals>.<lambda>FrN   c                   S   r[   r;   r\   r   r   r   r   r]   r   r^   Tr   )dillrY   rZ   r$   r=   )rY   rZ   rK   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s;J d S )Nr   rX   )sinpic                 S   s   t | |  S r;   ra   r8   r   r   r   sinc{   r:   ztest_deleted.<locals>.sincTrO   ra   r   rc   )	r_   rY   rZ   mathra   rb   r	   globalspop)rY   rZ   rb   rd   Z_sincZsinc_rP   r   r   r   test_deletedv   s   rh   c                  C   s   z
ddl m} m} W n
 ty   Y d S w dtd< | d}|d }||g|}t}t }t|ddd |tu s9J |t u s@J d S )Nr   )symbolslambdifyTrO   r2   r   )rO   builtin)Zsympyri   rj   ImportErrorr	   minrf   r   )ri   rj   r2   r<   r$   zr%   r   r   r   test_lambdify   s   ro   __main__)"Zdill.detectr   r   r   r   r   r   r   r_   r	   Z
dill._dillr
   pickler   r   sysr    r)   r5   r'   rK   rI   r9   r>   r?   rR   r=   objectrS   r$   r`   rh   ro   r   r   r   r   r   <module>   s8   $

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