o
    ~]                     @   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 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rze  e  e  e  e  e  dS dS )    )baditems
badobjectsbadtypeserrorsparentat
globalvars)settings)IS_PYPY)PicklingErrorNc                  C   s2  t  } t| | gksJ t| | u sJ t| t| ksJ tr+tt| tu s/J t	s/J t| d}t
|ts;J tt| d t| ksLJ tt| d t| ks]J tdd tt| d D }t|}t|t|u s{J trdn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   O/var/www/Datamplify/venv/lib/python3.10/site-packages/dill/tests/test_detect.py
<listcomp>   s    z#test_bad_things.<locals>.<listcomp>   r   )inspectcurrentframer   r   r   typer
   r   r   	TypeError
isinstancedictlistkeyssetvalues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   
r2   )r   r      c                 C   s   t | d  S )Nr   r$   r/   r   r   r   squared-      r6   c                    s    fdd}|S )Nc                    s   t  |  S N)r6   )yr5   r   r   bar1   r7   zfoo.<locals>.barr   )r/   r:   r   r5   r   foo0   s   r;   c                   @   s   e Zd Zdd Zdd ZdS )_classc                 C      d S r8   r   selfr   r   r   _method6      z_class._methodc                 C   s   dS )NTr   r>   r   r   r   ok8   rA   z	_class.okN)r   
__module____qualname__r@   rB   r   r   r   r   r<   5   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   rE   )Nc                   S   s   t  d S r8   )cr   r   r   r   h@   s   z-test_globals.<locals>.f.<locals>.g.<locals>.h)b)rG   r   r   r   g>      z"test_globals.<locals>.f.<locals>.gr4   )rI   r   r   r   r!   <   rJ   ztest_globals.<locals>.fr   r   r3   )r$   rH   rF   Trecurser6   r$   F)r   r   r;   r   r6   )r!   reszapr   r   r   test_globals;   s   rO   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )Fooc                 C   r=   r8   r   r>   r   r   r   __init___   rA   zFoo.__init__c                 C   s   t d d t d< i S )Nr   r   )r:   r>   r   r   r   __getstate__a   s   zFoo.__getstate__c                 C   r=   r8   r   )r?   datar   r   r   __setstate__d   rA   zFoo.__setstate__N)r   rC   rD   rQ   rR   rT   r   r   r   r   rP   ^   s    rP   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 r8   r!   r   r   r   r   <lambda>m       ztest_getstate.<locals>.<lambda>FrK   c                   S   rX   r8   rY   r   r   r   r   rZ   o   r[   Tr   )dillrV   rW   r!   r:   )rV   rW   rH   r   r   r   test_getstatei   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   rU   )sinpic                 S   s   t | |  S r8   r^   r5   r   r   r   sincx   r7   ztest_deleted.<locals>.sincTrL   r^   r   r`   )	r\   rV   rW   mathr^   r_   r	   globalspop)rV   rW   r_   ra   _sincsinc_rM   r   r   r   test_deleteds   s   rg   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lambdifyTrL   r/   r   )rL   builtin)sympyrh   ri   ImportErrorr	   minrc   r   )rh   ri   r/   r9   r!   zr"   r   r   r   test_lambdify   s   ro   __main__) dill.detectr   r   r   r   r   r   r   r\   r	   
dill._dillr
   pickler   r   r&   r2   r$   rH   rF   r6   r;   r<   rO   r:   objectrP   r!   r]   rg   ro   r   r   r   r   r   <module>   s4   $

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