
    e!hb$                        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 Z5y)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                      y N xys     e/var/www/html/diagnosisapp-backend/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&   1   r   r      )zc                     y r   r   r   r   r(   s      r   m2r+   5   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_innerA   s    r   )mktempr   strpathcache)tmpdir_factorycachedirmemr1   s       r   cached_funcr8   9   sC    
 $$%?@H
!!
"CYY  r   c                       e Zd Zd Zy)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| |k(  sJ y r   r   funcr   filtered_argss      r   test_filter_argsrG   Q   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   c   s)    
'Csuub$'C+@@@@r   )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   h   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   {   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{    q"ftQi0!!DRS94UUUU			1a	 Br2t$qc(<<<<rC5$'!B+????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    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#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    ,b&!A:NO	T    

	 Fw)2y5!*EFMMSTU|VQq5I	   *SE6:sAhFFFF Fs   BBc                      t               } t               }t        | j                  g d      t        |j                  g d      k7  sJ y)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      s:     	AAqssB%QSS"d)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|  ddd       j                  |       y# 1 sw Y   xY w)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   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$8fac!fck8F8#A00LAyy>-7777#A777LAyy>-1G;;;; ) 9s   	C';C,c                       y)z0Test 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   H  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>Q  s     F1wy13Fs   r   r   )joblib.parallelr   r   r   r   set)r   codesr   s     @r   test_func_code_consistencyr   N  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     ! ) 7 7
							  	 	x F  	
RJaa()	
cUDMC8$	
cUDMC8$	
cUD3(#c1X.	
c3Z#	
RQx "23	
cUBaa()C84	
Rc1Xa)	
RJa!
55A
 	
RJaab;<	
Raaq!fB GH	
R4)$ABRay&QR	
cUJq	*!!D!9,MN	55
 "dS!H	QQ/0"dS!H	QQQ78#  	
R$#Aq6$%CD	
RLAb12 &	&55@ _3x!SK3OPQ. R.@",
C (-% 		3 	3 	4 	G*D  ?G		
 <Wg		
 
0!bT:$%$	* #	
T%(^b"67	
NS$K)BC&&<0 ; ;?$ r   