
    biV                        d dl Z d dlmZ d dlZd!dZ G d de      Z G d de      Z G d d	e      Zd
 Z	d Z
 G d de      Z G d de      Zd Z G d de      Z G d de      Zd Z G d de      Zd Zd Zd Zd ad Zd Zd Zedk(  r^ ej4                         5   ej6                  d         e	         e         e         e         e         e         e        ddd       yy# 1 sw Y   yxY w)"    N)partialc                    |r	 t        j                  | ||      S t        j                  | ||      S # t        $ r Y nw xY wt	        j
                  d       t        j                  | ||      }t	        j
                  d       |S )Nbyrefrecurseignoreerror)dillcopyAssertionError	Exceptionwarningssimplefilter)objr   r   vals       T/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/dill/tests/test_recursive.pyr   r      s|    	e99Sw?? yyE7;;  		
 	h'ii5':g&
s   4 	A A c                        e Zd Z fdZ xZS )obj1c                 *    t         t        |           y N)superr   __init__self	__class__s    r   r   zobj1.__init__       dD"$    __name__
__module____qualname__r   __classcell__r   s   @r   r   r          % %r   r   c                        e Zd Z fdZ xZS )obj2c                 *    t         t        |           y r   )r   r&   r   r   s    r   r   zobj2.__init__#   r   r   r   r#   s   @r   r&   r&   "   r$   r   r&   c                       e Zd ZeZd Zy)obj3c                 T    t         j                  t         |       j                          y r   )r)   super_r   r   s    r   r   zobj3.__init__(   s    D$((*r   N)r   r    r!   r   r+   r    r   r   r)   r)   &   s    F+r   r)   c                  &   t        t               d      sJ t        t               dd      sJ t        t               d      sJ t        t                     sJ t        t               d      sJ t        t               dd      sJ t        t               d      sJ t        t                     sJ t        t               d      sJ t        t               dd      sJ t        t               d      sJ t        t                     sJ y NT)r   r   r   )r   r   r&   r)   r-   r   r   
test_superr1   ,   s    d###dD111%%%<<d###dD111%%%<<d###dD111%%%<<r   c                      y r   r-   )models    r   get_triggerr4   =   s    r   c                       e Zd Zd Zy)Machinec                     t               | _        t        t        |       | _        t        t        | j                        | j                  _        y r   )Modelchildr   r4   triggerr,   s    r   r   zMachine.__init__A   s0    W
{D1$[$**=

r   N)r   r    r!   r   r-   r   r   r6   r6   @   s    >r   r6   c                       e Zd Zy)r8   N)r   r    r!   r-   r   r   r8   r8   F   s    r   r8   c                      t        t               d      sJ t        t               dd      sJ t        t               d      sJ t        t                     sJ y r/   )r   r6   r-   r   r   test_partialr=   K   sH    	&&&	t444	4(((	??r   c                       e Zd Zd Zd Zy)Machine2c                 :    t        | j                  |       | _        y r   )r   membergor,   s    r   r   zMachine2.__init__S   s    $++t,r   c                      y r   r-   )r   r3   s     r   rA   zMachine2.memberU   s    r   N)r   r    r!   r   rA   r-   r   r   r?   r?   R   s    -r   r?   c                        e Zd Z fdZ xZS )
SubMachinec                 *    t         t        |           y r   )r   rE   r   r   s    r   r   zSubMachine.__init__Z   s    j$(*r   r   r#   s   @r   rE   rE   Y   s    + +r   rE   c                      t        t               d      sJ t        t               dd      sJ t        t               d      sJ t        t                     sJ y r/   )r   rE   r-   r   r   test_partialsrH   ^   sJ    
D)))
D$777
d+++
r   c                        e Zd Z fdZ xZS )obj4c                 n    t         t        |           |  G fddt                      | _        y )Nc                   $     e Zd Z fdZ xZS )obj4.__init__.<locals>.obj5c                 0    t         |           | _        y r   )r   r   a)r   r   rO   obj5s    r   r   z$obj4.__init__.<locals>.obj5.__init__j   s    dD*,r   r   )r   rO   rP   s   @r   rP   rM   i   s     r   rP   )r   rJ   r   objectb)r   rO   rP   r   s    @@r   r   zobj4.__init__f   s,    dD"$	6 	 r   r   r#   s   @r   rJ   rJ   e   s     r   rJ   c                     t        t                     sJ t        j                  t        j                  t                           } t        |       t        |       j                  j                  d   j                  u sJ t        | j                        t        | j                        j                  j                  d   j                  u sJ y )Nr   )
r   rJ   r
   loadsdumpstyper   __closure__cell_contentsrR   )	obj4_copys    r   test_circular_referencerZ   p   s    <<

4::df-.I	?d9o66BB1ESSSSS	Y[[ 1 : : F Fq I W WWWWr   c                        fd  S )Nc                       S r   r-   gs   r   r^   zf.<locals>.gx   s    xr   r-   r]   s   @r   fr_   w   s    Hr   c                  .    t        t                     sJ y r   )r   r_   r-   r   r   test_function_cellsra   }   s    99r   c                 X    | dk\  sJ | dk  r| S t        | dz
        t        | dz
        z   S )Nr         )fib)ns    r   re   re      s4    6M6Av1Q3x#ac(""r   c                      t        t        d      } t        t              }t        }b | d      dk(  sJ ||fD ]  }	  |d       t        d       |ay # t        $ r Y &w xY w)NTr0      z&Function fib shouldn't have been found)r   re   r   r   )fib2fib3fib4_fibs       r   test_recursive_functionrm      sz    T"D9DD7a<<t K	KG
 !!IJJK C  		s   A	A A c                       i fd} | d<   | S )Nc                       S r   r-   )ds   r   r^   z(collection_function_recursion.<locals>.g   s    r   r^   r-   )r^   rp   s    @r   collection_function_recursionrq      s    
AAcFHr   c                  F    t        t                     }  |        d   | u sJ y )Nr^   )r   rq   r]   s    r   "test_collection_function_recursionrs      s"    *,-A3s8q==r   __main__r	   )FF)r
   	functoolsr   r   r   rQ   r   r&   r)   r1   r4   r6   r8   r=   r?   rE   rH   rJ   rZ   r_   ra   re   rm   rq   rs   r   catch_warningsr   r-   r   r   <module>rw      s     <"%6 %%6 %+6 +"	>f >	F 	
v + +
6 X#$
 z	 	 	 	" -g&!!*,- - - -s   "AC00C9