o
    NZh!                     @   sn  d dl Z d dlmZ d dlZde jd< G dd dZG dd dZG d	d
 d
eZG dd deZ	G dd de
Zdd Zdd ZedefeedZ[[e Ze Ze Ze	 Ze Zejdk rqd dlZG dd deje Zn
G dd dee Zdd Zdd Zdd Zd dlmZ ed d!d"gZed d#Z ed$d!d"gZ!d%e!_"d%e!_#e!d d#Z$ed&d!d"gZ%e%d d#Z&ed'd(d)gd#gd*Z'e'd+Z(d,d- Z)d.d/ Z*d0d1 Z+d2d3 Z,d4d5 Z-G d6d$ d$eZ.d7Z/e.e/Z0G d8d9 d9eZ1d:d; Z2d<d= Z3d>d? Z4d@dA Z5dBdC Z6dDdE Z7e"dFkr5e  e  e  e)  e*  e+  e,  e-  e2  e3  e5  e6  e7  dS dS )G    N)EnumMetaTrecursec                   @      e Zd Zdd Zdd ZdS )_classc                 C      d S N selfr   r   O/var/www/html/lang_env/lib/python3.10/site-packages/dill/tests/test_classdef.py_method      z_class._methodc                 C      dS NTr   r	   r   r   r   ok   r   z	_class.okN__name__
__module____qualname__r   r   r   r   r   r   r          r   c                   @   r   )_class2c                 C   r   r   r   r	   r   r   r   __call__   r   z_class2.__call__c                 C   r   r   r   r	   r   r   r   r      r   z
_class2.okNr   r   r   r   r   r   r   r   r   r      r   r   c                   @   r   )	_newclassc                 C   r   r   r   r	   r   r   r   r      r   z_newclass._methodc                 C   r   r   r   r	   r   r   r   r      r   z_newclass.okNr   r   r   r   r   r      r   r   c                   @   r   )
_newclass2c                 C   r   r   r   r	   r   r   r   r   "   r   z_newclass2.__call__c                 C   r   r   r   r	   r   r   r   r   $   r   z_newclass2.okNr   r   r   r   r   r   !   r   r   c                   @      e Zd ZdS )_metaNr   r   r   r   r   r   r   r   '       r   c                 C   r   r   r   r	   r   r   r   r   *   r   r   c                 C   r   r   r   r	   r   r   r   r   ,   r   r   _mclass)r   r   i  	c                   @   r   customIntListNr   r   r   r   r   r!   <   r   r!   c                   @   r   r    r   r   r   r   r   r!   ?   r   c                   C   sJ   t tsJ t tsJ t tsJ t tsJ t ts#J d S r   )dillpicklesoocnncmr   r   r   r   test_class_instancesC   s
   r)   c                  C   s   t ttttg} ttttt	g}dd | D }dd |D }| D ]	}t
 |j q~ dD ]}t
 | q+~~t||D ]*\}}t|}t|}| sOJ || sWJ |jdkret|jdkseJ q;d S )Nc                 S      g | ]}t |qS r   r"   dumps.0objr   r   r   
<listcomp>M       z&test_class_objects.<locals>.<listcomp>c                 S   r*   r   r+   r-   r   r   r   r0   N   r1   )r$   r%   r&   r'   r   r   )r   r   r   r   r   r$   r%   r&   r'   r(   globalspopr   zipr"   loadsr   type)ZclslistZobjlistZ_clslist_objlistr/   cls_cls_objr   r   r   test_class_objectsJ   s(   


r;   c                   C   sL   t td s	J t ttsJ t ttsJ t tts$J d S r   )r"   r#   r6   NotImplementedEllipsisr   r   r   r   r   test_specialtypesa   s   r>   )
namedtupleZab   YXZFakeNameDefaultsxy)defaults   c                     s  t ttt u sJ ttttksJ ttttu s$J ttttks0J ttttu s<J ttttksHJ t	ttt	usTJ t	j
ttt	j
ksbJ ttttttksrJ G dd d} |  }t|sJ t| jjdksJ t| jjdsJ t| jjdksJ t| jjdksJ ddlm   fd	d
} tt|  djt|  djksJ d S )Nc                   @   s,   e Zd ZG dd dedddgZde_dS )test_namedtuple.<locals>.Ac                   @      e Zd ZdZdS )ztest_namedtuple.<locals>.A.B	docstringN)r   r   r   __doc__r   r   r   r   B       rO   ConetwotestingN)r   r   r   r?   rO   r   r   r   r   A   s    
rU   rO   z.<locals>.A.BrM   rT   r   
NamedTuplec                     s   G dd d } | S )Nc                   @   s   e Zd ZU eed< dS )z%test_namedtuple.<locals>.A.<locals>.BrG   N)r   r   r   int__annotations__r   r   r   r   rO      s   
 rO   r   )rO   rV   r   r   rU      s   rK      )r@   r"   r5   r,   ZirE   XirF   	DefaultsiBad_fieldstupleBadicopyrO   r   r   endswithrN   r   typingrW   r6   )rU   rA   r   rV   r   test_namedtuplet   s&    .re   c                  C   sV   z dd l } | d}| jt| jksJ |t|ksJ W d S  ty*   Y d S w )Nr   rX   )numpyZdtyper"   rb   ImportError)npZdtir   r   r   
test_dtype   s   
ri   c                  C   sH   zdd l } | dg}|f}|t|ksJ W d S  ty#   Y d S w )Nr   rC   )rf   arrayr"   rb   rg   )rh   rG   rH   r   r   r   test_array_nested   s   rk   c                     s  zxdd l  G  fddd j} |  ddd}tjjs/t|s$J |jt|jks/J |dd }tjjsKt|s@J |jt|jksKJ G dd	 d	 j}|g d
}d|_	tjjsst|shJ |jt|jksvJ W d S W d S  t
y   Y d S w )Nr   c                       s,   e Zd Z fddZdd Z fddZdS )z&test_array_subclass.<locals>.TestArrayc                    s     || }||_|S r   )asarrayviewcolor)r8   Zinput_arrayrn   r/   rh   r   r   __new__   s   z.test_array_subclass.<locals>.TestArray.__new__c                 S   s*   |d u rd S t |t| r|j| _d S d S r   )
isinstancer6   rn   )r
   r/   r   r   r   __array_finalize__   s
   z9test_array_subclass.<locals>.TestArray.__array_finalize__c                    s     | | jfS r   )rl   rn   r	   ro   r   r   __getnewargs__   s   z5test_array_subclass.<locals>.TestArray.__getnewargs__N)r   r   r   rp   rr   rs   r   ro   r   r   	TestArray   s    rt   d   green)rn   	   c                   @   rL   )z'test_array_subclass.<locals>.TestArray2blueN)r   r   r   rn   r   r   r   r   
TestArray2   rP   ry   )rC   rJ            )rf   ZndarrayZzerosr"   Z_dillZIS_PYPYr#   __dict__rb   rn   rg   )rt   Za1Za2ry   a3r   ro   r   test_array_subclass   s(   r   c                  C   s8   G dd dt } |  }t|}t|}|j  d S )Nc                   @   s   e Zd Zedd ZdS )z test_method_decorator.<locals>.Ac                 S   r   r   r   )r8   r   r   r   test   s   z%test_method_decorator.<locals>.A.testN)r   r   r   classmethodr   r   r   r   r   rU      s    rU   )objectr"   r,   r5   	__class__r   )rU   rA   resZnew_objr   r   r   test_method_decorator   s
   

r   c                   @      e Zd ZdZdd ZdS )rD   )rH   __weakref__c                 C   
   || _ d S r   rH   r
   rH   r   r   r   __init__      
z
Y.__init__Nr   r   r   	__slots__r   r   r   r   r   rD          {   c                   @   r   )Y2rH   c                 C   r   r   r   r   r   r   r   r      r   zY2.__init__Nr   r   r   r   r   r      r   r   c                   C   s\   t tsJ t tsJ t tjsJ t tjtks J t ttjtks,J d S r   )r"   r#   rD   rH   rb   valuer   r   r   r   r   
test_slots   s
   r   c                   C   s   t tjtjksJ d S r   )r"   rb   r!   __orig_bases__r   r   r   r   test_origbases   s   r   c                     s>   dd l   jG  fddd} | d}t||ksJ d S )Nr   c                       s   e Zd Z  ZdS )ztest_attr.<locals>.AN)r   r   r   ibrA   r   attrr   r   rU      s    rU   rC   )r   sr"   rb   )rU   vr   r   r   	test_attr   s
   r   c                  C   s>   G dd dt } t }tdd | |d }t| sJ d S )Nc                       s$   e Zd Z fddZdd Z  ZS )z*test_metaclass.<locals>.metaclass_with_newc                    s8   t  j| |||fi |}| d usJ || sJ |S r   )superrp   method)mclsnamebasesnskwdsr8   r   r   r   rp      s   z2test_metaclass.<locals>.metaclass_with_new.__new__c                 S   s
   t | |S r   )rq   )r8   r   r   r   r   r     r   z1test_metaclass.<locals>.metaclass_with_new.method)r   r   r   rp   r   __classcell__r   r   r   r   metaclass_with_new   s    r   zclass subclass_with_new(metaclass=metaclass_with_new):
        def __new__(cls):
            self = super().__new__(cls)
            return selfsubclass_with_new)r6   localsexecr"   rb   )r   lr   r   r   r   test_metaclass   s   	r   c                  C   sD   ddl m}  dd l}t| j| ju sJ t|j|ju s J d S )Nr   )
HTTPStatus)httpr   enumr"   rb   OKr   )r   r   r   r   r   test_enummeta  s   r   c                  C   s  G dd d} G dd d| }t |}dd l}| dk}|j|jks&J d|jv r0d|jv s2J |jd |jd u s>J d|jv rHd|jv sJJ |jd |jd u sVJ d	|jv r`d	|jv sbJ |jd	 |jd	 u }|rr|svJ |rvJ d
|jv rd
|jv sJ |jd
 |jd
 u }|r|sJ |rJ d|jv rd|jv sJ |jd |jd u sJ d|jv rd|jv sJ |jd |jd usJ d|jv rd|jv sJ |jd |jd usJ d|jv rd|jv sJ |jd |jd u sJ d S )Nc                   @   s$   e Zd ZdZdZdZdZdZdZdS )ztest_inherit.<locals>.Foor   rC   皙?r   rC   N)	r   r   r   wrG   rH   rA   rB   r&   r   r   r   r   Foo  s    r   c                   @   s,   e Zd ZdZdZdZdZdZdZdZ	dZ
dS )	ztest_inherit.<locals>.BarrJ   rC   r   g?r   r   )rJ   N)r   r   r   r   rG   rH   zrA   rB   cr&   r   r   r   r   Bar   s    r   r   PyPyr   rG   rH   r   rA   rB   r   r&   )r"   rb   platformpython_implementationr}   )r   r   ZBazr   is_pypyZsamer   r   r   test_inherit  s0   

r   __main__)8r"   r   r   syssettingsr   r   r   r   r   r6   r   r   r   r   r$   r%   r&   r'   r(   
hexversionrd   ListrX   r!   listr)   r;   r>   collectionsr?   r@   r[   rE   r   r   r\   r^   ra   rF   r]   re   ri   rk   r   r   rD   r   rH   r   r   r   r   r   r   r   r   r   r   r   <module>   s   




!
'	
0
