
    L\c                        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             dS dS )    NTrecursec                     | S N )as    9lib/python3.11/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 )NFc                       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    MMMr
   c                       G d d          } dd l }dd l} |             } |j        |          }|                                |u sJ d S )Nc                       e Zd Zd ZdS )test_issue_510.<locals>.Fooc                 @    d }|                     |           | _        d S )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
   r0   r   )dillpickletoolscopyr*   )r0   r1   r2   ff1s        r   test_issue_510r6   4   s|    + + + + + + + + A	1B5577b=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
           d S )Nr   r               )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)r1   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   s   Jz**M$4:m$$Q''1,,,,Jz**M$4:m$$Qq))Q....Jz**M$4:m$$Q''1,,,,$4:m$$Q**a////Jz**M:m$$,
0BBBBB:m$$/:3HHHHH$4:m$$Q**a////$4:m$$Q1--2222$4:m$$Qa000A5555I
#677q!!Q&&&&q!!Q&&&&q!!Q&&&&q!!Q&&&&244J
4:j1122Ic)/2333333G	
 EFFF	     	 
? @ @ @ @ @s   
J 
J+*J+c                    
 ddl m} m}m}m} t
          j        
t          
dd          }
fd|D                                 dd                               d|                               dd                               d	d
                                        dd                               dd                                dd            | D ]\  }}}t          fd|
                                D                       }	  ||  |dk    r |d         g|R   O# t          $ r(}	t          d                    |                    |	d }	~	ww xY wd S )Nr   )ALL_CODE_PARAMSCODE_PARAMSCODE_VERSION_create_code	co_lnotabr
   c                 8    i | ]}|t          d |z             S )co_)getattr).0r4   codes     r   
<dictcomp>z$test_code_object.<locals>.<dictcomp>u   s)    ===AauQw''===r
   posonlyargcountlnotab	linetablequalnamenameexceptiontableendlinetablecolumntablec              3   (   K   | ]}|         V  d S r   r   )rV   pfieldss     r   	<genexpr>z#test_code_object.<locals>.<genexpr>   s'      771VAY777777r
   )r9   
   z6failed to construct code object with format version {})
dill._dillrN   rO   rP   rQ   r   __code__rU   
setdefaulttuplesplitrC   format)rN   rO   rP   rQ   LNOTABversion_paramsargserrorrW   rc   s             @@r   test_code_objectrr   q   s   SSSSSSSSSSSSDT;,,F=======F
'+++
h'''
k3'''
j&.111
&,,,
nd+++
mT***- q qF777777777	qL$&  6VH-55555 	q 	q 	qT[[\cddeekpp	qq qs   D++
E5#EE__main__)r   )	functoolsr1   syssettingsr	   r   r   r   r.   rD   r   	lru_cacher   r#   r6   rL   rr   r-   r   r
   r   <module>rx      sW        



i            #
   $ % % % 	T      ,@ ,@ ,@\q q q, z NN r
   