
    h                         S SK r S SKrS SKrS\R                  S'   S rS rSS jrSS jrS\l        \	" S	5        S q
\ R                  " S5      S
 5       rS rS rS rS r\S:X  a  \" 5         \" 5         \" 5         gg)    NTrecursec                     U $ N )as    S/home/james-whalen/.local/lib/python3.13/site-packages/dill/tests/test_functions.py
function_ar	      s    H    c                 
    X-   $ r   r   )bb1s     r   
function_br      	    6Mr
   c                 
    X-   $ r   r   )cc1s     r   
function_cr      r   r
   c                     X-   U-   $ )z
doc stringr   )dd1d2s      r   
function_dr      s    6B;r
   za modulezE
def function_e(e, *e1, e2=1, e3=2):
    return e + sum(e1) + e2 + e3c                      [         U -  q [         $ r   )	globalvar)xs    r   function_with_cacher   '   s     NIr
   c                     ^   U 4S j$ )Nc                     > T $ r   r   values   r   <lambda>3function_with_unassigned_variable.<locals>.<lambda>1   s    Er
   r   r   s   @r   !function_with_unassigned_variabler#   .   s    r
   c                       " S S5      n SS K nSS KnU " 5       nUR                  " U5      nUR                  5       UL d   eg )Nc                       \ rS rSrS rSrg)test_issue_510.<locals>.Foo7   c                 6    S nUR                  U 5      U l        g )Nc                     U $ r   r   )selfs    r   f20test_issue_510.<locals>.Foo.__init__.<locals>.f29   s    #r
   )__get__r+   )r*   r+   s     r   __init__$test_issue_510.<locals>.Foo.__init__8   s    $**T*r
   )r+   N)__name__
__module____qualname____firstlineno__r.   __static_attributes__r   r
   r   Foor&   7   s    	+r
   r5   r   )dillpickletoolscopyr+   )r5   r6   r7   ff1s        r   test_issue_510r;   4   s7    + + A	1B557b==r
   c                  `   [         R                  " [        5      n [         R                  " U 5      " S5      S:X  d   e[         R                  " [        5      n[         R                  " U5      " SS5      S:X  d   e[         R                  " [
        5      n[         R                  " U5      " S5      S:X  d   e[         R                  " U5      " SS5      S:X  d   e[         R                  " [        5      n[         R                  " U5      R                  [        R                  :X  d   e[         R                  " U5      R                  [        R                  :X  d   e[         R                  " U5      " SS5      S:X  d   e[         R                  " U5      " SSS5      S:X  d   e[         R                  " U5      " SSSS9S:X  d   e[        S5        Sn[         R                  " [        5      n[        S5      S:X  d   e[        S5      S:X  d   e[        S5      S:X  d   e[        S5      S:X  d   e[        5       n[         R                  " [         R                  " U5      5      nS[        UR                  S   5      ;   d   e U" 5         [        S	5      e! [         a     Of = f[        S
5        g )Nr                  )r   emptyz&cell_copy() did not read an empty cella_  
dumped_func_e = dill.dumps(function_e)
assert dill.loads(dumped_func_e)(1, 2) == 6
assert dill.loads(dumped_func_e)(1, 2, 3) == 9
assert dill.loads(dumped_func_e)(1, 2, e2=3) == 8
assert dill.loads(dumped_func_e)(1, 2, e2=3, e3=4) == 10
assert dill.loads(dumped_func_e)(1, 2, 3, e2=4) == 12
assert dill.loads(dumped_func_e)(1, 2, 3, e2=4, e3=5) == 15)r6   dumpsr	   loadsr   r   r   __doc__r1   r   r#   str__closure__AssertionError	Exceptionexec)dumped_func_adumped_func_bdumped_func_cdumped_func_dr   dumped_func_cache
empty_cell	cell_copys           r   test_functionsrR   C   s5   JJz*M::m$Q'1,,,JJz*M::m$Qq)Q...JJz*M::m$Q'1,,,::m$Q*a///JJz*M::m$,,
0B0BBBB::m$//:3H3HHHH::m$Q*a///::m$Q1-222::m$Qa0A555I

#67q!Q&&&q!Q&&&q!Q&&&q!Q&&&24J

4::j12Ic)//23333G
 EFF	   	 
? @s   J 
J! J!c            	        ^ SS K n SSKJnJnJnJn  [        R                  nU R                  S[        S9  [        USS5      nU R                  (       a  U R                  S	 U Vs0 s H  ow[        USU-   5      _M     snmTR                  SS5        TR                  S	U5        TR                  S
S5        TR                  STS   5        TR                  SS5        TR                  SS 5        TR                  SS 5        U HC  u  pn
[        U4S jU
R                  5        5       5      n U" U6   US:  a  U" TS	   /UQ76   MC  ME     g s  snf ! [         a   n[        SR!                  U5      5      UeS nAff = f)Nr   )ALL_CODE_PARAMSCODE_PARAMSCODE_VERSION_create_codeignore)category	co_lnotabr
   co_posonlyargcountlnotab	linetablequalnamenameexceptiontableendlinetablecolumntablec              3   .   >#    U  H
  nTU   v   M     g 7fr   r   ).0pfieldss     r   	<genexpr>#test_code_object.<locals>.<genexpr>   s     71VAYs   )r?   
   z6failed to construct code object with format version {})warnings
dill._dillrT   rU   rV   rW   r   __code__filterwarningsDeprecationWarninggetattrfilters
setdefaulttuplesplitrI   format)rk   rT   rU   rV   rW   codeLNOTABr9   version_paramsargserrorrg   s                @r   test_code_objectr}   q   sm   SSDH/ABT;,FX--a01<=AuQw''=F
'+
h'
k3'
j&.1
&,
nd+
mT*-F777	q$& VH-55 !	 . >  	qT[[\cdekpp	qs   %E.E
E;E66E;__main__)r=   )	functoolsr6   syssettingsr	   r   r   r   r1   rJ   r   	lru_cacher   r#   r;   rR   r}   r0   r   r
   r   <module>r      s      
i  #
   $ % 	
T ,@\q2 z r
   