o
    Ó0 i0  ã                   @   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 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¡sˆt| jƒt	u rzdnd}t|ƒt|ƒ| ksˆJ ‚d}d| ¡ v r˜t|ƒ|u s J ‚|d sžJ ‚d S d S )Né   c                 S   s   g | ]}|j j|jd  f‘qS )r   )Ú	__class__Ú__name__Úargs)Ú.0Úerr© r   úb/home/app/PaddleOCR-VL-test/.venv_paddleocr/lib/python3.10/site-packages/dill/tests/test_detect.pyÚ
<listcomp>   s    z#test_bad_things.<locals>.<listcomp>Z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   
r7   )r   r   é   c                 C   s   t | d  S )Nr   ©r(   ©r4   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   )r4   r?   r   r:   r   Úfoo4   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   Ú_method:   ó   z_class._methodc                 C   s   dS )NTr   rC   r   r   r   Úok<   rF   z	_class.okN)r   Ú
__module__Ú__qualname__rE   rG   r   r   r   r   rA   9   s    rA   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   rJ   )Nc                   S   s   t  d S r=   )Úcr   r   r   r   ÚhD   s   z-test_globals.<locals>.f.<locals>.g.<locals>.h)Úb)rL   r   r   r   ÚgB   ó   z"test_globals.<locals>.f.<locals>.gr9   )rN   r   r   r   r%   @   rO   ztest_globals.<locals>.fr   r   r8   )r(   rM   rK   T©Úrecurser;   r(   F)r   r   r@   r   r;   )r%   ÚresÚzapr   r   r   Útest_globals?   s   rT   c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚFooc                 C   rB   r=   r   rC   r   r   r   Ú__init__c   rF   zFoo.__init__c                 C   s   t d d t d< i S )Nr   r   )r?   rC   r   r   r   Ú__getstate__e   s   zFoo.__getstate__c                 C   rB   r=   r   )rD   Údatar   r   r   Ú__setstate__h   rF   zFoo.__setstate__N)r   rH   rI   rV   rW   rY   r   r   r   r   rU   b   s    rU   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>FrP   c                   S   r]   r=   r^   r   r   r   r   r_   s   r`   Tr   )Údillr[   r\   r%   r?   )r[   r\   rM   r   r   r   Útest_getstatem   s   rb   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   rZ   )ÚsinÚpic                 S   s   t | ƒ|  S r=   ©rc   r:   r   r   r   Úsinc|   r<   ztest_deleted.<locals>.sincTrQ   rc   r   re   )	ra   r[   r\   Úmathrc   rd   r	   ÚglobalsÚpop)r[   r\   rd   rf   Z_sincZsinc_rR   r   r   r   Útest_deletedw   s   rj   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ÚlambdifyTrQ   r4   r   )rQ   Úbuiltin)Zsympyrk   rl   ÚImportErrorr	   Úminrh   r   )rk   rl   r4   r>   r%   Úzr&   r   r   r   Útest_lambdifyŠ   s   ÿrq   Ú__main__)"Zdill.detectr   r   r   r   r   r   r   ra   r	   Z
dill._dillr
   Úpickler   r   Úsysr    r+   r7   r(   rM   rK   r;   r@   rA   rT   r?   ÚobjectrU   r%   rb   rj   rq   r   r   r   r   r   Ú<module>   s8   $

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