
    bi                         d dl Z d dlZd dlZdej                  d<   d Zd ZddZddZde_         e	d	       d a
 e j                  d      d
        Zd Zd Zd Zd Zedk(  r e         e         e        yy)    NTrecursec                     | S N )as    T/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/dill/tests/test_functions.py
function_ar	      s    H    c                     | |z   S r   r   )bb1s     r   
function_br          r6Mr
   c                     | |z   S r   r   )cc1s     r   
function_cr      r   r
   c                     | |z   |z   S )z
doc stringr   )dd1d2s      r   
function_dr      s    r6B;r
   za modulezE
def function_e(e, *e1, e2=1, e3=2):
    return e + sum(e1) + e2 + e3c                      t         | z  a t         S r   )	globalvar)xs    r   function_with_cacher   '   s     NIr
   c                       	  fdS )Nc                       S r   r   values   r   <lambda>z3function_with_unassigned_variable.<locals>.<lambda>1   s    E r
   r   r   s   @r   !function_with_unassigned_variabler"   .   s    r
   c                       G d d      } dd l }dd l} |        } |j                  |      }|j                         |u sJ y )Nc                       e Zd Zd Zy)test_issue_510.<locals>.Fooc                 6    d }|j                  |       | _        y )Nc                     | S r   r   )selfs    r   f2z0test_issue_510.<locals>.Foo.__init__.<locals>.f29   s    #r
   )__get__r)   )r(   r)   s     r   __init__z$test_issue_510.<locals>.Foo.__init__8   s    $**T*r
   N)__name__
__module____qualname__r+   r   r
   r   Foor%   7   s    	+r
   r/   r   )dillpickletoolscopyr)   )r/   r0   r1   ff1s        r   test_issue_510r5   4   s9    + + A	1B557b==r
   c                  &   t        j                  t              }  t        j                  |       d      dk(  sJ t        j                  t              } t        j                  |      dd      dk(  sJ t        j                  t
              } t        j                  |      d      dk(  sJ  t        j                  |      dd      dk(  sJ t        j                  t              }t        j                  |      j                  t        j                  k(  sJ t        j                  |      j                  t        j                  k(  sJ  t        j                  |      dd      dk(  sJ  t        j                  |      ddd      dk(  sJ  t        j                  |      ddd      dk(  sJ t        d       d}t        j                  t              }t        d      dk(  sJ t        d      dk(  sJ t        d      dk(  sJ t        d      dk(  sJ t               }t        j                  t        j                  |            }dt        |j                  d         v sJ 	  |        t        d	      # t        $ r Y nw xY wt        d
       y )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)r0   dumpsr	   loadsr   r   r   __doc__r-   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_functionsrL   C   sC   JJz*M$4::m$Q'1,,,JJz*M$4::m$Qq)Q...JJz*M$4::m$Q'1,,,$4::m$Q*a///JJz*M::m$,,
0B0BBBB::m$//:3H3HHHH$4::m$Q*a///$4::m$Q1-222$4::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   &I8 8	JJc            	         dd l } ddlm}m}m}m} t        j                  }| j                  dt               t        |dd      }| j                  r| j                  d= |D ci c]  }|t        |d|z          c}j                  dd       j                  d	|       j                  d
d       j                  dd          j                  dd       j                  dd        j                  dd        |D ]?  \  }}	}
t        fd|
j                         D              }	  ||  |dk\  r |d	   g|  A y c c}w # t        $ r }t        dj!                  |            |d }~ww xY w)Nr   )ALL_CODE_PARAMSCODE_PARAMSCODE_VERSION_create_codeignore)category	co_lnotabr
   co_posonlyargcountlnotab	linetablequalnamenameexceptiontableendlinetablecolumntablec              3   (   K   | ]	  }|     y wr   r   ).0pfieldss     r   	<genexpr>z#test_code_object.<locals>.<genexpr>   s     71VAY7s   )r9   
   z6failed to construct code object with format version {})warnings
dill._dillrN   rO   rP   rQ   r   __code__filterwarningsDeprecationWarninggetattrfilters
setdefaulttuplesplitrC   format)rd   rN   rO   rP   rQ   codeLNOTABr3   version_paramsargserrorra   s                @r   test_code_objectrv   q   sp   SSDH/ABT;,FX--a01<=AauQw''=F
'+
h'
k3'
j&.1
&,
nd+
mT*- qF777	q$& VH-55q >  	qT[[\cdekpp	qs   #E*E	E1E,,E1__main__)r7   )	functoolsr0   syssettingsr	   r   r   r   r-   rD   r   	lru_cacher   r"   r5   rL   rv   r,   r   r
   r   <module>r|      s      
i  #
   $ % 	T ,@\q2 z r
   