
    .Phb$                     t   d Z ddlZddlmZmZmZmZmZ ddlm	Z	 ddl
mZ ddlmZmZmZ ddZd Zdd	ZddZd Zd Zd ZdddZ ed          d             Z G d de          Z edeg dgd
ddfedgdgddifedgdgddifedgddd
igddifeddgdgi feg ddd
igdd
dfedgddd
dgddifeg ddd
igdd
ifeg dgddifg	          d              Zd! Z edeg dgd
dg i d"feg d#gd
ddd$gi d"feg d%d&digd
d'g d&did"fed(gd)d&digd
dd&did*fg          d+             Zeg dddigd
ddfeg dddigd
ddd,fgZ edeg d-d&digd
dgd&did.feg d/gdd$gi d.fgez             d0             Zd1 Z  ed2ed3fed4fed5fg          d6             Z!d7 Z"d8 Z#d9 Z$d:d;d<d=Z%d>e&d?e&d@dfdAZ'dB Z(dC Z) edDe*dEedFdGgfe*dHedFgdGgfe*dIeg gfg          dJ             Z+dK Z,dL Z- edMe e. e/dN                    gi dOfeg dPddQidRfg          dS             Z0dT Z1edU             Z2dV Z3dW Z4dX Z5dS )Yz
Test the func_inspect module.
    N)_clean_win_charsfilter_argsformat_signatureget_func_codeget_func_name)Memory)
with_numpy)fixtureparametrizeraisesc                     d S N xys     ]/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/joblib/test/test_func_inspect.pyfr          D    c                     d S r   r   r   s    r   gr      r   r   c                     d S r   r   )r   r   argskwargss       r   hr   !   r   r      c                     d S r   r   r   s    r   ir    %   r   r   c                     d S r   r   )r   r   r   s      r   jr"   )   r   r   c                      d S r   r   )r   r   s     r   kr$   -   r   r   c                    d S r   r   r   s     r   m1r&   1   r   r      )zc                    d S r   r   r   r   r(   s      r   m2r+   5   r   r   module)scopec                 x    |                      d          }t          |j                  }|j        d             }|S )Njoblib_test_func_inspectc                     | S r   r   r   s    r   cached_func_innerz&cached_func.<locals>.cached_func_innerA   s    r   )mktempr   strpathcache)tmpdir_factorycachedirmemr1   s       r   cached_funcr8   9   sK    
 $$%?@@H
!
"
"CY  Y r   c                       e Zd Zd ZdS )Klassc                     |S r   r   )selfr   s     r   r   zKlass.fI   s    r   N)__name__
__module____qualname__r   r   r   r   r:   r:   H   s#            r   r:   zfunc,args,filtered_argsr   r   r   r   )r   r      )rA   c                 ,    t          | g|R  |k    sJ d S r   r   funcr   filtered_argss      r   test_filter_argsrG   Q   s+     t#d###}444444r   c                  `    t                      } t          | j        g d          d| dk    sJ d S )Nr@   r   )r   r<   r:   r   r   )objs    r   test_filter_args_methodrK   c   s8    
''Csub$''C+@+@@@@@@@r   )r   r   ***)r   rA   r'      rN   )r      eerO   rL   )r   rA   rO   r   r   rM   c                 ,    t          | g|R  |k    sJ d S r   rC   rD   s      r   test_filter_varargsrS   h   s+     t#d###}444444r   r*   r   rA   rL   rM   r'   rN   c                 ,    t          | g|R  |k    sJ d S r   rC   rD   s      r   test_filter_kwargsrX   {   s+     t#d###}444444r   c                      t          t          g dddi          ddddidk    sJ t          j        t          d          } t          | g d          dgi dk    sJ t          | dgd          dgi dk    sJ d S )	NrT   rP   rA   r   rQ   r@   rU   r   )r   r"   	functoolspartialr   ffs    r   test_filter_args_2r^      s    q"ftQi00!!DRS94U4UUUUU		1a	 	 Br2t$$qc(<(<<<<<rC5$''!B+?+???????r   zfunc,funcnamer   r   r8   c                 <    t          |           d         |k    sJ d S )Nr   r   )rE   funcnames     r   test_func_namerb      s(     q!X------r   c                 <    t          |           d         dk    sJ d S )Nr   r1   r`   )r8   s    r   test_func_name_on_inner_funcrd      s)     %%a(,???????r   c                  f    d } d } |             \  }} |            \  }}||k    sJ ||k    sJ d S )Nc                  &    d } t          |           S )Nc                      d S r   r   r   r   r   
inner_funczEtest_func_name_collision_on_inner_func.<locals>.f.<locals>.inner_func       Fr   r`   rh   s    r   r   z1test_func_name_collision_on_inner_func.<locals>.f   !    	 	 	 Z(((r   c                  &    d } t          |           S )Nc                      d S r   r   r   r   r   rh   zEtest_func_name_collision_on_inner_func.<locals>.g.<locals>.inner_func   ri   r   r`   rj   s    r   r   z1test_func_name_collision_on_inner_func.<locals>.g   rk   r   r   )r   r   r,   nameother_module
other_names         r   &test_func_name_collision_on_inner_funcrq      si    ) ) )) ) ) 133LFD qssL*:\!!!!!!r   c                     t          dj                  d         dk    sJ t          dj                  dd          dk    sJ d } t          | d          d         d	k    sJ t          |           d         t                              d
d          k    sJ d| _        t          | d          d         d	k    sJ t          |           d         t                              d
d          k    sJ d S )Nalowerr   )Nrt   c                     | S r   r   r   s    r   <lambda>z*test_func_inspect_errors.<locals>.<lambda>   s    1 r   F)win_charactersz<lambda>z.pycz.py__main__)r   ru   r   __file__replacer>   r\   s    r   test_func_inspect_errorsr|      s    ##B'72222##ABB':5555	BE22226*DDDDQ8#3#3FE#B#BBBBBBME22226*DDDDQ8#3#3FE#B#BBBBBBBr   kw1kw2r}   r~   c                    d S r   r   rs   br}   r~   s       r   func_with_kwonly_argsr      r   r   rs   r   returnc                     d S r   r   rs   r   s     r   func_with_signaturer      r   r   c                     t          t          g dddd          dddddk    sJ t          t                    5 } t          t          g dd	di           d d d            n# 1 swxY w Y   |                     d
           t          t          dd	gdddd          dddk    sJ t          t
          dgd          ddik    sJ d S )NrT   r'   rN   r   r   rA   r   )r   rA   r'   r~   z?Keyword-only parameter 'kw1' was passed as positional parameterr   )rs   r}   rs   )r   r   r   
ValueErrormatchr   )excinfos    r   test_filter_args_edge_casesr      sS   ,b&!A:N:NOO	T T     

		 Fw)2y5!*EEEF F F F F F F F F F F F F F FMMSTTTU|VQq5I5I 		    *SE6::sAhFFFFFFs   A  A$'A$c                      t                      } t                      }t          | j        g d          t          |j        g d          k    sJ dS )zMake sure that calling the same method on two different instances
    of the same class does resolv to different signatures.
    r@   NrI   r   s     r   test_bound_methodsr      sI     	AAqsB%%QS"d)C)CCCCCCCr   zexception,regex,func,argsz1ignore_lst must be a list of parameters to ignorebarr   z-Ignore list: argument \'(.*)\' is not definedzWrong number of argumentsc                     t          |           5 }t          |g|R   ddd           n# 1 swxY w Y   |                    |           dS )z\Make sure that filter_args returns decent error messages, for the
    sake of the user.
    N)r   r   r   )	exceptionregexrE   r   r   s        r   test_filter_args_error_msgr      s    , 
			 !gD 4    ! ! ! ! ! ! ! ! ! ! ! ! ! ! !MM%s   *..c                  P    ddi} t          t          g g |            | ddik    sJ dS )zNone-regression test against 0.12.0 changes.

    https://github.com/joblib/joblib/pull/75

    Make sure filter args doesn't mutate the kwargs dict that gets passed in.
    r   r   N)r   r   )r   s    r   #test_filter_args_no_kwargs_mutationr     s<     1XF2r6"""c1Xr   c                  >    d} t          |           }dD ]}||vsJ 	d S )NzC:\foo\bar\main.py)\:<>!)r   )stringmangled_stringchars      r   test_clean_win_charsr     sA    "F%f--N* * *>)))))* *r   zfunc,args,kwargs,sgn_expected   zg([0, 1, 2, 3, 4]))r   rA   rV   Tzk(1, 2, (3, 4), y=True)c                 <    t          | g|R i |\  }}||k    sJ d S r   )r   )rE   r   r   sgn_expectedpath
sgn_results         r   test_format_signaturer     s=     (>t>>>v>>D*%%%%%%r   c                     d} d}d| z  t          t                    \  }}t          |          |k     sJ d}fdt          |          D             }t          t          g|R  \  }}t          |          ||z  k     sJ d t	          |          D             }t          t          fi |\  }}t          |          ||z  k     sJ t          t          g|R i |\  }}t          |          |dz  |z  k     sJ d S )Ni  i  rs   r   c                     g | ]}S r   r   ).0_args     r   
<listcomp>z8test_format_signature_long_arguments.<locals>.<listcomp>.  s    (((AC(((r   c                 4    i | ]\  }}t          |          |S r   )str)r   r    r   s      r   
<dictcomp>z8test_format_signature_long_arguments.<locals>.<dictcomp>2  s$    888fac!ffc888r   rA   )r   r   lenrange	enumerate)shortening_thresholdshortening_targetr   	signaturenb_argsr   r   r   s          @r   $test_format_signature_long_argumentsr   "  s9    !
$
$C#As++LAyy>>-----G((((w(((D#A----LAyy>>-7777788	$888F#A0000LAyy>>-77777#A777777LAyy>>-1G;;;;;;;r   c                      dS )z0Test the format signature formatting with numpy.Nr   r   r   r   test_format_signature_numpyr   :  s      r   c                  `    ddl m}  t          |           \  }}}|dk    sJ d|v sJ d|v sJ d S )Nr   big5_fr   zdef big5_f():"test_func_inspect_special_encoding.joblib.test.test_func_inspect_special_encodingr   r   )r   	func_codesource_file
first_lines       r   test_special_source_encodingr   ?  s]    EEEEEE)6v)>)>&I{J????i''''/;>>>>>>r   c                  8    ddl m}  t          |           d         S )Nr   r   r   r   s    r   	_get_coder   H  s'    EEEEEE  ##r   c                      ddl m} m   | d          fdt          d          D                       }t	          t          |                    dk    sJ d S )Nr   )ParalleldelayedrA   )n_jobsc              3   H   K   | ]}  t                                 V  d S r   )r   )r   r   r   s     r   	<genexpr>z-test_func_code_consistency.<locals>.<genexpr>Q  s6      FF1wwy1133FFFFFFr   r   r   )joblib.parallelr   r   r   r   set)r   codesr   s     @r   test_func_code_consistencyr   N  su    11111111HHAFFFFU1XXFFFFFEs5zz??ar   )6__doc__rZ   joblib.func_inspectr   r   r   r   r   joblib.memoryr   joblib.test.commonr	   joblib.testingr
   r   r   r   r   r   r    r"   r$   r&   r+   r8   objectr:   rG   rK   rS   test_filter_kwargs_extra_paramsrX   r^   rb   rd   rq   r|   r   intr   r   r   r   r   r   r   listr   r   r   r   r   r   r   r   r   r   <module>r      sg                     !           ) ) ) ) ) ) 7 7 7 7 7 7 7 7 7 7
	 	 	 		 	 		 	 	 		 	 	 		 	 		 	 		 	 	  	 	 	 	 	 	x      F    	
RJaa(()	
cUDMC8$	
cUDMC8$	
cUD3(#c1X.	
c3Z#	
RQx "2"23	
cUBaa(()C84	
Rc1Xa)	
RJa!
 5 5 5A A A
 	
RJaab;;<	
Raaq!fB G GH	
R4)$ABRay&Q&QR	
cUJq	*!!D!9,M,MN	 5 5 5
 "dS!H	QQ//0"dS!H	QQQ778#  	
R$#Aq6$%C%CD	
RLAb112 &	& 5 5 5@ @ @ _3x!SK3OPQQ. . RQ.@ @ @" " ",
C 
C 
C (-% 	 	 	 	 		3 	3 	4 	 	 	 	G G G*D D D  ?G		
 <Wg		
 
0!bT: $ % $	 	 	* * * #	
TT%%((^^b"67	
NNNS$K)BC & & &< < <0 ; ; ;? ? ?$ $ $         r   