
    Ug              
          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dS )     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   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      V/var/www/surfInsights/venv3-11/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>9   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>G   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   J   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                  d   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            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_param)r   rJ   r   r!   r"   r   'test_parallel_config_constructor_paramsrP   S   s    

"K	L	L	L  1555 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	               

"K	L	L	L  1--- 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	                 sb   A6A:	A:	AAA.B%?BB%B	B%B	B%%B),B)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   backendd   )verbose)	r   r   r   r   r   r   r)   r   rV   )r<   s    r   test_parallel_config_nestedrW   _   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'rT   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   rT   s     r   1test_threadpool_limitation_in_child_context_errorr[   u   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&   rT   r)   rR   rS   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.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=   rE   rK   rP   rW   r[   r`   rb   r!   r"   r   <module>rh      s   				 + + + + + + , , , , , , - - - - - - - - $ $ $ $ $ $ + + + + + + - - - - - - 1 1 1 1 1 1 6 6 6 6 6 6 < < < < < < . . . . . . . . - - - - - - - - 3 3 3 3 3 3 2 2 2 2 2 2 Y*:;<<6 6 =<6 Y*:;<<	% 	% =<	% 
/ 
/  
/ P P  P Wx+,,  -,	 	 	! ! !, Y*K//113C3C3E3EG H HY*:;<<2 2 =<H H  
2 Y*:;<<
. 
. =<
. Y*:;<<% % =<% % %r"   