
    .Ph              
       N   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dS )    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   t                      j        } | d          }	 t          t                      j        t                    sJ 	 |                                 n# |                                 w xY wt          t                      j                  t          |          u sJ d S )N	threading)r	   _backend
isinstancer   
unregistertype)r   defaultpbs      W/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/joblib/test/test_config.pytest_global_parallel_backendr      s    jj!G			B(**-/?@@@@@@


#$$W555555s   (A A4c                     d }|t           d<   	  | d          5  t          t                      j        t                    sJ 	 d d d            n# 1 swxY w Y   t           d= d S # t           d= w xY w)Nc                  $    t           t          d<   d S )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%WU^^ 	E 	Ehjj13CDDDDDD	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E e$$$e$$$$$s.   A% )A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                            d          gdz  D                        t          t          j
        |                     dk    sJ 	 d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )	N      n_jobs
max_nbytestemp_folder	processes)preferc              3   P   K   | ]!} t          t                    |          V  "d S Nr
   r   .0as     r   	<genexpr>z2test_parallel_config_no_backend.<locals>.<genexpr>:   s5      KK1#gl##A&&KKKKKKr"   
   r   )r   r	   r   r   r   r)   r   randomlenoslistdirtmpdirps     r   test_parallel_config_no_backendr=   /   sf   
 
aV	D	D	D / /[))) 	/Qaj+666668q==== AKK1A1A"1E1E0F0JKKKKKKrz&))**Q.....	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	// / / / / / / / / / / / / / / / / /s5   CBB8,C8B<	<C?B<	 CC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	        	                    d          gdz  D                        d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )N   r'   r(   r&   r,   1M)r)   r-   r*   zExpected np.memmap instancematchc              3   P   K   | ]!} t          t                    |          V  "d S r/   r0   r1   s     r   r4   z;test_parallel_config_params_explicit_set.<locals>.<genexpr>H   s5      OOq'',''**OOOOOOr"   r5   )
r   r	   r   r   r   r)   r   	TypeErrorr   r6   r:   s     r   (test_parallel_config_params_explicit_setrE   >   s    
aV	D	D	D P PQ{tDDD 	Paj+666668q==== 	)FGGG P POORY5E5Eb5I5I4JQ4NOOOOOOP P P P P P P P P P P P P P P	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	PP P P P P P P P P P P P P P P P P PsY   CA C &7B)C )B--C 0B-1C 4C C	CC	CCCparamr-   requirec                     t          t          |  d          5  t          di | di5  t                       d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nz=wrong is not a validrA   wrongr!   )r   
ValueErrorr   r	   )rF   s    r   test_parallel_config_bad_paramsrK   K   s     

U"A"A"A	B	B	B  00w/00 	 	JJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	                 s3   AAAA	AA	AA #A c                  4   t          t          d          5  t          d          5  	 d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          t          d          5  t          d          5  	 d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          t          d          5  t          t          t                   d          5  	 d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nz'only supported when backend is not NonerA   r'   inner_max_num_threads)backend_paramz'only supported when backend is a string)backendrO   )r   rJ   r   r   r   r!   r"   r   'test_parallel_config_constructor_paramsrQ   T   s    

"K	L	L	L  1555 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	               

"K	L	L	L  1--- 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	               

"K	L	L	L  Xo%>aPPP 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	                 s   A6A:	A:	AAA.B$?BB$B	B$B	B$$B(+B("D'C5)D5C9	9D<C9	=DDDc                     t          d          5  t                      } t          | j        t          t
                             sJ | j        dk    sJ 	 d d d            n# 1 swxY w Y   t          d          5  t          d          5  t                      } t          | j        t                    sJ | j        dk    sJ 	 d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          d          5  t          d          5  t                      } | j        dk    sJ | j        dk    sJ 	 d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nr&   r)   r   rP   d   )verbose)	r   r	   r   r   r   r   r)   r   rV   )r<   s    r   test_parallel_config_nestedrW   d   s    
	"	"	"  JJ!*h&?@@@@@x1}}}}}              
 
	-	-	- ! !A&&& 	! 	!

Aaj*:;;;;;8q=====	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!! ! ! ! ! ! ! ! ! ! ! ! ! ! ! 
	%	%	% ! !A&&& 	! 	!

A9####8q=====	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !s~   AA!!A%(A%<C)8CC)C	C)C	C))C-0C-E#)E?E#E	E#E	E##E'*E'rP   multiprocessingr   c                 ~    t          t          d          5   | |d           d d d            d S # 1 swxY w Y   d S )Nz#does not acc.*inner_max_num_threadsrA   r'   rM   )r   AssertionError)r   rP   s     r   1test_threadpool_limitation_in_child_context_errorr[   z   s     
&L	M	M	M 2 2q11112 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2s   266c                     | dd          5  t          d           5 }|j        dk    sJ 	 d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y    | d          5  t                      j        }t          d           5 }|j        |k    sJ 	 d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nr   r&   rP   r)   rS   rT   r	   r)   )r   r<   default_n_jobss      r   test_parallel_n_jobs_noner`      s    
Q	/	/	/ ! !T""" 	!a8q=====	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!! ! ! ! ! ! ! ! ! ! ! ! ! ! ! 
	%	%	% . .!*T""" 	.a8~-----	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.. . . . . . . . . . . . . . . . . .sd   A:A>	A>	AAA($B?B'B?'B+	+B?.B+	/B??CCc                     | dd          5   | dd           5  t                      5 }|j        dk    sJ 	 d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nr   r&   r]   r'   r^   )r   r<   s     r    test_parallel_config_n_jobs_nonerb      sT   
 
Q	/	/	/ % %W[666 	% 	% %qx1}}}}}% % % % % % % % % % % % % % %	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%% % % % % % % % % % % % % % % % % %sV   A5AAAA

AA
AA5A!	!A5$A!	%A55A9<A9) r8   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=   rE   rK   rQ   rW   r[   r`   rb   r!   r"   r   <module>rh      s   				         
                  D C C C C C C C C C 2 2 2 2 2 2 . . . . . . . . Y*:;<<6 6 =<6 Y*:;<<	% 	% =<	% 
/ 
/  
/ P P  P Wx+,,  -,   ! ! !, %;%;%=%=?O?O?Q?QR  Y*:;<<2 2 =<	   2
 Y*:;<<
. 
. =<
. Y*:;<<% % =<% % %r"   