
    3[g              
          d dl Z d dlmZ d dlmZ d dlmZmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 d d	l	mZ d d
l	mZ d dlmZmZ d dlmZmZ d dlmZ d dlmZ  edeeg      d        Z edeeg      d        Zeed               Zeed               Z edddg      d        Zd Zd Zee eddd e        e       g       edeeg      d                             Z edeeg      d        Z edeeg      d        Zy)     N)parallel_config)parallel_backend)Paralleldelayed)BACKENDS)DEFAULT_BACKEND)EXTERNAL_BACKENDS)LokyBackend)ThreadingBackend)MultiprocessingBackend)parametrizeraises)np
with_numpy)with_multiprocessing)check_memmapcontextc                 &   t               j                  } | d      }	 t        t               j                  t              sJ 	 |j	                          t        t               j                        t        |      u sJ y # |j	                          w xY w)N	threading)r   _backend
isinstancer   
unregistertype)r   defaultpbs      R/var/www/html/bid-api/venv/lib/python3.12/site-packages/joblib/test/test_config.pytest_global_parallel_backendr      sl    j!!G		B(*--/?@@@

##$W555 	s   $A> >Bc                     d }|t         d<   	  | d      5  t        t               j                  t              sJ 	 d d d        t         d= y # 1 sw Y   xY w# t         d= w xY w)Nc                      t         t        d<   y )Nfoo)r   r        r   register_fooz,test_external_backends.<locals>.register_foo#   s    *r"   r    )r	   r   r   r   r   )r   r#   s     r   test_external_backendsr$   !   s[    +  ,e%U^hj113CDDD  e$ ^ e$s!   A %AA AA 	A!c                    t        dd|       5  t        d      5 }t        |j                  t              sJ |j
                  dk(  sJ  |d t        j                  j                  d      gdz  D               t        t        j                  |             dkD  sJ 	 d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)	N      n_jobs
max_nbytestemp_folder	processes)preferc              3   F   K   | ]  } t        t              |        y wNr   r   .0as     r   	<genexpr>z2test_parallel_config_no_backend.<locals>.<genexpr>9   s      K0J1#gl#A&0J   !
   r   )r   r   r   r   r
   r)   r   randomlenoslistdirtmpdirps     r   test_parallel_config_no_backendr>   .   s    
 
aV	D[)Qajj+66688q= = K1A1A"1E0F0JKKrzz&)*Q... * 
E	D)) 
E	Ds#   B;BB/B;/B8	4B;;Cc           	         t        dd|       5  t        ddd      5 }t        |j                  t              sJ |j
                  dk(  sJ t        t        d	      5   |d
 t        j                  j                  d      gdz  D               d d d        d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)N   r'   r(   r&   r,   1M)r)   r-   r*   zExpected np.memmap instancematchc              3   F   K   | ]  } t        t              |        y wr/   r0   r1   s     r   r4   z;test_parallel_config_params_explicit_set.<locals>.<genexpr>G   s      O4Nq'','*4Nr5   r6   )
r   r   r   r   r
   r)   r   	TypeErrorr   r7   r;   s     r   (test_parallel_config_params_explicit_setrF   =   s     
aV	DQ{tDajj+66688q= = 	)FGORYY5E5Eb5I4JQ4NOO H E 
E	D HG ED 
E	Ds:   B??B31B'B3B?'B0,B33B<	8B??Cparamr-   requirec                     t        t        |  d      5  t        di | di5  t                d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nz=wrong is not a validrB   wrongr!   )r   
ValueErrorr   r   )rG   s    r   test_parallel_config_bad_paramsrL   J   sJ     

UG+@"A	B0w/0J 1 
C	B00 
C	Bs   A?AA	AAc                  $   t        t        d      5  t        d      5  	 d d d        d d d        t        t        d      5  t        d      5  	 d d d        d d d        y # 1 sw Y   BxY w# 1 sw Y   FxY w# 1 sw Y   *xY w# 1 sw Y   y xY w)Nz'only supported when backend is not NonerB   r'   inner_max_num_threads)backend_param)r   rK   r   r!   r"   r   'test_parallel_config_constructor_paramsrQ   S   sq     

"K	L15 6 
M 

"K	L1- . 
M	L 65 
M	L
 .- 
M	LsE   A.A"A.BA:B"A+	'A..A7:B	?BBc                     t        d      5  t               } t        | j                  t        t
                 sJ | j                  dk(  sJ 	 d d d        t        d      5  t        d      5  t               } t        | j                  t              sJ | j                  dk(  sJ 	 d d d        d d d        t        d      5  t        d      5  t               } | j                  dk(  sJ | j                  dk(  sJ 	 d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   uxY w# 1 sw Y   yxY w# 1 sw Y   6xY w# 1 sw Y   y xY w)Nr&   r)   r   backendd   )verbose)	r   r   r   r   r   r   r)   r   rW   )r=   s    r   test_parallel_config_nestedrX   _   s     
	"J!**h&?@@@xx1}} 
#
 
	-A&
Aajj*:;;;88q= = ' 
. 
	%A&
A99###88q= = ' 
&	% 
#	" '& 
.	- '& 
&	%sS   ?D!D'.8D'D'D?-D3>D?DD$	 D''D03D<	8D??ErU   multiprocessingr   c                 d    t        t        d      5   | |d       d d d        y # 1 sw Y   y xY w)Nz#does not acc.*inner_max_num_threadsrB   r'   rN   )r   AssertionError)r   rU   s     r   1test_threadpool_limitation_in_child_context_errorr\   u   s&     
&L	Mq1 
N	M	Ms   &/c                 r    | dd      5  t        d       5 }|j                  dk(  sJ 	 d d d        d d d         | d      5  t               j                  }t        d       5 }|j                  |k(  sJ 	 d d d        d d d        y # 1 sw Y   _xY w# 1 sw Y   cxY w# 1 sw Y   *xY w# 1 sw Y   y xY w)Nr   r&   rU   r)   rS   rT   r   r)   )r   r=   default_n_jobss      r   test_parallel_n_jobs_nonera      s     
Q	/T"a88q= = # 
0 
	%!**T"a88~--- # 
&	% #" 
0	/ #" 
&	%sE   BB	B!B-%B!8B-	B	BB!B*	&B--B6c                      | dd      5   | dd       5  t               5 }|j                  dk(  sJ 	 d d d        d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nr   r&   r^   r'   r_   )r   r=   s     r    test_parallel_config_n_jobs_nonerc      s[    
 
Q	/[6qxx1}$}  7 
0	/  76 
0	/s7   A%AAAA%AAA"	A%%A.) r9   joblib.parallelr   r   r   r   r   r   r	   joblib._parallel_backendsr
   r   r   joblib.testingr   r   joblib.test.commonr   r   r   joblib.test.test_parallelr   r   r$   r>   rF   rL   rQ   rX   r\   ra   rc   r!   r"   r   <module>ri      sp   	 + , - $ + - 1 6 < . - 3 2 Y*:;<6 =6 Y*:;<	% =	% 
/  
/ P  P Wx+, -	!, Y*K/13C3EG HY*:;<2 =H  
2 Y*:;<
. =
. Y*:;<% =%r"   