
    e!hY                     b   d dl mZmZm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ZddlmZmZmZ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mZ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'  ejP                  dd      d        Z)d Z*dIdZ+d Z,d Z-d Z.ej^                  ja                  dddg      ej^                  ja                  deeg      d               Z1eej^                  ja                  dddg      ej^                  ja                  dd d!g      ej^                  ja                  deeg      d"                             Z2eej^                  ja                  deeg      d#               Z3d$ Z4d% Z5ej^                  ja                  d&dd'g      d(        Z6d) Z7 G d* d+e8      Z9dJd,Z:d- Z;d. Z<ej^                  ja                  d/ e= e>d                  d0        Z?d1 Z@d2 ZAd3 ZBd4 ZCd5 ZDd6 ZEd7 ZFd8 ZGd9 ZHd: ZId; ZJej^                  ja                  d<d=d>g      ej^                  j                  ej                  d?k  xr ej                  d@k\  dAB      dC               ZMdD ZNej^                  ja                  dEdFdGg      dH        ZOy)K    )absolute_importdivisionprint_functionNrandom)sleep)uuid4   )Paralleldelayedparallel_backendparallel_config)DaskDistributedBackend)AutoBatchingMixinThreadingBackend   )np
with_numpy)_recursive_backend_info_test_deadlock_with_generator8_test_parallel_unordered_generator_returns_fastest_firstdistributeddask)ClientLocalCluster
get_client)time)cleanupclusterincfunctionT)scopeautousec              #   4  K   ddl m} |j                  D ci c]"  }|t        j                  j                  |      $ }}d  |j                         D ];  \  }}|!t        j                  j                  |d        )|t        j                  |<   = y c c}w w)Nr   )ParallelBackendBase)joblib._parallel_backendsr%   MAX_NUM_THREADS_VARSosenvirongetitemspop)tmp_pathr%   k	old_valuevs        ]/var/www/html/diagnosisapp-backend/venv/lib/python3.12/site-packages/joblib/test/test_dask.pyavoid_dask_env_leaksr2   !   s     
 >/B/W/WX!BJJNN1%%XIX	 ! 19JJNN1d#BJJqM		 Ys   B'BABc                       y N )argskwargss     r1   noopr8   3   s        c                 4    t        |       | rt        d      y )Nzcondition evaluated to True)r   
ValueError)	conditiondurations     r1   slow_raise_value_errorr>   7   s    	(O677 r9   c                     |j                  d       }i }|j                         D ]3  \  }}t        t        |      D cg c]  }|d   | k(  s| c}      ||<   5 |S c c}w )Nc                     | j                   S r4   )log)dask_workers    r1   <lambda>zcount_events.<locals>.<lambda>>   s
    ;?? r9   r   )runr+   lenlist)
event_nameclientworker_eventsevent_countsweventsevents          r1   count_eventsrN   =   sk    JJBCML"((* 
	6 $VGuaJ0FUG
Q
  Hs   A
A
c           
         t               5 \  }\  }}t        |d   |       5 }t        d      5   t               d t	        d      D              }|t	        d      D cg c]  }t        |       c}k(  sJ t        j                  t              5   t               d t	        d      D               d d d         t               d t	        d      D              }|t	        d      D cg c]  }t        |       c}k(  sJ 	 d d d        d d d        d d d        y c c}w # 1 sw Y   oxY wc c}w # 1 sw Y   0xY w# 1 sw Y   4xY w# 1 sw Y   y xY w)	Naddressloopr   backendc              3   F   K   | ]  } t        t              |        y wr4   r   r    .0is     r1   	<genexpr>ztest_simple.<locals>.<genexpr>K         DQa D   !
   c              3   L   K   | ]  } t        t              |d k(          yw)   N)r   r>   rW   s     r1   rZ   ztest_simple.<locals>.<genexpr>O   s'      DE7 67Q?s   "$c              3   F   K   | ]  } t        t              |        y wr4   rV   rW   s     r1   rZ   ztest_simple.<locals>.<genexpr>S   r[   r\   )	r   r   r   r   ranger    pytestraisesr;   )rR   sabrH   seqrY   s          r1   test_simplerh   G   s(   	 :kq&1aAiLt, 	: 0 
: hj D%) DDuRy9!s1v9999]]:. HJ INr 
 !hj D%) DDuRy9!s1v9999
:	:: : :  :
: 
:	: 	:: :so   ED</D0D0 D0!D	16D0'D+9D0D<	ED0D($D00D95D<<E	EEc                 @   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kD  sJ 	 d d 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   *xY w# 1 sw Y   y xY w)	NrP   rQ   r   rS   r   c              3   >   K   | ]  } t        d                 yw)c                       y r4   r5   r5   r9   r1   rC   z?test_dask_backend_uses_autobatching.<locals>.<genexpr>.<lambda>j   s    r9   Nr   rX   _s     r1   rZ   z6test_dask_backend_uses_autobatching.<locals>.<genexpr>j   s     N2W\24Ns        @r]   )r   compute_batch_sizer   r   r   r   r   _backend
isinstanceparallel_effective_batch_sizera   int)rR   rd   re   rf   rH   rs   rT   s          r1   #test_dask_backend_uses_autobatchingrv   W   s   11//	0	0 
 >kq&1aAiLt, 	> 0 >Z >8 '//G%g/EFFF"++x777"88A=== NeCHoNN"882===>>	>> >> >> >	> 	>> >sT   DDC<A2C0	C<DD0C95C<<DDD	DDn_jobscontextc                     t         j                  dd      5   |d      5  t        d |        d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY wNr
   	n_workersthreads_per_workerr   )r   r   r   )rw   ry   s     r1   Atest_parallel_unordered_generator_returns_fastest_first_with_daskr   n   sY     
		aA		> O O@vNO O O O O Os   	A?AA	AA	return_as	generatorgenerator_unorderedc                     t         j                  dd      5   | d      5  t        d ||       d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY wr{   )r   r   r   )ry   r   rw   s      r1   %test_deadlock_with_generator_and_daskr   u   sS    
 
		aA		> ? ?%dIv>? ? ? ? ? ?s!   	AA A A		AAc                 
   t         j                  dd      5  t        j                  t	        d      t        j
                        }t        d      D ]C  } | d      5  t        |      }d d d        t              dk(  sJ t        d |D              rCJ   | d      5  t               }d d d        t              dk(  sJ t        d	 |D              sJ 	 d d d        y # 1 sw Y   xxY w# 1 sw Y   CxY w# 1 sw Y   y xY w)
Nr
   r|   g    cAdtyper   data   c              3   ,   K   | ]  \  }}|d k(    ywr   Nr5   rX   namern   s      r1   rZ   z4test_nested_parallelism_with_dask.<locals>.<genexpr>   s      5<T100   c              3   ,   K   | ]  \  }}|d k(    ywr   r5   r   s      r1   rZ   z4test_nested_parallelism_with_dask.<locals>.<genexpr>   s      
18qD,,
r   )
r   r   r   onesru   uint8ra   r   rE   all)ry   r   rY   backend_types_and_levelss       r1   !test_nested_parallelism_with_daskr   ~   s    
		aA		> 
wws3xrxx0q 	A N+B+M(N/0A555 @X   		 V_ 	A'>'@$	A+,111 
<T
 
 	
 

 
N N	A 	A
 
sB   AC9C!**C9C9 C-+,C9!C*&C9-C6	2C99Dc                      t               S r4   r   r5   r9   r1   random2r      s	    8Or9   c           	      0   t               5 \  }\  }}t        |d   |       5 }t        d      5   t               d t	        d      D              \  }}||k7  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)NrP   rQ   r   rS   c              3   D   K   | ]  } t        t                       y wr4   )r   r   rW   s     r1   rZ   z3test_dont_assume_function_purity.<locals>.<genexpr>   s     !G"2''"2"4!G    r
   r   r   r   r   ra   )rR   rd   re   rf   rH   xys          r1    test_dont_assume_function_purityr      s    	 kq&1aAiLt, 	 0 !xz!GeAh!GG1Avv	  	 	 s9   BB +A4B #B4A=9B  B		BBmixedFc                    ddl m} |s.t        d      D cg c]  } t        t              |       }}d}nGt        d      D cg c]1  }|dz  r t        t
              |      n t        t              |      3 }}d}t         ||            |k(  sJ t               5 \  }\  }}t        |d   |       5 }	t        d	
      5   t        dd      |      }
d d d        d }|j                  dd      }|	j                  |      }t        d |D              sJ 	 d d d        d d d        y c c}w c c}w # 1 sw Y   _xY w# 1 sw Y   (xY w# 1 sw Y   y xY w)Nr   )Batchr   batch_of_inc_4_callsr
   mixed_batch_of_inc_4_callsrP   rQ   r   rS   r   )
batch_sizepre_dispatchc                 ,    t        | j                        S r4   )rF   transition_log)dask_schedulers    r1   fztest_dask_funcname.<locals>.f   s    N99::r9   42c              3   *   K   | ]  }d |d   v   yw)batch_of_incr   Nr5   )rX   tups     r1   rZ   z%test_dask_funcname.<locals>.<genexpr>   s     ?C~Q/?s   )joblib._daskr   ra   r   r    absreprr   r   r   r   replacerun_on_schedulerr   )rR   r   r   rY   tasks
batch_reprrd   re   rf   rH   rn   r   rA   s                r1   test_dask_funcnamer      sS   "*/(3Qa33+
HMaQ1AEa|ws|A>QQ1
e+++	 
@kq&1aAiLt, 		@ 0 F>H>uEF; $++C5J))!,C?3????		@
@ 
@ 4 RF F		@ 		@
@ 
@sH   D*6D/E5E D4AE E4D=9E  E		EEc                    	 t        d      D  cg c]  } g  }} t        j                  d      	 	j                  t	        d            d	fd	t        dd      }t        |      }	 t        d	      5   t               fd
|D              }d d d        |t        d      D  cg c]  } g  c} k(  sJ t        d|      }t        |j                               dk(  sJ t        D cg c]  }t        |      dk(   c}      sJ t        d	      5   t               fd|D              }d d d        t        d|      }t        |j                               dkD  sJ t        |D cg c]  }t        |      dk(   c}      sJ 	 |j                  d        |j                  d       y c c} w # 1 sw Y   %xY wc c} w c c}w # 1 sw Y   xY wc c}w # |j                  d        |j                  d       w xY w)Nd   numpyg    .Ac                     |j                   j                  |       | j                  t               j                         | S r4   )testingassert_array_equalappendr	   hex)list_r   Xr   s     r1   isolated_operationzCtest_no_undesired_distributed_cache_hit.<locals>.isolated_operation   s4    JJ))$2UW[[!r9   r   r
   r|   r   rS   c              3   @   K   | ]  } t              |        y wr4   rl   )rX   r   r   s     r1   rZ   z:test_no_undesired_distributed_cache_hit.<locals>.<genexpr>   s     SE8W%78?Ss   receive-from-scatterr   c              3   D   K   | ]  } t              |         yw)r   Nrl   )rX   r   r   r   s     r1   rZ   z:test_no_undesired_distributed_cache_hit.<locals>.<genexpr>   s)      ?D+*+E::s       timeoutr4   )ra   rb   importorskiparangeru   r   r   r   r   rN   sumvaluesr   rE   close)
rn   listsr   rH   rescountsrr   r   r   s
          @@@r1   'test_no_undesired_distributed_cache_hitr      s    s$AR$E$			W	%B		#c(A Q1=GG_F"V, 	T(*SUSSC	T U3Z00000
 4f=6==?#q(((-ACFaK-...V, 	 (* HM C	 4f=6==?#a'''-ACFaK-...R b!S %	T 	T 1 .	 	 .R b!se   	F0,G 8F5G (	G1:G +G G G0;G +G 	G 5F?:G GG 'Hc                   "    e Zd Zd Zd ZeZd Zy)CountSerializedc                      || _         d| _        y )Nr   )r   count)selfr   s     r1   __init__zCountSerialized.__init__   s    
r9   c                 6    | j                   t        |d|      z   S )Nr   )r   getattr)r   others     r1   __add__zCountSerialized.__add__   s    vvsE222r9   c                 R    | xj                   dz  c_         t        | j                  ffS )Nr   )r   r   r   )r   s    r1   
__reduce__zCountSerialized.__reduce__   s     

a
$&&++r9   N)__name__
__module____qualname__r   r   __radd__r   r5   r9   r1   r   r      s    3 H,r9   r   c                     | |z   |z   |z   |z   S r4   r5   )re   rf   cdes        r1   add5r     s    q519q=1r9   c                    d t        d      D        \  }}}}t        t              }t        d      D cg c]  } ||||dd       }}| ||||dd       |||||d       ||||||      gz  }|D 	
cg c]  \  }}	}
 ||	i |
 }}	}}
t               5 \  }}t	        |d   |       5 }t        d|||g	      5   t        d
      |      }||k(  sJ 	 d d d        t        j                  t              5  t        d| d
      5  	 d d d        d d d        d d d        d d d        |j                  }|j                  |k(  sJ |j                  |k(  sJ |j                  }||||fD ]	  }d|_
         t               5 \  }}t	        |d   |       5 }t               |||fD ]!  }|j                  |d      t        |      <   # |D 	
cg c]h  \  }}	}
 |j                  |gfd|	D        i t        fd|
j                         D              dt!        t#                     ij%                         j }}	}}
||k(  sJ 	 d d d        d d d        |j                  }|j                  |k(  sJ |j                  |k(  sJ ||k(  sJ t'        d t(        j*                  j-                  d      D              }|dk  r|j                  |d
z   k(  sJ y |j                  |k(  sJ y c c}w c c}
}	}w # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY wc c}
}	}w # 1 sw Y   xY w# 1 sw Y   xY w)Nc              3   2   K   | ]  }t        |        y wr4   )r   rW   s     r1   rZ   z&test_manual_scatter.<locals>.<genexpr>  s     7/!$7   r   r]      )r   r   rP   rQ   r   )rT   scatterr   )r   )rT   rR   r   r   T)	broadcastc              3   T   K   | ]  }j                  t        |      |       ! y wr4   r*   id)rX   arg	scattereds     r1   rZ   z&test_manual_scatter.<locals>.<genexpr>:  s      BcimmBsGS1Bs   %(c              3   ^   K   | ]$  \  }}|j                  t        |      |      f & y wr4   r   )rX   keyvaluer   s      r1   rZ   z&test_manual_scatter.<locals>.<genexpr>;  s1      (S% immBuIu=>s   *-r   c              3   2   K   | ]  }t        |        y wr4   )ru   )rX   r0   s     r1   rZ   z&test_manual_scatter.<locals>.<genexpr>M  s     S1ASr   .)i  r   )ra   r   r   r   r   r   r   rb   rc   	TypeErrorr   dictr   r   submitr+   strr	   resulttupler   __version__split)rR   rK   r   r   zr   rn   r   funcr6   r7   expectedrd   rH   results_parallel%n_serialization_scatter_with_paralleln_serialization_with_parallelvarobjresults_nativen_serialization_scatter_nativedistributed_versionr   s                         @r1   test_manual_scatterr
    s    8eAh7JAq!QA+095aQq!Q!q!5E5		!QQ!	!QQ!	!QQ! E
 AFFF*<$fd%f%FHF	 
fq!AiLt, 		 !QC 4#98q#9%#@ '83334 y) $V$J 		
 -.GG)77;;;;77;;;;$%GG! 1a| 	 
 .fq!AiLt, 	.I!Qw I%+^^C4^%H	"S'"I -2  )T4 BTB  ,2LLN  EG &(N  "X---!	..* &'WW"77444477444404RRRRS0G0G0M0Mc0RSSY&
 ww7!;;;;ww7777G 6 G4 4  		 		
 
:		. 	.. .s   K*:K/L*/L K6!L<LL	LLL*M
:L>A-L7>L>
M
6L ;LLLLLL'	"L**L47L>>M	M

Mc           	        	 t        j                  d      } |j                  t        d      |j                        	 |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        t        d
|      }||d      ||d      z   dk(  sJ 	 d d d        d d d        t               5 \  }\  }}t        |d   |       5 }t        d      5   t               	fdt        d      D               d d d        t        d
|      }||d      dk(  sJ ||d      dk(  sJ 	 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   xY w# 1 sw Y   exY w# 1 sw Y   BxY w# 1 sw Y   y xY w)Nr   ro   r   r_   rP   rQ   r   rS   c              3   T   K   | ]   \  }} t        t              ||||        " yw))optNr   r8   )rX   rY   r   s      r1   rZ   z$test_auto_scatter.<locals>.<genexpr>f  s0      4 "GDM$aT::s   &(r   r
   c              3   P   K   | ]  } t        t              d d |        y w)Nr_   r  )rX   rY   data1s     r1   rZ   z$test_auto_scatter.<locals>.<genexpr>s  s$     I1=74=rA6Is   #&r   r   )rb   r   r   ru   r   r   r   r   r   	enumeraterN   ra   )
loop_in_threadr   data2data_to_processrd   re   rf   rH   r   r  s
            @r1   test_auto_scatterr  [  s   			W	%BBGGCHBHH-EBGGCHBHH-Ew{w{3O	 Dkq&1aAiL~6 	D& 0  
 #,_#=  ""8&AF!I,'&9*>>!CCC	DD 
 -kq&1aAiL~6 	-& 0 J
IaIIJ ""8&AF!I,'1,,,!I,'1,,,	-- - 	D 	DD D"J J	- 	-- -sx   <F%F !F*F,F%G	F=*#F1.F=<G	FFF"	F%%F.1F:6F==G	G		Gretry_noc           	        	
 t        j                  d      
dd}
fd		fdt               5 \  }\  }}t        |d   |       5 }t	        d      5   
j
                  d	       t               fd
t        |      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)Nr   r]   c                 (     j                   |       S r4   )r   )r   rY   jr   s      r1   my_sumz#test_nested_scatter.<locals>.my_sum  s    rvvayr9   c                      t               }t        d      5   t                fdt              D              }d d d        t	        |      S # 1 sw Y   t	              S xY w)Nr   rS   c              3   J   K   | ]  } t              |d  |        y wr4   rl   )rX   r  arrayrY   r  s     r1   rZ   zEtest_nested_scatter.<locals>.outer_function_joblib.<locals>.<genexpr>  s+      !56ab	1a0!s    #)r   r   r   ra   r   )r  rY   rH   resultsNUM_INNER_TASKSr  s   ``  r1   outer_function_joblibz2test_nested_scatter.<locals>.outer_function_joblib  sZ    V, 	 hj !:?:P! G	 7|		 7|s   %AA%rP   rQ   r   rS   i'  c              3   H   K   | ]  } t              |d  |        y wr4   rl   )rX   rY   my_arrayr   s     r1   rZ   z&test_nested_scatter.<locals>.<genexpr>  s.       3G128AB<C   ")rb   r   r   r   r   r   r   ra   )rR   r  NUM_OUTER_TASKSrd   re   rf   rn   r  r"  r  r   r   s          @@@@@r1   test_nested_scatterr%  {  s    			W	%BOO 
 kq&1aAiLt, 	 0 "2775>HJ "?3 	  	 	 s;   B?B36B'B3B?'B0,B33B<	8B??Cc           	         d t               5 \  }\  }}t        |d   |       5 }t        d      5   t        d      fdt	        d	      D              }|D ]  }t        t        |            dk  rJ  	 d d d        d d d        t        |d   |       5 }t        d      5   t        d      fd
t	        d	      D              }|D ]  }t        t        |            dk  r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   2xY w# 1 sw Y   6xY w# 1 sw Y   y xY w)Nc            	          t         t        d      d t        d      D                    } | t         t        d      d t        d      D                    z  } | S )Nr
   rw   c              3   X   K   | ]"  } t        t        j                                $ y wr4   r   r(   getpidrm   s     r1   rZ   zOtest_nested_backend_context_manager.<locals>.get_nested_pids.<locals>.<genexpr>  s     %Mq&8gbii&8&:%M   (*c              3   X   K   | ]"  } t        t        j                                $ y wr4   r*  rm   s     r1   rZ   zOtest_nested_backend_context_manager.<locals>.get_nested_pids.<locals>.<genexpr>  s     &N'9wryy'9';&Nr,  )setr   ra   )pidss    r1   get_nested_pidsz<test_nested_backend_context_manager.<locals>.get_nested_pids  sN    %81%%ME!H%MMN&HA&&NU1X&NNOOr9   rP   rQ   r   rS   r
   r(  c              3   >   K   | ]  } t                       y wr4   rl   rX   rn   r0  s     r1   rZ   z6test_nested_backend_context_manager.<locals>.<genexpr>  !      034,GO,.0   r]   c              3   >   K   | ]  } t                       y wr4   rl   r2  s     r1   rZ   z6test_nested_backend_context_manager.<locals>.<genexpr>  r3  r4  )r   r   r   r   ra   rE   r.  )r  rd   re   rf   rH   
pid_groups	pid_groupr0  s          @r1   #test_nested_backend_context_managerr8    sM   
 
 4kq&1aAiL~6 	4& 0 4/XQ/ 08=b	0 
 ", 4Is9~.!3334	4	4 AiL~6 	4& 0 4/XQ/ 08=b	0 
 ", 4Is9~.!3334	4	44 44 4	4 	44 4	4 	44 4sw   D5DAD5D9DD5D)&AD(D,D)4D5D
DD	D5D&"D))D2	.D55D>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        D ]  \  }}|dk(  sJ |dk(  r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   *xY w# 1 sw Y   y xY w)Nc                 B    | j                   j                  j                  S r4   )rq   	__class__r   )ps    r1   _backend_typezJtest_nested_backend_context_manager_implicit_n_jobs.<locals>._backend_type  s    zz##,,,r9   c                  l    t               5 }  |       | j                  fcd d d        S # 1 sw Y   y xY wr4   )r   rw   )r<  r=  s    r1   get_nested_implicit_n_jobszWtest_nested_backend_context_manager_implicit_n_jobs.<locals>.get_nested_implicit_n_jobs  s0    Z 	.1 #QXX-	. 	. 	.s   *3rP   rQ   r   rS   r   rx   c              3   >   K   | ]  } t                       y wr4   rl   )rX   rn   r?  s     r1   rZ   zFtest_nested_backend_context_manager_implicit_n_jobs.<locals>.<genexpr>  s"      *BC; :;=*r4  r
   )r   r   r   r   rw   ra   )rR   rd   re   rf   rH   r<  all_nested_n_jobsbackend_typenested_n_jobsr=  r?  s            @@r1   3test_nested_backend_context_manager_implicit_n_jobsrD    s
   -. 
 /kq&1aAiLt, 
	/ 0 	/Z 1(+/GGGG88r>)>() *GLQx* )% 4E //L-'+CCCC(B.../	/
	// / 	/ 	/
	/ 
	// /sW   CCC9B7	=CCC&C7C <CCCC	CC$c                     t        j                  t              5 }t        d      5  	 d d d        d d d        dt	        j
                        j                         v sJ y # 1 sw Y   9xY w# 1 sw Y   =xY w)Nr   rS   zcreate a dask client)rb   rc   r;   r   r   r   lower)rR   infos     r1   test_errorsrH    sf    	z	" dV, 		 "S_%:%:%<<<<	 	 s!   A-A!A-!A*	&A--A6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        t        d      5   t        d      d
 t	        d      D              }t        |d	   d	   d	   t              sJ 	 d d d        d d d        d d d        y # 1 sw Y   mxY w# 1 sw Y   &xY w# 1 sw Y   *xY w# 1 sw Y   y xY w)NrP   rQ   r   rS   r
   r(  c              3   H   K   | ]  } t        t              d         y w)Nnested_requirer   outerrm   s     r1   rZ   z.test_correct_nested_backend.<locals>.<genexpr>  s#      ,<=NGEN$77,    "r   r   c              3   H   K   | ]  } t        t              d         yw)	sharedmemrK  NrM  rm   s     r1   rZ   z.test_correct_nested_backend.<locals>.<genexpr>  s#      ,CDNGEN+>>,rO  )r   r   r   r   ra   rr   r   r   )rR   rd   re   rf   rH   r   s         r1   test_correct_nested_backendrR    s   	 Ekq&1aAiLt, 	E 0 K++ ,AFq,  "&)A,q/3IJJJ	K !0 E++ ,HMa,  "&)A,q/3CDDD	E	EE EK KE E	E 	EE EsQ   C>C2>C.C2>C&C2	C>C#C2&C/+C22C;	7C>>Dc                 N      t        dd       fdt        d      D              S )Nr
   threads)rw   preferc              3   H   K   | ]  } t        t                      y wr4   )r   middle)rX   rn   rL  s     r1   rZ   zouter.<locals>.<genexpr>  s!      0,-'0r#  r   r   ra   rK  s   `r1   rN  rN    s*    /81Y/ 016q0  r9   c                 H     t        d|       d t        d      D              S )Nr
   )rw   requirec              3   D   K   | ]  } t        t                       y wr4   )r   innerrm   s     r1   rZ   zmiddle.<locals>.<genexpr>  s     .RA~wu~/?.Rr   r   rX  )rZ  s    r1   rW  rW    s     .81g..Rq.RRRr9   c                  *    t               j                  S r4   )r   rq   r5   r9   r1   r\  r\    s    :r9   c                     t        | dd      5  t        d      5   t        d      d t        d	      D               d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)
NFT)rR   	processesset_as_defaultr   rS   r   r(  c              3   F   K   | ]  } t        t              |        y wr4   )r   r   rW   s     r1   rZ   z0test_secede_with_no_processes.<locals>.<genexpr>  s     @!{wr{1~@r\   r
   )r   r   r   ra   rQ   s    r1   test_secede_with_no_processesrb    sg    	TU4	@ AV, 	AHA@uQx@@	AA A	A 	AA As!   A#AAA	AA%c                 0    ddl m}  |       j                  S )Nr   )
get_worker)r   rd  rP   )rn   rd  s     r1   _worker_addressre    s    &<r9   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        t        d|d         5   t               d t	        d      D              }||d   gdz  k(  sJ 	 d d d        d d d        d d d        y # 1 sw Y   bxY w# 1 sw Y   &xY w# 1 sw Y   *xY w# 1 sw Y   y xY w)NrP   rQ   r   )rT   workersc              3   F   K   | ]  } t        t              |        y wr4   r   re  rW   s     r1   rZ   z-test_dask_backend_keywords.<locals>.<genexpr>        P!9!9!!< Pr\   r]   c              3   F   K   | ]  } t        t              |        y wr4   ri  rW   s     r1   rZ   z-test_dask_backend_keywords.<locals>.<genexpr>  rj  r\   r   )rR   rd   re   rf   rH   rg   s         r1   test_dask_backend_keywordsrl    s    	 2kq&1aAiLt, 	2 9F 2 hj PeBi PPq|nr11112 !9F 2 hj PeBi PPq|nr11112	22 22 22 2	2 	22 2sQ   C(C/C#C;/C+C3C(C	CCCC%	!C((C1c                    t        d|       5 }t        d      5   t               d t        d      D               d d d        t	               }|j
                  j                  j                  r>t        d       t	               |dz   k  sJ |j
                  j                  j                  r>|j                  rJ 	 d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)	NF)r_  rR   r   rS   c              3   F   K   | ]  } t        t              |        y wr4   rV   rW   s     r1   rZ   z/test_scheduler_tasks_cleanup.<locals>.<genexpr>       :1|ws|A:r\   r]   g{Gz?r   )
r   r   r   ra   r   r   	schedulerr   r   futures)rR   rH   starts      r1   test_scheduler_tasks_cleanuprs  
  s    	%d	+ 	"vV, 	;HJ:b	::	; nn&&,,$K6EAI%%% nn&&,, >>!!>	" 	"	; 	;	" 	"s(   C!CA/C,C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        |j                           |j                          y # 1 sw Y   +xY w# |j                           |j                          w xY w)Nr   Fr
   r}   r_  r~   ru  )minimummaximumrv  r   rS   c              3   F   K   | ]  } t        t              |        y wr4   rV   rW   s     r1   rZ   z(test_wait_for_workers.<locals>.<genexpr>+  ro  r\   r]   )r   r   adaptscaler   r   ra   r   )rt  r   rH   s      r1   test_wait_for_workersr    s     Q%ANGG_F:%a+	^	+
 	aV, 	; HJ:b	::	;
 		; 	;
 	s$   B/ !B#9B/ #B,(B/ /#Cc                     t        ddd      } t        |       }	 t        dd      5  d}t        j                  t
        |	      5   t               d
 t        d      D               d d d        d d d        t        dd      5  d}t        j                  t        |	      5   t               d t        d      D               d d d        d d d        |j                           | j                          y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   KxY w# 1 sw Y   OxY w# |j                           | j                          w xY w)Nr   Fr
   ry  r   g?)rT   wait_for_workers_timeoutz7DaskDistributedBackend has no worker after 0.1 seconds.)matchc              3   F   K   | ]  } t        t              |        y wr4   rV   rW   s     r1   rZ   z0test_wait_for_workers_timeout.<locals>.<genexpr>:       >q<73<?>r\   r]   z+DaskDistributedBackend has no active workerc              3   F   K   | ]  } t        t              |        y wr4   rV   rW   s     r1   rZ   z0test_wait_for_workers_timeout.<locals>.<genexpr>@  r  r\   )
r   r   r   rb   rc   TimeoutErrorr   ra   RuntimeErrorr   )r   rH   msgs      r1   test_wait_for_workers_timeoutr  1  s   Q%ANGG_FVcJ 	?KC|37 ?
>E"I>>?	? VaH 	??C|37 ?
>E"I>>?	? 	? ?	? 	?? ?	? 	? 	sj   D% D!C5'D/D% D"!DDD% 5C>	:DD
D% D	DD"D% %#ErT   lokymultiprocessingc                     t        d      }t        |      }	  fd}|j                  |      }|j                         }t	        |      dk(  sJ |d   j
                  }t        |t              sJ dt        |      v sJ 	 |j                  d        |j                  d       y # |j                  d        |j                  d       w xY w)	Nr
   )r}   c                      t        j                  d      5 }  t        d      d t        d      D               d d d        | S # 1 sw Y    S xY w)NT)recordr
   )rw   rT   c              3   F   K   | ]  } t        t              |        y wr4   rV   rW   s     r1   rZ   zftest_joblib_warning_inside_dask_daemonic_worker.<locals>.func_using_joblib_parallel.<locals>.<genexpr>R  s     3WLGCLO3Wr\   r]   )warningscatch_warningsr   ra   )r  rT   s    r1   func_using_joblib_parallelzStest_joblib_warning_inside_dask_daemonic_worker.<locals>.func_using_joblib_parallelL  sR    
 ((5 X3733WUSUY3WWX MX Ms   $AAr   r   zdistributed.worker.daemonr   r   )
r   r   r   r   rE   messagerr   UserWarningr   r   )rT   r   rH   r  futr  warnings   `      r1   /test_joblib_warning_inside_dask_daemonic_workerr  F  s    Q'GG_F"	 mm676{a)##';///*c'l:::R b! 	R b!s   A&B' ''C)g?)r   r   )P
__future__r   r   r   r(   r  r   r   r   uuidr	   rb    r   r   r   r   _daskr   rs   r   r   commonr   r   test_parallelr   r   r   r   r   r   r   r   r   distributed.metricsdistributed.utils_testr   r   r    fixturer2   r8   r>   rN   rh   rv   markparametrizer   r   r   r   r   r   r   objectr   r   r
  r  rF   ra   r%  r8  rD  rH  rR  rN  rW  r\  rb  re  rl  rs  skipifr   r  r  r  r5   r9   r1   <module>r     s   @ @ 	      C C * : "  "f!!-0v6" 9 8 $ 9 8 j$/ 0"	8: >. Ar7+_6F$GHO I ,O
 Ar7+{4I&JK_6F$GH? I L , ?
 _6F$GH
 I 
* 4-0@ 1@24"n,f ,P8l-@ T%(^4 5642/2=E$SA 	2
" +j.-IJw&N;+B+Bh+NL  	 K
** V->$?@" A"r9   