U
    -e                     @   s\  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 rd 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 Z6e"dDkrXe  e  e  e)  e*  e+  e,  e-  e2  e3  e5  e6  dS )E    N)EnumMetaTrecursec                   @   s   e Zd Zdd Zdd ZdS )_classc                 C   s   d S N selfr   r   Y/var/www/html/Darija-Ai-Train/env/lib/python3.8/site-packages/dill/tests/test_classdef.py_method   s    z_class._methodc                 C   s   dS NTr   r   r   r   r	   ok   s    z	_class.okN__name__
__module____qualname__r
   r   r   r   r   r	   r      s   r   c                   @   s   e Zd Zdd Zdd ZdS )_class2c                 C   s   d S r   r   r   r   r   r	   __call__   s    z_class2.__call__c                 C   s   dS r   r   r   r   r   r	   r      s    z
_class2.okNr   r   r   r   r   r   r   r   r	   r      s   r   c                   @   s   e Zd Zdd Zdd ZdS )	_newclassc                 C   s   d S r   r   r   r   r   r	   r
      s    z_newclass._methodc                 C   s   dS r   r   r   r   r   r	   r      s    z_newclass.okNr   r   r   r   r	   r      s   r   c                   @   s   e Zd Zdd Zdd ZdS )
_newclass2c                 C   s   d S r   r   r   r   r   r	   r   "   s    z_newclass2.__call__c                 C   s   dS r   r   r   r   r   r	   r   $   s    z_newclass2.okNr   r   r   r   r	   r   !   s   r   c                   @   s   e Zd ZdS )_metaNr   r   r   r   r   r   r	   r   '   s   r   c                 C   s   d S r   r   r   r   r   r	   r   *   s    r   c                 C   s   dS r   r   r   r   r   r	   r   ,   s    r   _mclass)r   r   i  	c                   @   s   e Zd ZdS customIntListNr   r   r   r   r	   r   <   s   r   c                   @   s   e Zd ZdS r   r   r   r   r   r	   r   ?   s   c                   C   sJ   t tstt tstt ts*tt ts8tt tsFtd S r   )dillpicklesoAssertionError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
 | qV~~t||D ]T\}}t|}t|}| st|| st|jdkrvt|jdksvtqvd S )Nc                 S   s   g | ]}t |qS r   r   dumps.0objr   r   r	   
<listcomp>M   s     z&test_class_objects.<locals>.<listcomp>c                 S   s   g | ]}t |qS r   r$   r&   r   r   r	   r)   N   s     )r   r   r    r!   r   r   )r   r   r   r   r   r   r   r    r!   r"   globalspopr   zipr   loadsr   r   type)ZclslistZobjlistZ_clslist_objlistr(   cls_cls_objr   r   r	   test_class_objectsJ   s$    


r3   c                   C   sL   t td stt tts$tt tts6tt ttsHtd S r   )r   r   r.   r   NotImplementedEllipsisr   r   r   r   r	   test_specialtypesa   s    r6   )
namedtupleZab   YXZFakeNameDefaultsxy)defaults   c                     s  t ttt kstttttks0tttttksHtttttks`tttttksxtt	ttt	kstt
ttt
k	stt
jttt
jkstttttttkstG dd d} |  }t|stt| jjdks tt| jjds:tt| jjdksRtt| jjdksjtddlm   fd	d
} tt|  djt|  djkst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                   @   s   e Zd ZdZdS )ztest_namedtuple.<locals>.A.B	docstringN)r   r   r   __doc__r   r   r   r	   B   s   rF   ConetwotestingN)r   r   r   r7   rF   r   r   r   r	   A   s   rK   rF   z.<locals>.A.BrD   rJ   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>.Br?   N)r   r   r   int__annotations__r   r   r   r	   rF      s   
rF   r   )rF   rL   r   r	   rK      s    rC      )r8   r   r-   r%   r   Zir=   Xir>   	DefaultsiBad_fieldstupleBadicopyrF   r   r   endswithrE   r   typingrM   r.   )rK   r9   r   rL   r	   test_namedtuplet   s&     r[   c                  C   sX   z>dd l } | d}| jt| jks*t|t|ks<tW n tk
rR   Y nX d S )Nr   rN   )numpyZdtyper   rX   r   ImportError)npZdtir   r   r	   
test_dtype   s    
 r_   c                  C   sJ   z0dd l } | dg}|f}|t|ks.tW n tk
rD   Y nX d S )Nr   r;   )r\   arrayr   rX   r   r]   )r^   r?   r@   r   r   r	   test_array_nested   s     ra   c                     s
  zdd l  G  fddd j} |  ddd}tjjs^t|sHt|jt	|jks^t|dd }tjjst|st|jt	|jkstG dd	 d	 j}|d
ddddg}d|_
tjjst|st|jt	|jkstW n tk
r   Y nX d S )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)r0   Zinput_arrayrd   r(   r^   r   r	   __new__   s    z.test_array_subclass.<locals>.TestArray.__new__c                 S   s&   |d krd S t |t| r"|j| _d S r   )
isinstancer.   rd   )r   r(   r   r   r	   __array_finalize__   s    z9test_array_subclass.<locals>.TestArray.__array_finalize__c                    s     | | jfS r   )rb   rd   r   re   r   r	   __getnewargs__   s    z5test_array_subclass.<locals>.TestArray.__getnewargs__N)r   r   r   rf   rh   ri   r   re   r   r	   	TestArray   s   rj   d   green)rd   	   c                   @   s   e Zd ZdZdS )z'test_array_subclass.<locals>.TestArray2blueN)r   r   r   rd   r   r   r   r	   
TestArray2   s   ro   r;   rB            )r\   ZndarrayZzerosr   Z_dillZIS_PYPYr   r   __dict__rX   rd   r]   )rj   Za1Za2ro   a3r   re   r	   test_array_subclass   s&     ru   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   s   d S r   r   )r0   r   r   r	   test   s    z%test_method_decorator.<locals>.A.testN)r   r   r   classmethodrv   r   r   r   r	   rK      s   rK   )objectr   r%   r-   	__class__rv   )rK   r9   resZnew_objr   r   r	   test_method_decorator   s
    

r{   c                   @   s   e Zd ZdZdd ZdS )r<   )r@   __weakref__c                 C   s
   || _ d S r   r@   r   r@   r   r   r	   __init__   s    z
Y.__init__Nr   r   r   	__slots__r   r   r   r   r	   r<      s   {   c                   @   s   e Zd ZdZdd ZdS )Y2r@   c                 C   s
   || _ d S r   r}   r~   r   r   r	   r      s    zY2.__init__Nr   r   r   r   r	   r      s   r   c                   C   s\   t tstt tstt tjs,tt tjtks@tt ttjtksXtd S r   )r   r   r<   r   r@   rX   valuer   r   r   r   r	   
test_slots   s
    r   c                   C   s   t tjtjkstd S r   )r   rX   r   __orig_bases__r   r   r   r   r	   test_origbases   s    r   c                     s>   dd l   jG  fddd} | d}t||ks:td S )Nr   c                       s   e Zd Z  ZdS )ztest_attr.<locals>.AN)r   r   r   Zibr9   r   attrr   r	   rK      s   rK   r;   )r   sr   rX   r   )rK   vr   r   r	   	test_attr   s
    r   c                  C   s>   G dd dt } t }tdd | |d }t| s:td S )Nc                       s$   e Zd Z fddZdd Z  ZS )z*test_metaclass.<locals>.metaclass_with_newc                    s4   t  j| |||f|}| d k	s"t|| s0t|S r   )superrf   r   method)mclsnamebasesnskwdsr0   ry   r   r	   rf      s    z2test_metaclass.<locals>.metaclass_with_new.__new__c                 S   s
   t | |S r   )rg   )r0   r   r   r   r	   r     s    z1test_metaclass.<locals>.metaclass_with_new.method)r   r   r   rf   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)r.   localsexecr   rX   r   )r   lr   r   r   r	   test_metaclass   s    	 r   c                  C   sD   ddl m}  dd l}t| j| jks*tt|j|jks@td S )Nr   )
HTTPStatus)httpr   enumr   rX   OKr   r   )r   r   r   r   r	   test_enummeta  s    r   __main__)7r   r   r   syssettingsr   r   rx   r   r   r.   r   r   r   r   r   r   r    r!   r"   
hexversionrZ   ListrN   r   listr#   r3   r6   collectionsr7   r8   rQ   r=   r   r   rR   rT   rW   r>   rS   r[   r_   ra   ru   r{   r<   r   r@   r   r   r   r   r   r   r   r   r   r	   <module>	   s~   




!
'	
