
    Ug%                     |   d Z ddlZddlmZmZmZ ddl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 d0gdd%gi d/fgez             d1             Zd2 Z  ed3ed4fed5fed6fg          d7             Z!d8 Z"d9 Z#d: Z$d;d<d=d>Z%d?e&d@e&dAdfdBZ'dC Z(dD Z) edEe*dFedGdHgfe*dIedGgdHgfe*dJeg gfg          dK             Z+dL Z,dM Z- edNe e. e/dO                    gi dPfeg dQddRidSfg          dT             Z0dU Z1edV             Z2dW Z3dX Z4dY Z5dS )Zz
Test the func_inspect module.
    N)filter_argsget_func_nameget_func_code)_clean_win_charsformat_signature)Memory)
with_numpy)fixtureparametrizeraisesc                     d S N xys     \/var/www/surfInsights/venv3-11/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&   ,   r   r      )zc                    d S r   r   r   r   r(   s      r   m2r+   0   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_inner<   s    r   )mktempr   strpathcache)tmpdir_factorycachedirmemr1   s       r   cached_funcr8   4   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.fE   s    r   N)__name__
__module____qualname__r   r   r   r   r:   r:   C   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   L   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   Z   s8    
''Csub%((!S,A,AAAAAAAr   )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   _   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   r   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    2vay11!D!9--. . . . 
	1a	 	 Br2u%%s")=)=====rC5%((1#R,@,@@@@@@@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      sZ   )2va((	* 	*a!,,	- 	- 	- 	- 

		 Fw)2y5!*EEEF F F F F F F F F F F F F F FMM     	)C<a((	* 	*	 	 	 	 +cUF;;QxGGGGGGs   A  A$'A$c                      t                      } t                      }t          | j        g d          t          |j        g d          k    sJ dS )z Make 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&&+ac2u*E*EEEEEEEr   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 )za 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>  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 )z6 Test 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   .  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>5  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   3  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      so        I I I I I I I I I I B B B B B B B B             ) ) ) ) ) ) 7 7 7 7 7 7 7 7 7 7
	 	 	 		 	 		 	 	 		 	 	 		 	 		 	 		 	 	  	 	 	 	 	 	x      F    &2u+QQ//0C5%.3(+C5%.3(+C5%#q*S!H5C:u%r*2tc1X&aa(8(89C5"AA../#q:2rC8$sAh/2u+Qx(*	+ 	+5 5	+ 	+5B B B
 &2u+QRr2242|$QaV26682wq	*Rbq	::<C5*tQi0QtQi00234 45 54 45
 "dS!H	QQ//0"dS!H	QQQ778#  &2vay)VD!9--/2v,V2&&() -	-. .5 5. .5A A A _3x!S +];= > >. .> >.@ @ @" " "(
C 
C 
C (-% 	 	 	 	 		3 	3 	4 	 	 	 	I I I*F F F (N5(#%KE7H%'62$	   	 	 	* * * ,44a>>"B(<=...3+/HIKL L& &L L&< < <0   
? ? ?$ $ $
         r   