
    7ThY                     d   S SK JrJrJr  S SKrS SKrS SKJr  S SKJr  S SK	J
r
  S SKrSSKJrJrJrJr  SSKJr  SS	KJrJr  S
SKJrJr  S
SKJrJrJr  \R:                  " S5      r\R:                  " S5      rS SKJ r J!r!J"r"  S SK#Jr  S SK$J%r%J&r&J'r'  \RP                  " SSS9S 5       r)S r*SIS jr+S r,S r-S r.\R^                  Ra                  SSS/5      \R^                  Ra                  S\\/5      S 5       5       r1\\R^                  Ra                  SSS/5      \R^                  Ra                  SS S!/5      \R^                  Ra                  S\\/5      S" 5       5       5       5       r2\\R^                  Ra                  S\\/5      S# 5       5       r3S$ r4S% r5\R^                  Ra                  S&SS'/5      S( 5       r6S) r7 " S* S+\85      r9SJS, jr:S- r;S. r<\R^                  Ra                  S/\=" \>" S5      5      5      S0 5       r?S1 r@S2 rAS3 rBS4 rCS5 rDS6 rES7 rFS8 rGS9 rHS: rIS; rJ\R^                  Ra                  S<S=S>/5      \R^                  R                  \R                  S?:*  =(       a    \R                  S@:  SASB9SC 5       5       rMSD rN\R^                  Ra                  SESFSG/5      SH 5       rOg)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              #   >  #    SSK Jn  UR                   Vs0 s H"  o"[        R                  R                  U5      _M$     nnS v   UR                  5        H=  u  p$Uc"  [        R                  R                  US 5        M*  U[        R                  U'   M?     g s  snf 7f)Nr   )ParallelBackendBase)joblib._parallel_backendsr%   MAX_NUM_THREADS_VARSosenvirongetitemspop)tmp_pathr%   k	old_valuevs        M/var/www/auris/envauris/lib/python3.13/site-packages/joblib/test/test_dask.pyavoid_dask_env_leaksr2   !   sx     
 >/B/W/WX/W!BJJNN1%%/WIX	 !9JJNN1d#BJJqM	 "	 Ys   B)B ABc                      g N )argskwargss     r1   noopr8   3   s        c                 >    [        U5        U (       a  [        S5      eg )Nzcondition evaluated to True)r   
ValueError)	conditiondurations     r1   slow_raise_value_errorr>   7   s    	(O677 r9   c                     UR                  S 5      n0 nUR                  5        H6  u  pE[        [        U5       Vs/ s H  ofS   U :X  d  M  UPM     sn5      X4'   M8     U$ s  snf )Nc                     U R                   $ r4   )log)dask_workers    r1   <lambda>count_events.<locals>.<lambda>>   s    ;??r9   r   )runr+   lenlist)
event_nameclientworker_eventsevent_countsweventsevents          r1   count_eventsrO   =   sd    JJBCML"((*	 $VGuaJ0FUG
 +  Hs   A!
A!
c           
         [        5        u  nu  p#[        US   U S9 n[        SS9   [        5       " S [	        S5       5       5      nU[	        S5       Vs/ s H  n[        U5      PM     sn:X  d   e[        R                  " [        5         [        5       " S [	        S5       5       5        S S S 5        [        5       " S [	        S5       5       5      nU[	        S5       Vs/ s H  n[        U5      PM     sn:X  d   e S S S 5        S S S 5        S S S 5        g s  snf ! , (       d  f       Nx= fs  snf ! , (       d  f       N:= f! , (       d  f       NC= f! , (       d  f       g = f)	Naddressloopr   backendc              3   L   #    U  H  n[        [        5      " U5      v   M     g 7fr4   r   r    .0is     r1   	<genexpr>test_simple.<locals>.<genexpr>K         D)Qa)   "$
   c              3   R   #    U  H  n[        [        5      " US :H  5      v   M     g7f)   N)r   r>   rX   s     r1   r[   r\   O   s%      IRA 67Q??s   %'c              3   L   #    U  H  n[        [        5      " U5      v   M     g 7fr4   rW   rX   s     r1   r[   r\   S   r]   r^   )	r   r   r   r   ranger    pytestraisesr;   )rS   sabrI   seqrZ   s          r1   test_simplerj   G   s   	kq&1AiLt, 0j D%) DDuRy9y!s1vy9999]]:.J INr  /
 j D%) DDuRy9y!s1vy9999 1 - 
 :.. : 10 -, 
so   E
E/D7D,"D7!D!	/6D7%D2:D7EED7!
D/+D77
EE
E	E
E'c                 l   [         R                  [        R                  L d   e[        5        u  nu  p#[	        US   U S9 n[        SS9   [        5        nUR                  n[        U[         5      (       d   eUR                  UL d   eUR                  S:X  d   eU" S [        [        S5      5       5       5        UR                  S:  d   e S S S 5        S S S 5        S S S 5        S S S 5        g ! , (       d  f       N'= f! , (       d  f       N0= f! , (       d  f       N9= f! , (       d  f       g = f)	NrQ   rR   r   rT   r   c              3   D   #    U  H  n[        S  5      " 5       v   M     g7f)c                      g r4   r5   r5   r9   r1   rC   ?test_dask_backend_uses_autobatching.<locals>.<genexpr>.<lambda>j   s    Tr9   Nr   rY   _s     r1   r[   6test_dask_backend_uses_autobatching.<locals>.<genexpr>j   s     NoW\244os         @r_   )r   compute_batch_sizer   r   r   r   r   _backend
isinstanceparallel_effective_batch_sizerc   int)rS   rf   rg   rh   rI   rw   rU   s          r1   #test_dask_backend_uses_autobatchingrz   W   s    11//	0	0 
kq&1AiLt, 0Z8 '//G%g/EFFFF"++x777"88A=== NeCHoNN"882===   1 - 
  Z 10 -, 
sT   D%
DDA:C2	DD!D%2
D <D
DD
D"	D%%
D3n_jobscontextc                     [         R                  SSS9   U" S5         [        S U 5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = fNr
   	n_workersthreads_per_workerr   )r   r   r   )r{   r}   s     r1   Atest_parallel_unordered_generator_returns_fastest_first_with_daskr   n   s@     
		aA		>@vN AP	>	>	>	>   	A<A
A
	A
A	return_as	generatorgenerator_unorderedc                     [         R                  SSS9   U " S5         [        S X5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = fr   )r   r   r   )r}   r   r{   s      r1   %test_deadlock_with_generator_and_daskr   u   s@    
 
		aA		>%dI> AP	>	>	>	>r   c                 4   [         R                  SSS9   [        R                  " [	        S5      [        R
                  S9n[        S5       HG  nU " S5         [        US9nS S S 5        [        W5      S:X  d   e[        S U 5       5      (       a  MG   e   U " S5         [        5       nS S S 5        [        W5      S:X  d   e[        S	 U 5       5      (       d   e S S S 5        g ! , (       d  f       N= f! , (       d  f       NS= f! , (       d  f       g = f)
Nr
   r   g    cAdtyper   data   c              3   0   #    U  H  u  pUS :H  v   M     g7fr   Nr5   rY   namerq   s      r1   r[   4test_nested_parallelism_with_dask.<locals>.<genexpr>   s      @XWT00@X   c              3   0   #    U  H  u  pUS :H  v   M     g7fr   r5   r   s      r1   r[   r      s      
<TD,,<Tr   )
r   r   r   onesry   uint8rc   r   rF   all)r}   r   rZ   backend_types_and_levelss       r1   !test_nested_parallelism_with_daskr   ~   s     
		aA		>wws3xrxx0qA+B+M( !/0A555 @X    	  V_'>'@$ +,111 
<T
 
 
 	
 
 
?	> ! _ 
?	>sB   AD	
C'".D	D	 C8+2D	'
C51D	8
D	D		
Dc                      [        5       $ r4   r   r5   r9   r1   random2r      s	    8Or9   c           	      >   [        5        u  nu  p#[        US   U S9 n[        SS9   [        5       " S [	        S5       5       5      u  pVXV:w  d   e S S S 5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N(= f! , (       d  f       g = f)NrQ   rR   r   rT   c              3   J   #    U  H  n[        [        5      " 5       v   M     g 7fr4   )r   r   rX   s     r1   r[   3test_dont_assume_function_purity.<locals>.<genexpr>   s     !Gh''"2"4"4h   !#r
   r   r   r   r   rc   )rS   rf   rg   rh   rI   xys          r1    test_dont_assume_function_purityr      sq    	kq&1AiLt, 0z!GeAh!GGvv 1 - 
00 -, 
s9   B
A=*A,A=B,
A:6A==
B	B
BmixedFc                    SSK Jn  U(       d1  [        S5       Vs/ s H  n[        [        5      " U5      PM     nnSnON[        S5       Vs/ s H6  o3S-  (       a  [        [
        5      " U5      O[        [        5      " U5      PM8     nnSn[        U" U5      5      U:X  d   e[        5        u  nu  px[        US   U S9 n	[        S	S
9   [        SSS9" U5      n
S S S 5        S nUR                  SS5      nU	R                  U5      n[        S U 5       5      (       d   e S S S 5        S S S 5        g s  snf s  snf ! , (       d  f       Ni= f! , (       d  f       N2= f! , (       d  f       g = f)Nr   )Batchr   batch_of_inc_4_callsr
   mixed_batch_of_inc_4_callsrQ   rR   r   rT   r   )
batch_sizepre_dispatchc                 ,    [        U R                  5      $ r4   )rG   transition_log)dask_schedulers    r1   ftest_dask_funcname.<locals>.f   s    N99::r9   42c              3   2   #    U  H  nS US   ;   v   M     g7f)batch_of_incr   Nr5   )rY   tups     r1   r[   %test_dask_funcname.<locals>.<genexpr>   s     ?3C~Q/3s   )joblib._daskr   rc   r   r    absreprr   r   r   r   replacerun_on_schedulerr   )rS   r   r   rZ   tasks
batch_reprrf   rg   rh   rI   rq   r   rA   s                r1   test_dask_funcnamer      s&   "*/(3(Qa(3+
HMaQ1Eaws|A>Q1
e+++	kq&1AiLt, 0>uE 1; $++C5J))!,C?3????? - 
 4 R 10 -, 
sH   D5=D:.E!
ED?AE$E!?
E	E
E	E!!
E/c                  4  ^^^	 [        S5       V s/ s H  n / PM     nn [        R                  " S5      m	T	R                  " [	        S5      5      mSUU	4S jjm[        SSS9n[        U5      n [        SS	9   [        5       " U4S
 jU 5       5      nS S S 5        U[        S5       V s/ s H  n / PM     sn :X  d   e[        SU5      n[        UR                  5       5      S:X  d   e[        W Vs/ s H  n[        U5      S:H  PM     sn5      (       d   e[        SS	9   [        5       " UU4S jU 5       5      nS S S 5        [        SU5      n[        UR                  5       5      S:  d   e[        U Vs/ s H  n[        U5      S:H  PM     sn5      (       d   e UR                  SS9  UR                  " SS9  g s  sn f ! , (       d  f       GN8= fs  sn f s  snf ! , (       d  f       N= fs  snf ! UR                  SS9  UR                  " SS9  f = f)Nd   numpyg    .Ac                    > Ub  TR                   R                  UT5        U R                  [        5       R                  5        U $ r4   )testingassert_array_equalappendr	   hex)list_r   Xr   s     r1   isolated_operationCtest_no_undesired_distributed_cache_hit.<locals>.isolated_operation   s4    JJ))$2UW[[!r9   r   r
   r   r   rT   c              3   F   >#    U  H  n[        T5      " U5      v   M     g 7fr4   ro   )rY   r   r   s     r1   r[   :test_no_undesired_distributed_cache_hit.<locals>.<genexpr>   s     SUEW%78??Us   !receive-from-scatterr   c              3   D   >#    U  H  n[        T5      " UTS 9v   M     g7f)r   Nro   )rY   r   r   r   s     r1   r[   r      s!      HMu*+E:       timeoutr4   )rc   rd   importorskiparangery   r   r   r   r   rO   sumvaluesr   rF   close)
rq   listsr   rI   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,*SUSSC - U3Z0ZZ0000
 4f=6==?#q(((-ACFaK-....V, * HM C - 4f=6==?#a'''-ACFaK-....R b!S % -, 1 .,, .R b!se   F?/	G6 8GG6 )G5<G6 1G	G6  G <<G6 8G1G6 
GG6  
G.*G6 6!Hc                   *    \ rS rSrS rS r\rS rSrg)CountSerialized   c                     Xl         SU l        g )Nr   )r   count)selfr   s     r1   __init__CountSerialized.__init__   s    
r9   c                 6    U R                   [        USU5      -   $ )Nr   )r   getattr)r   others     r1   __add__CountSerialized.__add__   s    vvsE222r9   c                 R    U =R                   S-  sl         [        U R                  44$ )Nr   )r   r   r   )r   s    r1   
__reduce__CountSerialized.__reduce__   s     

a
$&&++r9   )r   r   N)	__name__
__module____qualname____firstlineno__r   r   __radd__r   __static_attributes__r5   r9   r1   r   r      s    3 H,r9   r   c                     X-   U-   U-   U-   $ r4   r5   )rg   rh   cdes        r1   add5r     s    519q=1r9   c                   ^ S [        S5       5       u  pp4[        [        5      n[        S5       Vs/ s H  oe" X#USSS9PM     nnUU" X$USSS9U" X2XBSS9U" XDX$US9/-  nU VV	V
s/ s H  u  po" U	0 U
D6PM     nn	nn
[        5        u  p[	        US   U S9 n[        SXU/S	9   [        S
S9" U5      nX:X  d   e S S S 5        [        R                  " [        5         [        SU S
S9    S S S 5        S S S 5        S S S 5        S S S 5        UR                  nUR                  U:X  d   eUR                  U:X  d   eUR                  nXX44 H
  nSUl
        M     [        5        u  p[	        US   U S9 n[        5       mXU4 H  nUR                  USS9T[        U5      '   M!     U VV	V
s/ s Hj  u  pn
UR                  " U/U4S jU	 5       Q70 [        U4S jU
R                  5        5       5      DS[!        [#        5       5      0D6R%                  5       PMl     nn	nn
UU:X  d   e S S S 5        S S S 5        UR                  nUR                  U:X  d   eUR                  U:X  d   eUU:X  d   e['        S [(        R*                  R-                  S5       5       5      nUS:  a  UR                  US
-   :X  d   eg UR                  U:X  d   eg s  snf s  sn
n	nf ! , (       d  f       GN'= f! , (       d  f       GN	= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN'= fs  sn
n	nf ! , (       d  f       GN= f! , (       d  f       GN$= f)Nc              3   8   #    U  H  n[        U5      v   M     g 7fr4   )r   rX   s     r1   r[   &test_manual_scatter.<locals>.<genexpr>  s     7h/!$$h   r   r_      )r   r   rQ   rR   r   )rU   scatterr   )r   )rU   rS   r   r   T)	broadcastc              3   Z   >#    U  H   nTR                  [        U5      U5      v   M"     g 7fr4   r*   id)rY   arg	scattereds     r1   r[   r   :  s#     BTcimmBsGS11Ts   (+c              3   b   >#    U  H$  u  pUTR                  [        U5      U5      4v   M&     g 7fr4   r  )rY   keyvaluer  s      r1   r[   r   ;  s.      ,:LS immBuIu=>,:s   ,/r  c              3   8   #    U  H  n[        U5      v   M     g 7fr4   )ry   )rY   r0   s     r1   r[   r   M  s     S0R1A0Rr   .)i  r   )rc   r   r   r   r   r   r   rd   re   	TypeErrorr   dictr   r  submitr+   strr	   resulttupler   __version__split)rS   rL   r   r   zr   rq   r   funcr6   r7   expectedrf   rI   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7JA!A+0959aQqQ!q!9E5		!Q!	!!	!! E
 AFF*<$fd%f%HF	fqAiLt, !C#+q#9%#@ '333 D y)$V$J K * - 
 -.GG)77;;;;77;;;;$%GG! a|	  
fqAiLt,IQw%+^^C4^%H	"S'"  -2 -2(T BTB  ,2LLN  EG &( -2   "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 DC KJ *) -, 
:	 -, 
s   K(K
L'L'K?"L!L-K1	/L7L?L''M78M /A1L9 M -M
K.)L1
L ;L
LL
L$	L''
L69M  
M	
M
M!c           	        ^	 [         R                  " S5      nUR                  " [        S5      UR                  S9m	UR                  " [        S5      UR                  S9nT	/S-  U/S-  -   n[        5        u  nu  pV[        US   U S9 n[        SS9   [        5       " S	 [        U5       5       5        S S S 5        [        S
U5      nXS      XS      -   S:X  d   e S S S 5        S S S 5        [        5        u  nu  pV[        US   U S9 n[        SS9   [        5       " U	4S j[        S5       5       5        S S S 5        [        S
U5      nXS      S:X  d   eXS      S:X  d   e S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Ny= f! , (       d  f       N[= f! , (       d  f       g = f)Nr   rs   r   ra   rQ   rR   r   rT   c              3   N   #    U  H  u  p[        [        5      " X"XS 9v   M     g7f))optNr   r8   )rY   rZ   r   s      r1   r[   $test_auto_scatter.<locals>.<genexpr>f  s$      #= DM$a:#=s   #%r   r
   c              3   V   >#    U  H  n[        [        5      " TS S U5      v   M      g 7f)Nra   r!  )rY   rZ   data1s     r1   r[   r"  s  s%     I174=rA66s   &)r   r   )rd   r   r   ry   r   r   r   r   r   	enumeraterO   rc   )
loop_in_threadr   data2data_to_processrf   rg   rh   rI   r   r$  s
            @r1   test_auto_scatterr)  [  s   			W	%BGGCHBHH-EGGCHBHH-Ew{w{3O	kq&1AiL~6& 0 
 #,_#=  1 ""8&AFI,'&9*>>!CCC 7 
 
kq&1AiL~6& 0
IaII 1 ""8&AFI,'1,,,I,'1,,, 7 
 10 76 
" 10 76 
sx   7F

F!E:5)FF9G
F>$F-:.F>)G:
FF
F	F
F*-
F;7F>>
G	G
Gretry_noc           	        ^^^	^
^ [         R                  " S5      m
SmSnU
4S jm	UU	4S jm[        5        u  nu  pE[        US   U S9 n[	        SS9   T
R
                  " S	5      m[        5       " UU4S
 j[        U5       5       5      nS S S 5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N(= f! , (       d  f       g = f)Nr   r_   c                 (   > TR                   " U 5      $ r4   )r   )r   rZ   jr   s      r1   my_sum#test_nested_scatter.<locals>.my_sum  s    vvayr9   c                    >^ ^ [        5       n[        SS9   [        5       " U UU4S j[        T5       5       5      nS S S 5        [	        W5      $ ! , (       d  f       N= f)Nr   rT   c              3   P   >#    U  H  n[        T5      " TUS  TU5      v   M     g 7fr4   ro   )rY   r-  arrayrZ   r.  s     r1   r[   Etest_nested_scatter.<locals>.outer_function_joblib.<locals>.<genexpr>  s+      !:PQab	1a00:Ps   #&)r   r   r   rc   r   )r2  rZ   rI   resultsNUM_INNER_TASKSr.  s   ``  r1   outer_function_joblib2test_nested_scatter.<locals>.outer_function_joblib  sJ    V,j !:?:P! G - 7|	 -,s   &A
ArQ   rR   r   rT   i'  c              3   N   >#    U  H  n[        T5      " TUS  U5      v   M     g 7fr4   ro   )rY   rZ   my_arrayr6  s     r1   r[   &test_nested_scatter.<locals>.<genexpr>  s.      3 128AB<CC3   "%)rd   r   r   r   r   r   r   rc   )rS   r*  NUM_OUTER_TASKSrf   rg   rh   rq   r5  r9  r.  r   r6  s          @@@@@r1   test_nested_scatterr=  {  s    			W	%BOO 
kq&1AiLt, 0775>J "?3  1 - 
00 -, 
s;   C

B57B$B5C$
B2.B55
C	?C
Cc           	        ^ S m[        5        u  nu  p#[        US   U S9 n[        SS9   [        SS9" U4S j[	        S	5       5       5      nU H  n[        [        U5      5      S::  a  M   e   S S S 5        S S S 5        [        US   U S9 n[        SS9   [        SS9" U4S
 j[	        S	5       5       5      nU H  n[        [        U5      5      S::  a  M   e   S S S 5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       NA= f! , (       d  f       NJ= f! , (       d  f       g = f)Nc            	          [        [        SS9" S [        S5       5       5      5      n U [        [        SS9" S [        S5       5       5      5      -  n U $ )Nr
   r{   c              3   ^   #    U  H#  n[        [        R                  5      " 5       v   M%     g 7fr4   r   r(   getpidrp   s     r1   r[   Otest_nested_backend_context_manager.<locals>.get_nested_pids.<locals>.<genexpr>  s     %MHqgbii&8&:&:H   +-c              3   ^   #    U  H#  n[        [        R                  5      " 5       v   M%     g 7fr4   rB  rp   s     r1   r[   rD    s     &NXwryy'9';';XrE  )setr   rc   )pidss    r1   get_nested_pids<test_nested_backend_context_manager.<locals>.get_nested_pids  sH    81%%ME!H%MMNHA&&NU1X&NNOOr9   rQ   rR   r   rT   r
   r@  c              3   D   >#    U  H  n[        T5      " 5       v   M     g 7fr4   ro   rY   rq   rI  s     r1   r[   6test_nested_backend_context_manager.<locals>.<genexpr>        08A1GO,..	r   r_   c              3   D   >#    U  H  n[        T5      " 5       v   M     g 7fr4   ro   rL  s     r1   r[   rM    rN  r   )r   r   r   r   rc   rF   rG  )r&  rf   rg   rh   rI   
pid_groups	pid_grouprI  s          @r1   #test_nested_backend_context_managerrR    s   
 
kq&1AiL~6& 0%Q/ 08=b	0 
 ",Is9~.!333 ",	 1 7 AiL~6& 0%Q/ 08=b	0 
 ",Is9~.!333 ",	 1 7 
00 76 10 76 
su   D<
D	>C8.C82D	:D<
D+>DDD+'D<8
DD		
D	D<
D($D++
D9	5D<<
E
c           
        ^	^
 S m	U	4S jm
[        5        u  nu  p#[        US   U S9 n[        SS9   [        5        nT	" U5      S:X  d   eUR                  S:X  d   eU" U
4S	 j[        S
5       5       5      nS S S 5        W H  u  pxUS:X  d   eUS:X  a  M   e   S S S 5        S S S 5        S S S 5        g ! , (       d  f       NB= f! , (       d  f       N0= f! , (       d  f       N9= f! , (       d  f       g = f)Nc                 B    U R                   R                  R                  $ r4   )ru   	__class__r   )ps    r1   _backend_typeJtest_nested_backend_context_manager_implicit_n_jobs.<locals>._backend_type  s    zz##,,,r9   c                  v   > [        5        n T" U 5      U R                  4sS S S 5        $ ! , (       d  f       g = fr4   )r   r{   )rV  rW  s    r1   get_nested_implicit_n_jobsWtest_nested_backend_context_manager_implicit_n_jobs.<locals>.get_nested_implicit_n_jobs  s%    Z1 #QXX- ZZs   *
8rQ   rR   r   rT   r   r|   c              3   D   >#    U  H  n[        T5      " 5       v   M     g 7fr4   ro   )rY   rq   rZ  s     r1   r[   Ftest_nested_backend_context_manager_implicit_n_jobs.<locals>.<genexpr>  s       *GO! :;==xr   r
   )r   r   r   r   r{   rc   )rS   rf   rg   rh   rI   rV  all_nested_n_jobsbackend_typenested_n_jobsrW  rZ  s            @@r1   3test_nested_backend_context_manager_implicit_n_jobsra    s    -. 
kq&1AiLt, 0Z1(+/GGGG88r>)>() *GLQx* )%   4E/L'+CCCC(B... 4E 1 - 
  Z 10 -, 
sV   C)
CC<B6	:CCC%C)6
C C
CC
C&	"C))
C7c                    [         R                  " [        5       n[        SS9    S S S 5        S S S 5        S[	        WR
                  5      R                  5       ;   d   eg ! , (       d  f       N@= f! , (       d  f       NI= f)Nr   rT   zcreate a dask client)rd   re   r;   r   r  r  lower)rS   infos     r1   test_errorsre    sX    	z	"dV, - 
# "S_%:%:%<<<< -, 
#	"s!   
A2A!A2!
A/	+A22
B c           	      0   [        5        u  nu  p#[        US   U S9 n[        SS9   [        SS9" S [	        S5       5       5      n[        US	   S	   S	   [        5      (       d   e S S S 5        [        SS9   [        SS9" S
 [	        S5       5       5      n[        US	   S	   S	   [        5      (       d   e S S S 5        S S S 5        S S S 5        g ! , (       d  f       Nq= f! , (       d  f       N0= f! , (       d  f       N9= f! , (       d  f       g = f)NrQ   rR   r   rT   r
   r@  c              3   H   #    U  H  n[        [        5      " S S9v   M     g 7f)Nnested_requirer   outerrp   s     r1   r[   .test_correct_nested_backend.<locals>.<genexpr>  s      ,AIAGEN$7    "r   r   c              3   H   #    U  H  n[        [        5      " S S9v   M     g7f)	sharedmemrh  Nrj  rp   s     r1   r[   rl    s      ,HP1GEN+>rm  )r   r   r   r   rc   rv   r   r   )rS   rf   rg   rh   rI   r  s         r1   test_correct_nested_backendrp    s    	kq&1AiLt, 0!+ ,AFq,  "&)A,q/3IJJJJ	 1 !0!+ ,HMa,  "&)A,q/3CDDDD	 1 - 
 10 10 -, 
sS   D
C6A C)C6:A C%;C6D
C"C6%
C3/C66
D	 D
Dc                 J   ^  [        SSS9" U 4S j[        S5       5       5      $ )Nr
   threads)r{   preferc              3   N   >#    U  H  n[        [        5      " T5      v   M     g 7fr4   )r   middle)rY   rq   ri  s     r1   r[   outer.<locals>.<genexpr>  s       019A''r;  r   r   rc   rh  s   `r1   rk  rk    s(    1Y/ 016q0  r9   c                 B    [        SU S9" S [        S5       5       5      $ )Nr
   )r{   requirec              3   J   #    U  H  n[        [        5      " 5       v   M     g 7fr4   )r   innerrp   s     r1   r[   middle.<locals>.<genexpr>  s     .RAwu~/?/?r   r   rw  )ry  s    r1   ru  ru    s    1g..Rq.RRRr9   c                  *    [        5       R                  $ r4   )r   ru   r5   r9   r1   r{  r{    s    :r9   c                     [        U SSS9   [        SS9   [        SS9" S [        S	5       5       5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)
NFT)rS   	processesset_as_defaultr   rT   r   r@  c              3   L   #    U  H  n[        [        5      " U5      v   M     g 7fr4   )r   r  rX   s     r1   r[   0test_secede_with_no_processes.<locals>.<genexpr>  s     @x!wr{1~~xr^   r
   )r   r   r   rc   rR   s    r1   test_secede_with_no_processesr    sL    	TU4	@V,A@uQx@@ - 
A	@,, 
A	@s!   
A AA
A	A
A&c                 0    SSK Jn  U" 5       R                  $ )Nr   )
get_worker)r   r  rQ   )rq   r  s     r1   _worker_addressr    s    &<r9   c           	         [        5        u  nu  p#[        US   U S9 n[        SUS   S9   [        5       " S [	        S5       5       5      nXRS   /S-  :X  d   e S S S 5        [        SUS   S9   [        5       " S [	        S5       5       5      nXSS   /S-  :X  d   e S S S 5        S S S 5        S S S 5        g ! , (       d  f       Nd= f! , (       d  f       N0= f! , (       d  f       N9= f! , (       d  f       g = f)NrQ   rR   r   )rU   workersc              3   L   #    U  H  n[        [        5      " U5      v   M     g 7fr4   r   r  rX   s     r1   r[   -test_dask_backend_keywords.<locals>.<genexpr>        Pi!9!!<!<ir^   r_   c              3   L   #    U  H  n[        [        5      " U5      v   M     g 7fr4   r  rX   s     r1   r[   r    r  r^   r   )rS   rf   rg   rh   rI   ri   s         r1   test_dask_backend_keywordsr    s    	kq&1AiLt, 9Fj PeBi PP|nr1111 G !9Fj PeBi PP|nr1111 G - 
FF GF -, 
sQ   C-C/B:C1/C!C)C-:
CC
CC
C*	&C--
C;c                    [        SU S9 n[        SS9   [        5       " S [        S5       5       5        S S S 5        [	        5       nUR
                  R                  R                  (       aE  [        S5        [	        5       US-   :  d   eUR
                  R                  R                  (       a  ME  UR                  (       a   e S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)	NF)r  rS   r   rT   c              3   L   #    U  H  n[        [        5      " U5      v   M     g 7fr4   rW   rX   s     r1   r[   /test_scheduler_tasks_cleanup.<locals>.<genexpr>       :	1ws|A	r^   r_   g{Gz?r   )
r   r   r   rc   r   r   	schedulerr   r   futures)rS   rI   starts      r1   test_scheduler_tasks_cleanupr  
  s    	%d	+vV,J:b	:: - nn&&,,$K6EAI%%% nn&&,,, >>!!> 
,	+,, 
,	+s(   
C !CA:C 2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                    [        SSSS9n[        U5      nU S:X  a  UR                  " SSS9  OU S:X  a  UR                  " S5         [	        SS	9   [        5       " S
 [        S5       5       5        S S S 5        UR                  5         UR                  " 5         g ! , (       d  f       N0= f! UR                  5         UR                  " 5         f = f)Nr   Fr
   r   r  r   r  )minimummaximumr  r   rT   c              3   L   #    U  H  n[        [        5      " U5      v   M     g 7fr4   rW   rX   s     r1   r[   (test_wait_for_workers.<locals>.<genexpr>+  r  r^   r_   )r   r   adaptscaler   r   rc   r   )r  r   rI   s      r1   test_wait_for_workersr    s     Q%ANGG_F:%a+	^	+
 	aV, J:b	:: -
 	 -,
 	s$   	B- !B2B- 
B*&B- -#Cc                     [        SSSS9n [        U 5      n [        SSS9   Sn[        R                  " [
        US	9   [        5       " S
 [        S5       5       5        S S S 5        S S S 5        [        SSS9   Sn[        R                  " [        US	9   [        5       " S [        S5       5       5        S S S 5        S S S 5        UR                  5         U R                  " 5         g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       NZ= f! , (       d  f       Nc= f! UR                  5         U R                  " 5         f = f)Nr   Fr
   r  r   g?)rU   wait_for_workers_timeoutz7DaskDistributedBackend has no worker after 0.1 seconds.)matchc              3   L   #    U  H  n[        [        5      " U5      v   M     g 7fr4   rW   rX   s     r1   r[   0test_wait_for_workers_timeout.<locals>.<genexpr>:       >Iq73<??Ir^   r_   z+DaskDistributedBackend has no active workerc              3   L   #    U  H  n[        [        5      " U5      v   M     g 7fr4   rW   rX   s     r1   r[   r  @  r  r^   )
r   r   r   rd   re   TimeoutErrorr   rc   RuntimeErrorr   )r   rI   msgs      r1   test_wait_for_workers_timeoutr  1  s    Q%ANGG_FVcJKC|37
>E"I>> 8 K VaH?C|37
>E"I>> 8 I 	 87 KJ 87 IH 	si   
D, C9!C(C9'D, 9D!D
6D>D, (
C6	2C99
DD, 

D	D
D)%D, ,#ErU   lokymultiprocessingc                   ^  [        SS9n[        U5      n U 4S jnUR                  U5      nUR                  5       n[	        U5      S:X  d   eUS   R
                  n[        U[        5      (       d   eS[        U5      ;   d   e UR                  SS9  UR                  " SS9  g ! UR                  SS9  UR                  " SS9  f = f)	Nr
   )r   c                     > [         R                  " SS9 n [        STS9" S [        S5       5       5        S S S 5        U $ ! , (       d  f       W $ = f)NT)recordr
   )r{   rU   c              3   L   #    U  H  n[        [        5      " U5      v   M     g 7fr4   rW   rX   s     r1   r[   ftest_joblib_warning_inside_dask_daemonic_worker.<locals>.func_using_joblib_parallel.<locals>.<genexpr>R  s     3WYGCLOOYr^   r_   )warningscatch_warningsr   rc   )r  rU   s    r1   func_using_joblib_parallelStest_joblib_warning_inside_dask_daemonic_worker.<locals>.func_using_joblib_parallelL  sK    
 ((5733WUSUY3WW 6 M 65 Ms   !A
Ar   r   zdistributed.worker.daemonr   r   )
r   r   r  r  rF   messagerv   UserWarningr  r   )rU   r   rI   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	   rd    r   r   r   r   _daskr   rw   r   r   commonr   r   test_parallelr   r   r   r   r   r   r   r   r   distributed.metricsdistributed.utils_testr   r   r    fixturer2   r8   r>   rO   rj   rz   markparametrizer   r   r   r   r   r   r   objectr   r   r  r)  rG   rc   r=  rR  ra  re  rp  rk  ru  r{  r  r  r  r  skipifr  r  r  r  r5   r9   r1   <module>r     s   @ @ 	      C C * : "  !!-0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   