
    e!h              
          d dl Z d dlmZmZmZ d dlmZmZmZm	Z	m
Z
mZmZ d dlmZmZmZ d dlmZ d dlmZ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)LokyBackendMultiprocessingBackendThreadingBackend)BACKENDSDEFAULT_BACKENDEXTERNAL_BACKENDSParalleldelayedparallel_backendparallel_config)npwith_multiprocessing
with_numpy)check_memmap)parametrizeraises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      _/var/www/html/diagnosisapp-backend/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$   "   sg    +  ,e%U^ 	Ehj113CDDD	E e$	E 	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>:   s     K1#gl#A&K   !
   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...	// /	/ 	// /s#   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>H   s     Oq'','*Or5   r6   )
r   r	   r   r   r   r)   r   	TypeErrorr   r7   r;   s     r   (test_parallel_config_params_explicit_setrF   >   s     
aV	D PQ{tD 	Pajj+66688q= = 	)FG PORYY5E5Eb5I4JQ4NOOP	PP PP P	P 	PP Ps:   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   K   sZ     

UG+@"A	B 0w/0 	J	 	 	 s   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        t        t        d      5  t        t        t           d      5  	 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   fxY w# 1 sw Y   jxY w# 1 sw Y   BxY w# 1 sw Y   y xY w)Nz'only supported when backend is not NonerB   r'   inner_max_num_threads)backend_paramz'only supported when backend is a string)backendrP   )r   rK   r   r   r   r!   r"   r   'test_parallel_config_constructor_paramsrR   T   s     

"K	L 15 		 

"K	L 1- 		 

"K	L Xo%>aP 		 	 	 
	 	 
	 	 si   B*BB*CB6C2CCCB'	#B**B36B?	;CCC	CC#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   rQ   d   )verbose)	r   r	   r   r   r   r   r)   r   rW   )r=   s    r   test_parallel_config_nestedrX   d   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rQ   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   rQ   s     r   1test_threadpool_limitation_in_child_context_errorr\   z   s.     
&L	M 2q12 2 2s   &/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&   rQ   r)   rT   rU   r	   r)   )r   r=   default_n_jobss      r   test_parallel_n_jobs_nonera      s     
Q	/ !T" 	!a88q= =	!! 
	% .!**T" 	.a88~---	.. .	! 	!! !	. 	.. .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      ss    
 
Q	/ %[6 	% %qxx1}$}%	%% %% %	% 	%% %s7   A%AAAA%AAA"	A%%A.) r9   joblib._parallel_backendsr   r   r   joblib.parallelr   r   r   r	   r
   r   r   joblib.test.commonr   r   r   joblib.test.test_parallelr   joblib.testingr   r   r   r$   r>   rF   rL   rR   rX   r\   ra   rc   r!   r"   r   <module>ri      so   	 
   D C 2 . Y*:;<6 =6 Y*:;<	% =	% 
/  
/ P  P Wx+, - !, %;%=?O?QR Y*:;<2 =	  2
 Y*:;<
. =
. Y*:;<% =%r"   