
    3[g%                        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 Z5y)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                      y N xys     X/var/www/html/bid-api/venv/lib/python3.12/site-packages/joblib/test/test_func_inspect.pyfr              c                      y r   r   r   s    r   gr      r   r   c                      y r   r   )r   r   argskwargss       r   hr      r   r      c                      y r   r   r   s    r   ir        r   r   c                      y r   r   )r   r   r   s      r   jr"   $   r   r   c                       y r   r   )r   r   s     r   kr$   (   r   r   c                     y r   r   r   s     r   m1r&   ,   r   r      )zc                     y r   r   r   r   r(   s      r   m2r+   0   r   r   module)scopec                 v    | j                  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   sC    
 $$%?@H
!!
"CYY  r   c                       e Zd Zd Zy)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| |k(  sJ y r   r   funcr   filtered_argss      r   test_filter_argsrG   L   s     t#d#}444r   c                  V    t               } t        | j                  g d      d| dk(  sJ y )Nr@   r   )r   r<   r:   r   r   )objs    r   test_filter_args_methodrK   Z   s)    
'Csuub%(!S,AAAAr   )r   r   ***)r   rA   r'      rN   )r      eerO   rL   )r   rA   rO   r   r   rM   c                 &    t        | g| |k(  sJ y r   rC   rD   s      r   test_filter_varargsrS   _   s     t#d#}444r   r*   r   rA   rL   rM   r'   rN   c                 &    t        | g| |k(  sJ y r   rC   rD   s      r   test_filter_kwargsrX   r   s     t#d#}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 y )	NrT   rP   rA   r   rQ   r@   rU   r   )r   r"   	functoolspartialr   ffs    r   test_filter_args_2r^   |   s    2vay1!D!9-. / . 
		1a	 Br2u%s")====rC5%(1#R,@@@@r   zfunc,funcnamer   r   r8   c                 *    t        |       d   |k(  sJ y )Nr   r   )rE   funcnames     r   test_func_namerb      s    
 q!X---r   c                 *    t        |       d   dk(  sJ y )Nr   r1   r`   )r8   s    r   test_func_name_on_inner_funcrd      s     %a(,????r   c                  T    d } d } |        \  }} |       \  }}||k(  sJ ||k7  sJ y )Nc                      d } t        |       S )Nc                       y r   r   r   r   r   
inner_funczEtest_func_name_collision_on_inner_func.<locals>.f.<locals>.inner_func       r   r`   rh   s    r   r   z1test_func_name_collision_on_inner_func.<locals>.f       	Z((r   c                      d } t        |       S )Nc                       y 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      sA    )
)
 3LFD s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        j	                  d
d      k(  sJ d| _        t        | d      d   d	k(  sJ t        |       d   t        j	                  d
d      k(  sJ y )Nalowerr   )Nrt   c                     | S r   r   r   s    r   <lambda>z*test_func_inspect_errors.<locals>.<lambda>   s    1r   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#AB':555	BE226*DDDQ8#3#3FE#BBBBBME226*DDDQ8#3#3FE#BBBBr   kw1kw2r}   r~   c                     y r   r   rs   br}   r~   s       r   func_with_kwonly_argsr      r   r   rs   r   returnc                      y r   r   rs   r   s     r   func_with_signaturer      r   r   c                  D   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         j	                  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 y # 1 sw Y   SxY w)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      s    )2va(	*a!,	-.	- 

	w)2y5!*E 
MM   	)C<a(	*		 +cUF;QxGHG 
	s   BBc                      t               } t               }t        | j                  g d      t        |j                  g d      k7  sJ y)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      s:     	AAqssB&+acc2u*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|  ddd       j                  |       y# 1 sw Y   xY w)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      s5     
		gD 4  
MM% 
	s   3<c                  B    ddi} t        t        g g |        | ddik(  sJ y)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                  8    d} t        |       }dD ]  }||vrJ  y )NzC:\foo\bar\main.py)\:<>!)r   )stringmangled_stringchars      r   test_clean_win_charsr      s)    "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                 6    t        | g|i |\  }}||k(  sJ y 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}t        |      D cg c]  }| }}t        t        g| \  }}t        |      ||z  k  sJ t	        |      D ci c]  \  }}t        |      | }}}t        t        fi |\  }}t        |      ||z  k  sJ t        t        g|i |\  }}t        |      |dz  |z  k  sJ y c c}w c c}}w )Ni  i  rs   r   rA   )r   r   lenrange	enumeratestr)	shortening_thresholdshortening_targetarg_	signaturenb_argsr   r    r   s	            r   $test_format_signature_long_argumentsr     s    !
$
$C#As+LAyy>----Gw(ACD(#A--LAyy>-7777(1$8fac!fckF8#A00LAyy>-7777#A777LAyy>-1G;;;; ) 9s   	C';C,c                       y)z6 Test the format signature formatting with numpy.
    Nr   r   r   r   test_format_signature_numpyr      s    r   c                  T    ddl m}  t        |       \  }}}|dk(  sJ d|v sJ d|v sJ y )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)6v)>&I{J??i'''/;>>>r   c                  *    ddl m}  t        |       d   S )Nr   r   r   r   s    r   	_get_coder   .  s    E ##r   c                      ddl m} m   | d      fdt        d      D              }t	        t        |            dk(  sJ y )Nr   )ParalleldelayedrA   )n_jobsc              3   @   K   | ]  }  t                        y wr   )r   ).0r   r   s     r   	<genexpr>z-test_func_code_consistency.<locals>.<genexpr>5  s     FX1wy13Xs   r   r   )joblib.parallelr   r   r   r   set)r   codesr   s     @r   test_func_code_consistencyr   3  s7    1HAFU1XFFEs5z?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      s    I I B   ) 7 7
							  	 	x F  &2u+QQ/0C5%.3(+C5%.3(+C5%#q*S!H5C:u%r*2tc1X&aa(89C5"AA./#q:2rC8$sAh/2u+Qx(*	+5	+5B
 &2u+QRr242|$QaV2682wq	*Rbq	:<C5*tQi0QtQi0234545
 "dS!H	QQ/0"dS!H	QQQ78#  &2vay)VD!9-/2v,V2&() -	-.5.5A _3x!S +];= >.>.@"(
C (-% 		3 	3 	4 	I*F (N5(#%KE7H%'62$		* ,4a>"B(<=.3+/HIKL&L&<0  
?$
 r   