
    bi!                        d dl Z d dlmZ d dlZde j                  d<    G d d      Z G d d      Z G d	 d
e      Z G d de      Z	 G d de
      Zd Zd Z edefeed      Z[[ e       Z e       Z e       Z e	       Z e       Zej(                  dk  rd dlZ G d dej,                  e         Zn G d dee         Zd Zd Z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%      Z' e'd&      Z(d' Z)d( Z*d) Z+d* Z,d+ Z- G d, de      Z.d-Z/ e.e/      Z0 G d. d/e      Z1d0 Z2d1 Z3d2 Z4d3 Z5d4 Z6d5 Z7e"d6k(  r\ e         e         e         e)         e*         e+         e,         e-         e2         e3         e5         e6         e7        yy)7    N)EnumMetaTrecursec                       e Zd Zd Zd Zy)_classc                      y N selfs    S/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/dill/tests/test_classdef.py_methodz_class._method           c                      yNTr	   r
   s    r   okz	_class.ok       r   N__name__
__module____qualname__r   r   r	   r   r   r   r          r   r   c                       e Zd Zd Zd Zy)_class2c                      y r   r	   r
   s    r   __call__z_class2.__call__   r   r   c                      yr   r	   r
   s    r   r   z
_class2.ok   r   r   Nr   r   r   r   r   r	   r   r   r   r      r   r   r   c                       e Zd Zd Zd Zy)	_newclassc                      y r   r	   r
   s    r   r   z_newclass._method   r   r   c                      yr   r	   r
   s    r   r   z_newclass.ok   r   r   Nr   r	   r   r   r    r       r   r   r    c                       e Zd Zd Zd Zy)
_newclass2c                      y r   r	   r
   s    r   r   z_newclass2.__call__"   r   r   c                      yr   r	   r
   s    r   r   z_newclass2.ok$   r   r   Nr   r	   r   r   r$   r$   !   r   r   r$   c                       e Zd Zy)_metaNr   r   r   r	   r   r   r(   r(   '   s    r   r(   c                      y r   r	   r
   s    r   r   r   *   s    r   c                      yr   r	   r
   s    r   r   r   ,   s    r   _mclass)r   r   i  	c                       e Zd ZycustomIntListNr)   r	   r   r   r/   r/   <       r   r/   c                       e Zd Zyr.   r)   r	   r   r   r/   r/   ?   r0   r   c                     t        j                  t              sJ t        j                  t              sJ t        j                  t              sJ t        j                  t
              sJ t        j                  t              sJ y r   )dillpicklesoocnncmr	   r   r   test_class_instancesr:   C   sV    <<??<<<<??<<<<??r   c                     t         t        t        t        t        g} t
        t        t        t        t        g}| D cg c]  }t        j                  |       }}|D cg c]  }t        j                  |       }}| D ]%  }t               j                  |j                         ' ~ dD ]  }t               j                  |        ~~t        ||      D ]  \  }}t        j                   |      }t        j                   |      }|j#                         sJ |j#                   |             sJ |j                  dk(  sjt%        |      j                  dk(  rJ  y c c}w c c}w )N)r5   r6   r7   r8   r,   r(   )r   r   r    r$   r,   r5   r6   r7   r8   r9   r3   dumpsglobalspopr   ziploadsr   type)clslistobjlistobj_clslist_objlistcls_cls_objs           r   test_class_objectsrJ   J   s   gi
7;GAbmG+23C

33H3+23C

33H3 $	cll#$" 	cx) 2Czz#zz#wwyywwtv==I%:&&'1112 43s   EE c                     t        j                  t        d             sJ t        j                  t        t                    sJ t        j                  t        t                    sJ t        j                  t        t
                    sJ y r   )r3   r4   rA   NotImplementedEllipsisr   r	   r   r   test_specialtypesrN   a   s[    <<T
###<<^,---<<X'''<<X'''r   )
namedtupleZab   YXFakeNameDefaultsxy)defaults   c                     t         t        j                  t        j                  t                     u sJ t        t        j                  t        j                  t                    k(  sJ t
        t        j                  t        j                  t
                    u sJ t        t        j                  t        j                  t                    k(  sJ t        t        j                  t        j                  t                    u sJ t        t        j                  t        j                  t                    k(  sJ t        t        j                  t        j                  t                    usJ t        j                  t        j                  t        j                  t                    j                  k(  sJ t        t              t        t        j                  t        j                  t                          k(  sJ  G d d      }  |        }t        j                  |      sJ t        j                  | j                        j                  dk(  sJ t        j                  | j                        j                   j#                  d      sJ t        j                  | j                        j$                  dk(  sJ t        j                  | j                        j&                  dk(  sJ ddlm fd	} t-        t        j                    |        d
                  j                   t-          |        d
            j                   k(  sJ y )Nc            	       B    e Zd Z G d d edddg            Zde_        y)test_namedtuple.<locals>.Ac                       e Zd ZdZy)test_namedtuple.<locals>.A.B	docstringN)r   r   r   __doc__r	   r   r   Br`      s    r   rc   ConetwotestingN)r   r   r   rO   rc   r	   r   r   Ar^      s     	
3/ 	 r   rh   rc   z.<locals>.A.Bra   rg   r   )
NamedTuplec                       G d d      } | S )Nc                       e Zd ZU eed<   y)%test_namedtuple.<locals>.A.<locals>.BrX   N)r   r   r   int__annotations__r	   r   r   rc   rl      s    Fr   rc   r	   )rc   ri   s    r   rh   ztest_namedtuple.<locals>.A   s    	
 	r      )rP   r3   r@   r<   ZirU   XirW   	DefaultsiBad_fieldstupleBadicopyrc   r   r   endswithrb   r   typingri   rA   )rh   rQ   ri   s     @r   test_namedtuplerz   t   s   

4::a=))))DJJrN++++

4::a=))))DJJrN++++tzz$**X"67777

4::i#89999djjC1111;;$**TZZ_5=====;%

4::d+; <====! !
 	
A99Q<<99QSS>""c)))99QSS>&&//@@@99QSS>!![00099QSS>$$	111!
 		#!#a&!"//4A<3L3LLLLr   c                      	 dd l } | j                  d      }| j                  t        j                  | j                        k(  sJ |t        j                  |      k(  sJ y # t        $ r Y y w xY w)Nr   rm   )numpydtyper3   rw   ImportError)npdtis     r   
test_dtyper      sY    hhuoxx499RXX....diin$$$s   AA   	A,+A,c                      	 dd l } | j                  dg      }|f}|t        j                  |      k(  sJ y # t        $ r Y y w xY w)Nr   rS   )r|   arrayr3   rw   r~   )r   rX   rY   s      r   test_array_nestedr      sC    HHaSMDDIIaL   s   36 	AAc                      	 dd l  G fddj                        }  | j                  d      d      }t        j                  j
                  sEt        j                  |      sJ |j                  t        j                  |      j                  k(  sJ |dd }t        j                  j
                  sEt        j                  |      sJ |j                  t        j                  |      j                  k(  sJ  G d d	j                        } |g d
      }d|_	        t        j                  j
                  sFt        j                  |      sJ |j                  t        j                  |      j                  k(  sJ y y # t        $ r Y y w xY w)Nr   c                   (    e Zd Z fdZd Z fdZy)&test_array_subclass.<locals>.TestArrayc                 V    j                  |      j                  |       }||_        |S r   )asarrayviewcolor)rG   input_arrayr   rD   r   s       r   __new__z.test_array_subclass.<locals>.TestArray.__new__   s(    jj-2237!	
r   c                 X    |y t        |t        |             r|j                  | _        y y r   )
isinstancerA   r   )r   rD   s     r   __array_finalize__z9test_array_subclass.<locals>.TestArray.__array_finalize__   s(    ;c4:.!$DJ /r   c                 >    j                  |       | j                  fS r   )r   r   )r   r   s    r   __getnewargs__z5test_array_subclass.<locals>.TestArray.__getnewargs__   s    zz$'33r   N)r   r   r   r   r   r   )r   s   r   	TestArrayr      s    +
4r   r   d   green)r   	   c                       e Zd ZdZy)'test_array_subclass.<locals>.TestArray2blueN)r   r   r   r   r	   r   r   
TestArray2r      s    Er   r   )rS   r[            )r|   ndarrayzerosr3   _dillIS_PYPYr4   __dict__rw   r   r~   )r   a1a2r   a3r   s        @r   test_array_subclassr      s0   #	4

 	4 rxx}G4zz!!<<###;;$))B-"8"8888!Wzz!!<<###;;$))B-"8"8888	 	 $zz!!<<###;;$))B-"8"8888 " s   E<F 	FFc                       G d dt               }  |        }t        j                  |      }t        j                  |      }|j                  j                          y )Nc                       e Zd Zed        Zy) test_method_decorator.<locals>.Ac                      y r   r	   )rG   s    r   testz%test_method_decorator.<locals>.A.test   s    r   N)r   r   r   classmethodr   r	   r   r   rh   r      s     r   rh   )objectr3   r<   r@   	__class__r   )rh   rQ   resnew_objs       r   test_method_decoratorr      sC    F 
 	
A
**Q-CjjoGr   c                       e Zd ZdZd Zy)rT   )rY   __weakref__c                     || _         y r   rY   r   rY   s     r   __init__z
Y.__init__   	    DFr   Nr   r   r   	__slots__r   r	   r   r   rT   rT      s    ")r   {   c                       e Zd ZdZd Zy)Y2rY   c                     || _         y r   r   r   s     r   r   zY2.__init__   r   r   Nr   r	   r   r   r   r      s    )r   r   c                  |   t        j                  t              sJ t        j                  t              sJ t        j                  t        j                        sJ t        j                  t              j                  t
        k(  sJ t        j                  t        t
                    j                  t
        k(  sJ y r   )r3   r4   rT   rY   rw   valuer   r	   r   r   
test_slotsr      ss    <<??<<??<<99Q<>>U"""99RY!!U***r   c                  p    t        j                  t              j                  t        j                  k(  sJ y r   )r3   rw   r/   __orig_bases__r	   r   r   test_origbasesr      s%    99]#22m6R6RRRRr   c                      dd l j                   G fdd             }  | d      }t        j                  |      |k(  sJ y )Nr   c                   0    e Zd ZW  j                         Zy)test_attr.<locals>.AN)r   r   r   ibrQ   )attrs   r   rh   r      s    GGIr   rh   rS   )r   sr3   rw   )rh   vr   s     @r   	test_attrr      sB    	VV   	
!A99Q<1r   c                       G d dt               } t               }t        dd |       |d   }t        j                   |             sJ y )Nc                   $     e Zd Z fdZd Z xZS )*test_metaclass.<locals>.metaclass_with_newc                 \    t        |   | |||fi |}| J |j                  |       sJ |S r   )superr   method)mclsnamebasesnskwdsrG   r   s         r   r   z2test_metaclass.<locals>.metaclass_with_new.__new__   s?    '/$eR@4@C###::d###Jr   c                     t        | |      S r   )r   )rG   r   s     r   r   z1test_metaclass.<locals>.metaclass_with_new.method  s    c4((r   )r   r   r   r   r   __classcell__)r   s   @r   metaclass_with_newr      s    	
	)r   r   zclass subclass_with_new(metaclass=metaclass_with_new):
        def __new__(cls):
            self = super().__new__(cls)
            return selfsubclass_with_new)rA   localsexecr3   rw   )r   lr   s      r   test_metaclassr      sO    )T ) 	A 
 !!% -.99&()))r   c                      ddl m}  dd l}t        j                  | j
                        | j
                  u sJ t        j                  |j                        |j                  u sJ y )Nr   )
HTTPStatus)httpr   enumr3   rw   OKr   )r   r   s     r   test_enummetar     sF    99Z]]#z}}44499T]]#t}}444r   c                      G d d      }  G d d|       }t        j                  |      }dd l}|j                         dk(  }|j                  |j                  k(  sJ d|j                  v rd|j                  v sJ |j                  d   |j                  d   u sJ d|j                  v rd|j                  v sJ |j                  d   |j                  d   u sJ d	|j                  v rd	|j                  v sJ |j                  d	   |j                  d	   u }|r|sJ |rJ d
|j                  v rd
|j                  v sJ |j                  d
   |j                  d
   u }|r|sJ |rJ d|j                  v rd|j                  v sJ |j                  d   |j                  d   u sJ d|j                  v rd|j                  v sJ |j                  d   |j                  d   usJ d|j                  v rd|j                  v sJ |j                  d   |j                  d   usJ d|j                  v rd|j                  v sJ |j                  d   |j                  d   u sJ y )Nc                   $    e Zd ZdZdZdZdZdZdZy)test_inherit.<locals>.Foor   rS   皙?r	   rS   N)	r   r   r   wrX   rY   rQ   rR   r7   r	   r   r   Foor     s     r   r   c                   ,    e Zd ZdZdZdZdZdZdZdZ	dZ
y)	test_inherit.<locals>.Barr[   rS   r   g?r	   r   )r[   N)r   r   r   r   rX   rY   zrQ   rR   cr7   r	   r   r   Barr      s*    r   r   r   PyPyr   rX   rY   r   rQ   rR   r   r7   )r3   rw   platformpython_implementationr   )r   r   Bazr   is_pypysames         r   test_inheritr     sY    c  ))C.C,,.&8G<<3<<'''#,,3#,,#666<<S 1111#,,3#,,#666<<S 1111#,,3#,,#666<<S 11D4((D((#,,3#,,#666<<S 11D4((D((#,,3#,,#666<<S 1111#,,3#,,#666<<CLL$5555#,,3#,,#666<<CLL$5555#,,3#,,#666<<S 1111r   __main__)8r3   r   r   syssettingsr   r   r   r    r$   rA   r(   r   r   r,   r5   r6   r7   r8   r9   
hexversionry   Listrm   r/   listr:   rJ   rN   collectionsrO   rP   rp   rU   r   r   rq   rs   rv   rW   rr   rz   r   r   r   r   rT   r   rY   r   r   r   r   r   r   r   r	   r   r   <module>r      s!     
i     	D 		 	F982&F
G
HYK\I>>JC( S	 2.( #sSIqVsSI
qVc#Y'
1Qxj3*s;QK	MB$N
 
 	eH 
+S*&5-2` zLLON r   