
    UgG                     `   d dl mZmZmZ d dlZd dlZd dlZd dlmZ d dlm	Z	 d dl
mZ ddlmZmZmZ ddlmZmZ dd	lmZ  ej        d
          Z ej        d          Zd dlmZmZmZ d dlm
Z
 d dlmZmZmZ d Z d;dZ!d Z"d Z#d Z$d Z%d Z&ej'        (                    dddg          d             Z)d Z* G d de+          Z,d<dZ-d Z.d  Z/ej'        (                    d! e0 e1d                              d"             Z2d# Z3d$ Z4d% Z5d& Z6d' Z7d( Z8d) Z9d* Z:d+ Z;d, Z<d- Z=ej'        (                    d.d/d0g          ej'        >                    ej?        d1k    o
ej?        d2k    d34          d5                         Z@d6 ZAej'        (                    d7d8d9g          d:             ZBdS )=    )print_functiondivisionabsolute_importNrandom)uuid4)sleep   )Paralleldelayedparallel_config)ThreadingBackendAutoBatchingMixin)DaskDistributedBackenddistributeddask)ClientLocalCluster
get_client)time)clusterinccleanupc                      d S N )argskwargss     T/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/joblib/test/test_dask.pynoopr       s    D    皙?c                 F    t          |           | rt          d          d S )Nzcondition evaluated to True)r	   
ValueError)	conditiondurations     r   slow_raise_value_errorr'      s.    	(OOO 867778 8r!   c                      |                     d           }i }|                                D ]0\  }}t           fdt          |          D                       ||<   1|S )Nc                     | j         S r   )log)dask_workers    r   <lambda>zcount_events.<locals>.<lambda>$   s    ;? r!   c                 ,    g | ]}|d          k    |S    r   ).0event
event_names     r   
<listcomp>z count_events.<locals>.<listcomp>'   s1     : : :"'(j"8"8  %"8"8"8r!   )runitemslenlist)r2   clientworker_eventsevent_countsweventss   `     r   count_eventsr=   #   s    JJBBCCML"((** ; ;	6 : : : :$v,, : : : ; ;Qr!   c           
         t                      5 \  }\  }}t          |d         |           5 }t          d          5   t                      d t	          d          D                       }|d t	          d          D             k    sJ t          j        t                    5   t                      d t	          d          D                        d d d            n# 1 swxY w Y    t                      d	 t	          d          D                       }|d
 t	          d          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 )Naddressloopr   backendc              3   P   K   | ]!} t          t                    |          V  "d S r   r   r   r0   is     r   	<genexpr>ztest_simple.<locals>.<genexpr>0   0       D DQa D D D D D Dr!   
   c                 ,    g | ]}t          |          S r   r   rF   s     r   r3   ztest_simple.<locals>.<listcomp>1       999!s1vv999r!   c              3   X   K   | ]%} t          t                    |d k              V  &dS )   N)r   r'   rF   s     r   rH   ztest_simple.<locals>.<genexpr>4   sM       3 3#$  ?w'=>>qAvFF 3 3 3 3 3 3r!   c              3   P   K   | ]!} t          t                    |          V  "d S r   rE   rF   s     r   rH   ztest_simple.<locals>.<genexpr>7   rI   r!   c                 ,    g | ]}t          |          S r   rL   rF   s     r   r3   ztest_simple.<locals>.<listcomp>8   rM   r!   )r   r   r   r   rangepytestraisesr$   rA   sabr8   seqs         r   test_simplerZ   ,   s   	 :kq&1aAiLt,,, 
	: 000 	: 	: hjj D D%)) D D DDD99uRyy9999999]:.. 3 3HJJ 3 3(-b		3 3 3 3 3 33 3 3 3 3 3 3 3 3 3 3 3 3 3 3 !hjj D D%)) D D DDD99uRyy99999999	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:
	: 
	: 
	: 
	: 
	: 
	: 
	: 
	: 
	: 
	: 
	: 
	: 
	: 
	: 
	:: : : : : : : : : : : : : : : : : :s}   E4EA'E%/C 	E C$$E'C$(AE9EE		EE	EE4E 	 E4#E 	$E44E8;E8c                 t   t           j        t          j        u sJ t                      5 \  }\  }}t	          |d         |           5 }t          d          5  t                      5 }|j        }t          |t                     sJ |j	        |u sJ |j
        dk    sJ  |d t          t          d                    D                        |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            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   rB   r/   c              3   F   K   | ]} t          d                        V  dS )c                      d S r   r   r   r!   r   r,   z?test_dask_backend_uses_autobatching.<locals>.<genexpr>.<lambda>M   s     r!   Nr   r0   _s     r   rH   z6test_dask_backend_uses_autobatching.<locals>.<genexpr>L   sH         .--//     r!        @rJ   )r   compute_batch_sizer   r   r   r   r   _backend
isinstanceparallel_effective_batch_sizerR   int)rA   rV   rW   rX   r8   re   rC   s          r   #test_dask_backend_uses_autobatchingrh   ;   sb   "5 34 4 4 4 
 >kq&1aAiLt,,, 	> 000 > >ZZ >8 '/G%g/EFFFFF"+x7777"8A==== H  !&s3xx      #82=====> > > > > > > > > > > > > > >> > > > > > > > > > > > > > >	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>> > > > > > > > > > > > > > > > > >s~   D-DC>'A3C'	C>'C++C>.C+/C>2D>DDDD	D-D	D-D	D--D14D1c                      t                      S r   r   r   r!   r   random2rj   S   s    88Or!   c           	         t                      5 \  }\  }}t          |d         |           5 }t          d          5   t                      d t	          d          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   rB   c              3   N   K   | ] } t          t                                V  !d S r   )r   rj   rF   s     r   rH   z3test_dont_assume_function_purity.<locals>.<genexpr>[   s3      !G!G"2''"2"2"4"4!G!G!G!G!G!Gr!   r
   r   r   r   r   rR   )rA   rV   rW   rX   r8   xys          r    test_dont_assume_function_purityrp   W   s   	 kq&1aAiLt,,, 	 000  !xzz!G!GeAhh!G!G!GGG1Avvvvv              	 	 	 	 	 	 	 	 	 	 	 	 	 	 	                 sW   B4B:B9BB		BB	BB4B 	 B4#B 	$B44B8;B8mixedTFc                    ddl m} |sd t          d          D             }d}nd t          d          D             }d}t           ||                    |k    sJ t	                      5 \  }\  }}t          |d         | 	          5 }t          d
          5   t          dd          |          }	d d d            n# 1 swxY w Y   d }
|                    dd          }|	                    |
          }t          d |D                       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   )Batchc                 H    g | ]} t          t                    |           S r   rE   rF   s     r   r3   z&test_dask_funcname.<locals>.<listcomp>c   s&    333Qa333r!      batch_of_inc_4_callsc                     g | ]A}|d z  r t          t                    |          n t          t                    |          BS )r
   )r   absr   rF   s     r   r3   z&test_dask_funcname.<locals>.<listcomp>f   sN     
 
 
>?q1u9LGCLLOOO,'#,,q//
 
 
r!   mixed_batch_of_inc_4_callsr?   r@   r   rB   r
   all)
batch_sizepre_dispatchc                 *    t          | j                  S r   )r7   transition_log)dask_schedulers    r   fztest_dask_funcname.<locals>.fr   s    N9:::r!   42c              3   *   K   | ]}d |d         v V  dS )batch_of_incr   Nr   )r0   tups     r   rH   z%test_dask_funcname.<locals>.<genexpr>v   s+      ??C~Q/??????r!   )joblib._daskrs   rR   reprr   r   r   r   replacerun_on_schedulerrz   )rA   rq   rs   tasks
batch_reprrV   rW   rX   r8   r`   r   r*   s               r   test_dask_funcnamer   _   sw   """""" 233%((333+


 
CH88
 
 
 2
e++++	 	@kq&1aAiLt,,, 	@ 000 F F>H>>>uEEF F F F F F F F F F F F F F F; ; ;#++C55J))!,,C??3?????????	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@s[   ,D;
D#C6D#CD#	C
AD#D;#D'	'D;*D'	+D;;D?D?c                  V   d t          d          D             } t          j        d                              t	          d                    dfd	t          dd          }t          |          }	 t          d	
          5   t                      fd| D                       }d d d            n# 1 swxY w Y   | d t          d          D             k    sJ t          d|          }t          |                                          dk    sJ t          d |D                       sJ t          d	
          5   t                      fd| D                       }d d d            n# 1 swxY w Y   t          d|          }t          |                                          dk    sJ t          d |D                       sJ 	 |                    d            |j        d           d S # |                    d            |j        d           w xY w)Nc                     g | ]}g S r   r   r_   s     r   r3   z;test_no_undesired_distributed_cache_hit.<locals>.<listcomp>   s    $$$AR$$$r!   d   numpyg    .Ac                     |j                             |           |                     t                      j                   | S r   )testingassert_array_equalappendr   hex)list_dataXnps     r   isolated_operationzCtest_no_undesired_distributed_cache_hit.<locals>.isolated_operation   s>    J))$222UWW[!!!r!   r/   r
   )	n_workersthreads_per_workerr   rB   c              3   H   K   | ]} t                    |          V  d S r   r^   )r0   r   r   s     r   rH   z:test_no_undesired_distributed_cache_hit.<locals>.<genexpr>   sH        7<+*++E22     r!   c                     g | ]}g S r   r   r_   s     r   r3   z;test_no_undesired_distributed_cache_hit.<locals>.<listcomp>   s    000000r!   receive-from-scatterr   c                 4    g | ]}t          |          d k    S r.   r6   r0   rs     r   r3   z;test_no_undesired_distributed_cache_hit.<locals>.<listcomp>   "    ---ACFFaK---r!   c              3   L   K   | ]} t                    |           V  dS ))r   Nr^   )r0   r   r   r   s     r   rH   z:test_no_undesired_distributed_cache_hit.<locals>.<genexpr>   sM        ?D+*++E:::     r!   c                 4    g | ]}t          |          d k    S r.   r   r   s     r   r3   z;test_no_undesired_distributed_cache_hit.<locals>.<listcomp>   r   r!      timeoutr   )rR   rS   importorskiparangerg   r   r   r   r   r=   sumvaluesrz   close)listsr   r8   rescountsr   r   r   s        @@@r   'test_no_undesired_distributed_cache_hitr   y   s    %$s$$$E		W	%	%B
		#c((A       Q1===GG__F"V,,, 	 	(**    @E    C	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 00U3ZZ0000000
 4f==6==??##q((((-----.....V,,, 	 	 (**     HM    C	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 4f==6==??##a''''-----......R   b!!!!!! 	R   b!!!!!sV   ;G? $B;/G? ;B??G? B?BG? %E8,G? 8E<<G? ?E< AG? ?)H(c                   $    e Zd Zd Zd ZeZd ZdS )CountSerializedc                 "    || _         d| _        d S )Nr   )rn   count)selfrn   s     r   __init__zCountSerialized.__init__   s    


r!   c                 4    | j         t          |d|          z   S )Nrn   )rn   getattr)r   others     r   __add__zCountSerialized.__add__   s    vsE2222r!   c                 @    | xj         dz  c_         t          | j        ffS )Nr/   )r   r   rn   )r   s    r   
__reduce__zCountSerialized.__reduce__   s     

a

$&++r!   N)__name__
__module____qualname__r   r   __radd__r   r   r!   r   r   r      sH          3 3 3 H, , , , ,r!   r   c                     | |z   |z   |z   |z   S r   r   )rW   rX   cdes        r   add5r      s    q519q=1r!   c                 h   t          d          }t          d          }t          d          }t                      5 \  }\  }}t          |d         |           5 }t          d||g          5  t	          t
                    } ||||dd	
           ||||d	d
           |||||d	
           ||||||
          g}	d |	D             }
 t                      |	          }d d d            n# 1 swxY w Y   t          j        t                    5  t          d| d          5  	 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            n# 1 swxY w Y   d d d            n# 1 swxY w Y   ||
k    sJ |j
        dk    sJ |j
        dk    sJ |j
        dv sJ d S )Nr/   r
   rO   r?   r@   r   )rC   scatterru      )r   r   c                 &    g | ]\  }}} ||i |S r   r   )r0   funcr   r   s       r   r3   z'test_manual_scatter.<locals>.<listcomp>   s=     = = = 2dF !D$1&11 = = =r!   )rC   rA   r   )ru      )r   r   r   r   r   r   r   rS   rT   	TypeErrorr   )rA   rn   ro   zrV   rW   rX   r8   r   r   expectedresultss               r   test_manual_scatterr      s'   AAA	 kq&1aAiLt,,, 	 !Q@@@ , ,DMM1aa1---1aa1---1aa1---1aa1---/= =6;= = =$(**U++, , , , , , , , , , , , , , , y))  $V$JJJ                              	 	 	 	 	 	 	 	 	 	 	 	 	 	 	              " h 7a<<<<7a<<<<
 7fs   E:E#.A6C0$E#0C44E#7C48E#E'D5	)E5D99E<D9=E E#EE#EE#E:#E'	'E:*E'	+E::E>E>c           	        	 t          j        d          }|                    t          d          |j                  	|                    t          d          |j                  }	gdz  |gdz  z   }t                      5 \  }\  }}t          |d         |           5 }t          d          5   t                      d	 t          |          D                        d d d            n# 1 swxY w Y   t          d
|          }||d                  ||d                  z   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                      5 \  }\  }}t          |d         |           5 }t          d          5   t                      	fdt          d          D                        d d d            n# 1 swxY w Y   t          d
|          }||d                  dk    sJ ||d                  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   ra   )dtyperO   r?   r@   r   rB   c              3   ^   K   | ](\  }} t          t                    ||||           V  )dS ))optNr   r    )r0   rG   r   s      r   rH   z$test_auto_scatter.<locals>.<genexpr>   s[       F F&q$ )74==tQDAAA F F F F F Fr!   r   r
   c              3   d   K   | ]*} t          t                    d d         |          V  +d S )NrO   r   )r0   rG   data1s     r   rH   z$test_auto_scatter.<locals>.<genexpr>   s=      II1=74==rrA66IIIIIIr!   r   r   )rS   r   onesrg   uint8r   r   r   r   	enumerater=   rR   )
loop_in_threadr   data2data_to_processrV   rW   rX   r8   r   r   s
            @r   test_auto_scatterr      s   		W	%	%BGGCHHBHG--EGGCHHBHG--Ew{w{3O	 Dkq&1aAiL~666 
	D& 000 F F 

 F F*3O*D*DF F F F F FF F F F F F F F F F F F F F F ""8&AAF!I,'&9*>>!CCCCC
	D 
	D 
	D 
	D 
	D 
	D 
	D 
	D 
	D 
	D 
	D 
	D 
	D 
	D 
	DD D D D D D D D D D D D D D D 
 -kq&1aAiL~666 	-& 000 J J

IIIIaIIIIIIJ J J J J J J J J J J J J J J ""8&AAF!I,'1,,,,!I,'1,,,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-- - - - - - - - - - - - - - - - - -s   E!D82/C-!D8-C11D84C156D8,E8D<	<E?D<	 EEE(H<H$1GH$GH$G;H$H<$H(	(H<+H(	,H<<I I retry_noc           	        	
 t          j        d          
dd}
fd		fdt                      5 \  }\  }}t          |d         |           5 }t	          d          5  
                    d	           t                      fd
t          |          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 )Nr   rJ   c                 .                         |           S r   )r   )rn   rG   jr   s      r   my_sumz#test_nested_scatter.<locals>.my_sum  s    vvayyr!   c                      t                      }t          d          5   t                       fdt                    D                       }d d d            n# 1 swxY w Y   t	          |          S )Nr   rB   c              3   \   K   | ]&} t                    |d          |          V  'd S r   r^   )r0   r   arrayrG   r   s     r   rH   zEtest_nested_scatter.<locals>.outer_function_joblib.<locals>.<genexpr>  sP       ! !56abb	1a00! ! ! ! ! !r!   )r   r   r   rR   r   )r   rG   r8   r   NUM_INNER_TASKSr   s   ``  r   outer_function_joblibz2test_nested_scatter.<locals>.outer_function_joblib  s    V,,, 	 	 hjj ! ! ! ! ! !:?#;% ;%! ! !  G	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 7||s   3A!!A%(A%r?   r@   r   rB   i'  c              3   Z   K   | ]%} t                    |d          |          V  &d S r   r^   )r0   rG   my_arrayr   s     r   rH   z&test_nested_scatter.<locals>.<genexpr>   sY        -. 3G122 a) )     r!   )rS   r   r   r   r   r   r   rR   )rA   r   NUM_OUTER_TASKSrV   rW   rX   r`   r   r   r   r   r   s          @@@@@r   test_nested_scatterr     s    
	W	%	%BOO          
 kq&1aAiLt,,, 	 000  775>>HJJ     272H2H                  	 	 	 	 	 	 	 	 	 	 	 	 	 	 	                 sZ   C(C&AB9-C9B==C B=CC(C	C(C	C((C,/C,c           	      ,   d t                      5 \  }\  }}t          |d         |           5 }t          d          5   t          d          fdt	          d	          D                       }|D ]$}t          t          |                    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          d          fd
t	          d	          D                       }|D ]$}t          t          |                    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 )Nc            	          t           t          d          d t          d          D                                 } | t           t          d          d t          d          D                                 z  } | S )Nr
   n_jobsc              3   X   K   | ]%} t          t          j                              V  &d S r   r   osgetpidr_   s     r   rH   zOtest_nested_backend_context_manager.<locals>.get_nested_pids.<locals>.<genexpr>(  s5      %M%Mq&8gbi&8&8&:&:%M%M%M%M%M%Mr!   c              3   X   K   | ]%} t          t          j                              V  &d S r   r   r_   s     r   rH   zOtest_nested_backend_context_manager.<locals>.get_nested_pids.<locals>.<genexpr>)  s5      &N&N'9wry'9'9';';&N&N&N&N&N&Nr!   )setr   rR   )pidss    r   get_nested_pidsz<test_nested_backend_context_manager.<locals>.get_nested_pids'  s|    %81%%%%M%ME!HH%M%M%MMMNN&HA&&&&N&NU1XX&N&N&NNNOOOr!   r?   r@   r   rB   r
   r   c              3   F   K   | ]} t                                V  d S r   r^   r0   r`   r   s     r   rH   z6test_nested_backend_context_manager.<locals>.<genexpr>/  G       0 0 -GO,,..0 0 0 0 0 0r!   rJ   c              3   F   K   | ]} t                                V  d S r   r^   r   s     r   rH   z6test_nested_backend_context_manager.<locals>.<genexpr>9  r   r!   )r   r   r   r   rR   r6   r   )r   rV   rW   rX   r8   
pid_groups	pid_groupr   s          @r   #test_nested_backend_context_managerr  &  s'     
 
 4kq&1aAiL~666 	4& 000 4 4/XQ/// 0 0 0 0"2YY0 0 0  
 ", 4 4Is9~~..!3333344 4 4 4 4 4 4 4 4 4 4 4 4 4 4	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 AiL~666 	4& 000 4 4/XQ/// 0 0 0 0"2YY0 0 0  
 ", 4 4Is9~~..!3333344 4 4 4 4 4 4 4 4 4 4 4 4 4 4	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	44 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4s   F	C AB)C )B--C 0B-1C 4F	 C	F	C	F	"E13AEE1EE1!E"E1%F	1E5	5F	8E5	9F		FFc           
      $  	
 d 		fd
t                      5 \  }\  }}t          |d         |           5 }t          d          5  t                      5 } 	|          dk    sJ |j        dk    sJ  |
fd	t          d
          D                       }d d d            n# 1 swxY w Y   |D ]\  }}|dk    s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 )Nc                 $    | j         j        j        S r   )rc   	__class__r   )ps    r   _backend_typezJtest_nested_backend_context_manager_implicit_n_jobs.<locals>._backend_typeE  s    z#,,r!   c                  x    t                      5 }  |           | j        fcd d d            S # 1 swxY w Y   d S r   )r   r   )r  r  s    r   get_nested_implicit_n_jobszWtest_nested_backend_context_manager_implicit_n_jobs.<locals>.get_nested_implicit_n_jobsH  s    ZZ 	.1 =##QX-	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.s   /33r?   r@   r   rB   r   c              3   F   K   | ]} t                                V  d S r   r^   )r0   r`   r  s     r   rH   zFtest_nested_backend_context_manager_implicit_n_jobs.<locals>.<genexpr>R  sH       * * < :;;==* * * * * *r!   r
   )r   r   r   r   r   rR   )rA   rV   rW   rX   r8   r  all_nested_n_jobsbackend_typenested_n_jobsr  r  s            @@r   3test_nested_backend_context_manager_implicit_n_jobsr  A  sw   - - -. . . . . 
 /kq&1aAiLt,,, 	/ 000 
/ 
/ZZ 1(=++/GGGGG8r>>>>() * * * *!&q* * * ) )%               4E / //L-'+CCCCC(B...../
/ 
/ 
/ 
/ 
/ 
/ 
/ 
/ 
/ 
/ 
/ 
/ 
/ 
/ 
/	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	// / / / / / / / / / / / / / / / / /s}   DC-CAB&	C&B**C-B*.C
C-CC-CC-!D-C1	1D4C1	5DD	D	c                    t          j        t                    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   dt	          |j                                                  v sJ d S )Nr   rB   zcreate a dask client)rS   rT   r$   r   strvaluelower)rA   infos     r   test_errorsr  [  s    	z	"	" dV,,, 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	               "S__%:%:%<%<<<<<<<s.   A9A=	A =	AAAc           	         t                      5 \  }\  }}t          |d         |           5 }t          d          5   t          d          d t	          d          D                       }t          |d	         d	         d	         t                    sJ 	 d d d            n# 1 swxY w Y   t          d          5   t          d          d
 t	          d          D                       }t          |d	         d	         d	         t                    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   rB   r
   r   c              3   R   K   | ]"} t          t                    d           V  #d S )Nnested_requirer   outerr_   s     r   rH   z.test_correct_nested_backend.<locals>.<genexpr>h  sN       ,K ,K<=NGENN$777,K ,K ,K ,K ,K ,Kr!   r/   r   c              3   R   K   | ]"} t          t                    d           V  #dS )	sharedmemr  Nr  r_   s     r   rH   z.test_correct_nested_backend.<locals>.<genexpr>n  sI       ,' ,' #GENN+>>>,' ,' ,' ,' ,' ,'r!   )r   r   r   r   rR   rd   r   r   )rA   rV   rW   rX   r8   results         r   test_correct_nested_backendr  c  s   	 Ekq&1aAiLt,,, 	E 000 K K++++ ,K ,KAFq,K ,K ,K K K!&)A,q/3IJJJJJJK K K K K K K K K K K K K K K !000 E E++++ ,' ,'"1XX,' ,' ,' ' ' "&)A,q/3CDDDDDD	E E E E E E E E E E E E E E E	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	EE E E E E E E E E E E E E E E E E Es}   ED>AB%D>%B))D>,B)-D> AD'D>'D++D>.D+/D>2E>E	EE	EEEc                 j      t          dd           fdt          d          D                       S )Nr
   threads)r   preferc              3   R   K   | ]!} t          t                              V  "d S r   )r   middle)r0   r`   r  s     r   rH   zouter.<locals>.<genexpr>u  sD       0 0,-''0 0 0 0 0 0r!   r/   r   rR   r  s   `r   r  r  t  sP    /81Y/// 0 0 0 016q0 0 0   r!   c                 d     t          d|           d t          d          D                       S )Nr
   )r   requirec              3   N   K   | ] } t          t                                V  !d S r   )r   innerr_   s     r   rH   zmiddle.<locals>.<genexpr>{  sA       / // / / / / /r!   r/   r$  )r&  s    r   r#  r#  z  sE    .81g... / /"'((/ / /   r!   c                  (    t                      j        S r   )r   rc   r   r!   r   r(  r(    s    ::r!   c                    t          | dd          5  t          d          5   t          d          d t          d	          D                        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 )
NFT)rA   	processesset_as_defaultr   rB   ru   r   c              3   P   K   | ]!} t          t                    |          V  "d S r   )r   idrF   s     r   rH   z0test_secede_with_no_processes.<locals>.<genexpr>  s0      @@!{wr{{1~~@@@@@@r!   r
   )r   r   r   rR   r@   s    r   test_secede_with_no_processesr/    s6   	TU4	@	@	@ A AV,,, 	A 	AHA@@uQxx@@@@@@	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	AA A A A A A A A A A A A A A A A A As4   A91A!A9!A%	%A9(A%	)A99A= A=c                 ,    ddl m}  |            j        S )Nr   )
get_worker)r   r1  r?   )r`   r1  s     r   _worker_addressr2    s#    &&&&&&:<<r!   c           	      ~   t                      5 \  }\  }}t          |d         |           5 }t          d|d                   5   t                      d t	          d          D                       }||d         gdz  k    sJ 	 d d d            n# 1 swxY w Y   t          d|d                   5   t                      d t	          d          D                       }||d         gdz  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   )rC   workersc              3   P   K   | ]!} t          t                    |          V  "d S r   r   r2  rF   s     r   rH   z-test_dask_backend_keywords.<locals>.<genexpr>  N       !D !D45,GO,,Q//!D !D !D !D !D !Dr!   rJ   c              3   P   K   | ]!} t          t                    |          V  "d S r   r6  rF   s     r   rH   z-test_dask_backend_keywords.<locals>.<genexpr>  r7  r!   rm   rU   s         r   test_dask_backend_keywordsr9    sr   	 
2kq&1aAiLt,,, 		2 9FFF 2 2 hjj !D !D9>r!D !D !D D Dq|nr1111112 2 2 2 2 2 2 2 2 2 2 2 2 2 2
 !9FFF 2 2 hjj !D !D9>r!D !D !D D Dq|nr1111112 2 2 2 2 2 2 2 2 2 2 2 2 2 2		2 		2 		2 		2 		2 		2 		2 		2 		2 		2 		2 		2 		2 		2 		2
2 
2 
2 
2 
2 
2 
2 
2 
2 
2 
2 
2 
2 
2 
2 
2 
2 
2s~   D2DABDBDBD5AD7DDD
DDD2D	D2!D	"D22D69D6c                    t          d|           5 }t          d          5   t                      d t          d          D                        d d d            n# 1 swxY w Y   t	                      }|j        j        j        r7t          d           t	                      |dz   k     sJ |j        j        j        7|j	        rJ 	 d d d            d S # 1 swxY w Y   d S )	NF)r+  rA   r   rB   c              3   P   K   | ]!} t          t                    |          V  "d S r   rE   rF   s     r   rH   z/test_scheduler_tasks_cleanup.<locals>.<genexpr>  0      ::1|ws||A::::::r!   rJ   g{Gz?r   )
r   r   r   rR   r   r   	schedulerr   r	   futures)rA   r8   starts      r   test_scheduler_tasks_cleanupr@    si   	%d	+	+	+ 	"vV,,, 	; 	;HJJ::b		::::::	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; n&, 	&$KKK66EAI%%%% n&, 	& >!!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"s5   C/ACA"	"C%A"	&A"CCCcluster_strategyadaptivelate_scalingz2.1.1z1.28.0z?distributed bug - https://github.com/dask/distributed/pull/2841)reasonc                    t          ddd          }t          |          }| dk    r |j        dd           n| dk    r |j        d           	 t	          d	          5   t                      d
 t          d          D                        d d d            n# 1 swxY w Y   |                                  |j                     d S # |                                  |j                     w xY w)Nr   Fr
   r   r+  r   rB  )minimummaximumrC  r   rB   c              3   P   K   | ]!} t          t                    |          V  "d S r   rE   rF   s     r   rH   z(test_wait_for_workers.<locals>.<genexpr>  r<  r!   rJ   )r   r   adaptscaler   r   rR   r   )rA  r   r8   s      r   test_wait_for_workersrL    s?   
 Q%ANNNGG__F:%%a+++++	^	+	+
 	aV,,, 	; 	; HJJ::b		::::::	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;
 	 	s0   C "/BC B!!C $B!%C %C2c                     t          ddd          } t          |           }	 t          dd          5  d}t          j        t
          |	          5   t                      d
 t          d          D                        d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          dd          5  d}t          j        t          |	          5   t                      d t          d          D                        d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |	                                  | j	                     d S # |	                                  | j	                     w xY w)Nr   Fr
   rF  r   g?)rC   wait_for_workers_timeoutz7DaskDistributedBackend has no worker after 0.1 seconds.)matchc              3   P   K   | ]!} t          t                    |          V  "d S r   rE   rF   s     r   rH   z0test_wait_for_workers_timeout.<locals>.<genexpr>  0      >>q<73<<??>>>>>>r!   rJ   z+DaskDistributedBackend has no active workerc              3   P   K   | ]!} t          t                    |          V  "d S r   rE   rF   s     r   rH   z0test_wait_for_workers_timeout.<locals>.<genexpr>  rQ  r!   )
r   r   r   rS   rT   TimeoutErrorr   rR   RuntimeErrorr   )r   r8   msgs      r   test_wait_for_workers_timeoutrV    sj   Q%ANNNGG__FVcJJJ 	? 	?KC|3777 ? ?

>>E"II>>>>>>? ? ? ? ? ? ? ? ? ? ? ? ? ? ?	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? VaHHH 	? 	??C|3777 ? ?

>>E"II>>>>>>? ? ? ? ? ? ? ? ? ? ? ? ? ? ?	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	 	s   E  B$/BB$B	B$B	B$E  $B((E  +B(,E   D0/DD0D	D0 D	!D0$E  0D44E  7D48E   %FrC   lokymultiprocessingc                     t          d          }t          |          }	  fd}|                    |          }|                                }t	          |          dk    sJ |d         j        }t          |t                    sJ dt          |          v sJ 	 |	                    d            |j	        d           d S # |	                    d            |j	        d           w xY w)	Nr
   )r   c                      t          j        d          5 }  t          d          d t          d          D                        d d d            n# 1 swxY w Y   | S )NT)recordr
   )r   rC   c              3   P   K   | ]!} t          t                    |          V  "d S r   rE   rF   s     r   rH   zftest_joblib_warning_inside_dask_daemonic_worker.<locals>.func_using_joblib_parallel.<locals>.<genexpr>  sA       48 48()LGCLLOO48 48 48 48 48 48r!   rJ   )warningscatch_warningsr   rR   )r[  rC   s    r   func_using_joblib_parallelzStest_joblib_warning_inside_dask_daemonic_worker.<locals>.func_using_joblib_parallel  s    
 (555 837333 48 48-22YY48 48 48 8 8 88 8 8 8 8 8 8 8 8 8 8 8 8 8 8 Ms   2AAAr/   r   zdistributed.worker.daemonr   r   )
r   r   submitr  r6   messagerd   UserWarningr  r   )rC   r   r8   r_  futr[  warnings   `      r   /test_joblib_warning_inside_dask_daemonic_workerre    s   Q'''GG__F"		 		 		 		 		 mm6776{{a)#';/////*c'll:::::R   b!!!!!! 	R   b!!!!!s   A:C )C/)r"   )r   r   )C
__future__r   r   r   r   r]  rS   r   uuidr   r   r	    r   r   r   re   r   r   _daskr   r   r   r   r   r   r   distributed.metricsdistributed.utils_testr   r   r   r    r'   r=   rZ   rh   rj   rp   markparametrizer   r   objectr   r   r   r   r7   rR   r   r  r  r  r  r  r#  r(  r/  r2  r9  r@  skipif__version__rL  rV  re  r   r!   r   <module>rq     s   @ @ @ @ @ @ @ @ @ @ 				                     1 1 1 1 1 1 1 1 1 1 : : : : : : : : * * * * * *!f!-00v6"" 9 8 8 8 8 8 8 8 8 8 $ $ $ $ $ $ 9 8 8 8 8 8 8 8 8 8	 	 	8 8 8 8  : : :> > >0     4-00@ @ 10@26" 6" 6"r, , , , ,f , , ,     J- - -< TT%%((^^44  54:4 4 46/ / /4= = =E E E"      A A A     
2 2 2
" 
" 
" +j.-IJJw&N;+Bh+NL  N N N N KJ*  * V->$?@@" " A@" " "r!   