
    hV                        S SK r S SKJr  S SKrS!S jr " S S\5      r " S S\5      r " S S	\5      rS
 r	S r
 " S S\5      r " S S\5      rS r " S S\5      r " S S\5      rS r " S S\5      rS rS rS rS qS rS rS r\S:X  a^  \R4                  " 5          \R6                  " S 5        \	" 5         \" 5         \" 5         \" 5         \" 5         \" 5         \" 5         SSS5        gg! , (       d  f       g= f)"    N)partialc                    U(       a   [         R                  " XUS9$ [         R                  " XUS9$ ! [         a     Of = f[        R
                  " S5        [         R                  " XUS9n[        R
                  " S5        U$ )Nbyrefrecurseignoreerror)dillcopyAssertionError	Exceptionwarningssimplefilter)objr   r   vals       S/home/james-whalen/.local/lib/python3.13/site-packages/dill/tests/test_recursive.pyr   r      sv    	e99Sw?? yy7;;  		
 	h'ii':g&
s   3 
A A c                   (   ^  \ rS rSrU 4S jrSrU =r$ )obj1   c                 *   > [         [        U ]  5         g N)superr   __init__self	__class__s    r   r   obj1.__init__       dD"$     __name__
__module____qualname____firstlineno__r   __static_attributes____classcell__r   s   @r   r   r          % %r   r   c                   (   ^  \ rS rSrU 4S jrSrU =r$ )obj2"   c                 *   > [         [        U ]  5         g r   )r   r+   r   r   s    r   r   obj2.__init__#   r   r   r    r!   r(   s   @r   r+   r+   "   r)   r   r+   c                       \ rS rSr\rS rSrg)obj3&   c                 T    [         R                  [         U 5      R                  5         g r   )r0   super_r   r   s    r   r   obj3.__init__(   s    D$((*r   r    N)r"   r#   r$   r%   r   r3   r   r&   r    r   r   r0   r0   &   s    F+r   r0   c                  h   [        [        5       SS9(       d   e[        [        5       SSS9(       d   e[        [        5       SS9(       d   e[        [        5       5      (       d   e[        [        5       SS9(       d   e[        [        5       SSS9(       d   e[        [        5       SS9(       d   e[        [        5       5      (       d   e[        [        5       SS9(       d   e[        [        5       SSS9(       d   e[        [        5       SS9(       d   e[        [        5       5      (       d   eg NT)r   r   r   )r   r   r+   r0   r    r   r   
test_superr9   ,   s    d###dD111%%%<<<d###dD111%%%<<<d###dD111%%%<<<r   c                     g r   r    )models    r   get_triggerr<   =   s    r   c                       \ rS rSrS rSrg)Machine@   c                     [        5       U l        [        [        U 5      U l        [        [        U R                  5      U R                  l        g r   )Modelchildr   r<   triggerr4   s    r   r   Machine.__init__A   s0    W
{D1$[$**=

r   )rB   rC   N)r"   r#   r$   r%   r   r&   r    r   r   r>   r>   @   s    >r   r>   c                       \ rS rSrSrg)rA   F   r    N)r"   r#   r$   r%   r&   r    r   r   rA   rA   F   s    r   rA   c                      [        [        5       SS9(       d   e[        [        5       SSS9(       d   e[        [        5       SS9(       d   e[        [        5       5      (       d   eg r7   )r   r>   r    r   r   test_partialrH   K   sJ    	&&&	t444	4(((	???r   c                        \ rS rSrS rS rSrg)Machine2R   c                 :    [        U R                  U 5      U l        g r   )r   membergor4   s    r   r   Machine2.__init__S   s    $++t,r   c                     g r   r    )r   r;   s     r   rM   Machine2.memberU   s    r   )rN   N)r"   r#   r$   r%   r   rM   r&   r    r   r   rJ   rJ   R   s    -r   rJ   c                   (   ^  \ rS rSrU 4S jrSrU =r$ )
SubMachineY   c                 *   > [         [        U ]  5         g r   )r   rS   r   r   s    r   r   SubMachine.__init__Z   s    j$(*r   r    r!   r(   s   @r   rS   rS   Y   s    + +r   rS   c                      [        [        5       SS9(       d   e[        [        5       SSS9(       d   e[        [        5       SS9(       d   e[        [        5       5      (       d   eg r7   )r   rS   r    r   r   test_partialsrX   ^   sM    
D)))
D$777
d+++
r   c                   (   ^  \ rS rSrU 4S jrSrU =r$ )obj4e   c                 p   >^^ [         [        U ]  5         U m " UU4S jS[        5      mT" 5       U l        g )Nc                   .   >^  \ rS rSrU UU4S jrSrU =r$ )obj4.__init__.<locals>.obj5i   c                 0   > [         TU ]  5         TU l        g r   )r   r   a)r   r   ra   obj5s    r   r   $obj4.__init__.<locals>.obj5.__init__j   s    dD*,r   )ra   r!   )r   ra   rb   s   @r   rb   r^   i   s     r   rb   )r   rZ   r   objectb)r   ra   rb   r   s    @@r   r   obj4.__init__f   s1    dD"$	 	6 	 r   )re   r!   r(   s   @r   rZ   rZ   e   s     r   rZ   c                     [        [        5       5      (       d   e[        R                  " [        R                  " [        5       5      5      n [        U 5      [        U 5      R                  R                  S   R                  L d   e[        U R                  5      [        U R                  5      R                  R                  S   R                  L d   eg )Nr   )
r   rZ   r
   loadsdumpstyper   __closure__cell_contentsre   )	obj4_copys    r   test_circular_referencern   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                     ^  U 4S jm T $ )Nc                     > T $ r   r    gs   r   rr   f.<locals>.gx   s    xr   r    rq   s   @r   frt   w   s    Hr   c                  8    [        [        5       5      (       d   eg r   )r   rt   r    r   r   test_function_cellsrv   }   s    999r   c                 \    U S:  d   eU S::  a  U $ [        U S-
  5      [        U S-
  5      -   $ )Nr         )fib)ns    r   rz   rz      s4    6M6Av1Q3x#ac(""r   c                      [        [        SS9n [        [        5      n[        nBU " S5      S:X  d   eX4 H  n U" S5        [        S5      e   Uqg ! [         a     M)  f = f)NTr8      z&Function fib shouldn't have been found)r   rz   r   r   )fib2fib3fib4_fibs       r   test_recursive_functionr      sq    T"D9DD7a<<	KG
 !!IJJ  C  		s   A
A A c                  "   ^ 0 mU4S jn U TS'   U $ )Nc                     > T $ r   r    )ds   r   rr   (collection_function_recursion.<locals>.g   s    r   rr   r    )rr   r   s    @r   collection_function_recursionr      s    
AAcFHr   c                  H    [        [        5       5      n U " 5       S   U L d   eg )Nrr   )r   r   rq   s    r   "test_collection_function_recursionr      s"    *,-A3s8q==r   __main__r	   )FF)r
   	functoolsr   r   r   rd   r   r+   r0   r9   r<   r>   rA   rH   rJ   rS   rX   rZ   rn   rt   rv   rz   r   r   r   r"   catch_warningsr   r    r   r   <module>r      s     <"%6 %%6 %+6 +"	>f >	F 	
v + +
6 X#$
 z		 	 	"g&!!*, 
#	" 	"	"s   $AC22
D 