
    HWhG                     \   S SK JrJrJr  S SK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JrJrJr  SSKJrJr  SS	K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  S r S:S jr!S r"S r#S r$S r%S r&\RN                  RQ                  SSS/5      S 5       r)S r* " S S\+5      r,S;S jr-S r.S r/\RN                  RQ                  S \0" \1" S5      5      5      S! 5       r2S" r3S# r4S$ r5S% r6S& r7S' r8S( r9S) r:S* r;S+ r<S, r=\RN                  RQ                  S-S.S//5      \RN                  R}                  \R~                  S0:*  =(       a    \R~                  S1:  S2S39S4 5       5       r@S5 rA\RN                  RQ                  S6S7S8/5      S9 5       rBg)<    )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                      g N )argskwargss     7/usr/lib/python3/dist-packages/joblib/test/test_dask.pynoopr       s        c                 >    [        U5        U (       a  [        S5      eg )Nzcondition evaluated to True)r	   
ValueError)	conditiondurations     r   slow_raise_value_errorr&      s    	(O677 r!   c                     UR                  S 5      n0 nUR                  5        H7  u  pE[        [        U5       Vs/ s H  nUS   U :X  d  M  UPM     sn5      X4'   M9     U$ s  snf )Nc                     U R                   $ r   )log)dask_workers    r   <lambda>count_events.<locals>.<lambda>$   s    ;??r!      )runitemslenlist)
event_nameclientworker_eventsevent_countsweventsevents          r   count_eventsr9   #   sl    JJBCML"((*	$v, :,"'(j"8  %, : ; + :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r   r   r   .0is     r   	<genexpr>test_simple.<locals>.<genexpr>0         D)Qa)   "$
   c              3   R   #    U  H  n[        [        5      " US :H  5      v   M     g7f)   N)r   r&   rB   s     r   rE   rF   4   s)      3(11  ''=>qAvFF(1s   %'c              3   L   #    U  H  n[        [        5      " U5      v   M     g 7fr   rA   rB   s     r   rE   rF   7   rG   rH   )	r   r   r   r   ranger   pytestraisesr#   )r=   sabr3   seqrD   s          r   test_simplerT   ,   s   	kq&1AiLt, 0j D%) DDuRy9y!s1vy9999]]:.J 3(-b	3 3 / 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)	Nr;   r<   r   r>   r-   c              3   D   #    U  H  n[        S  5      " 5       v   M     g7f)c                      g r   r   r   r!   r   r+   ?test_dask_backend_uses_autobatching.<locals>.<genexpr>.<lambda>M   s    r!   Nr   rC   _s     r   rE   6test_dask_backend_uses_autobatching.<locals>.<genexpr>L   s"      !0A  -//!0s         @rI   )r   compute_batch_sizer   r   r   r   r   _backend
isinstanceparallel_effective_batch_sizerM   int)r=   rP   rQ   rR   r3   ra   r?   s          r   #test_dask_backend_uses_autobatchingrd   ;   s   "55 334 5 4 
kq&1AiLt, 0Z8 '//G%g/EFFFF"++x777"88A===  !&s3x  #882===   1 - 
  Z 10 -, 
sT   D%
DDA:C2	DD!D%2
D <D
DD
D"	D%%
D3c                      [        5       $ r   r   r   r!   r   random2rf   S   s	    8Or!   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)Nr;   r<   r   r>   c              3   J   #    U  H  n[        [        5      " 5       v   M     g 7fr   )r   rf   rB   s     r   rE   3test_dont_assume_function_purity.<locals>.<genexpr>[   s     !Gh''"2"4"4h   !#r
   r   r   r   r   rM   )r=   rP   rQ   rR   r3   xys          r    test_dont_assume_function_purityrn   W   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mixedTFc                    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   )Batch   batch_of_inc_4_callsr
   mixed_batch_of_inc_4_callsr;   r<   r   r>   all)
batch_sizepre_dispatchc                 ,    [        U R                  5      $ r   )r1   transition_log)dask_schedulers    r   ftest_dask_funcname.<locals>.fr   s    N99::r!   42c              3   2   #    U  H  nS US   ;   v   M     g7f)batch_of_incr   Nr   )rC   tups     r   rE   %test_dask_funcname.<locals>.<genexpr>v   s     ?3C~Q/3s   )joblib._daskrq   rM   r   r   absreprr   r   r   r   replacerun_on_schedulerru   )r=   ro   rq   rD   tasks
batch_reprrP   rQ   rR   r3   r[   r{   r)   s                r   test_dask_funcnamer   _   s1   "*/(3(Qa(3+
 DI8
CKa1uGCLO'#,q/98 	 
 2
e+++	kq&1AiLt, 0>uE 1;#++C5J))!,C?3????? - 
 4
 10 -, 
sH   D5=D:.E!
ED?AE$E!?
E	E
E	E!!
E/c                  2  ^^^	 [        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 $ r   )testingassert_array_equalappendr   hex)list_dataXnps     r   isolated_operationCtest_no_undesired_distributed_cache_hit.<locals>.isolated_operation   s4    JJ))$2UW[[!r!   r-   r
   )	n_workersthreads_per_workerr   r>   c              3   F   >#    U  H  n[        T5      " U5      v   M     g 7fr   rY   )rC   r   r   s     r   rE   :test_no_undesired_distributed_cache_hit.<locals>.<genexpr>   s"      @Eu*+E22s   !receive-from-scatterr   c              3   D   >#    U  H  n[        T5      " UTS 9v   M     g7f))r   NrY   )rC   r   r   r   s     r   rE   r      s!      HMu*+E:       timeoutr   )rM   rN   importorskiparangerc   r   r   r   r   r9   sumvaluesru   r0   close)
r[   listsr   r3   rescountsrr   r   r   s
          @@@r   'test_no_undesired_distributed_cache_hitr   y   s    s$ARE$			W	%B
		#c(A  Q1=GG_F"V,* @E C - U3Z0ZZ0000
 4f=6==?#q(((-ACFaK-....V, * HM C - 4f=6==?#a'''-ACFaK-....R b!W % -, 1 .,, .R b!se   F>.	G5 7GG5 (G4<G5 0GG5 G;<G5 7G0G5 
GG5 
G-)G5 5!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   )rl   count)selfrl   s     r   __init__CountSerialized.__init__   s    
r!   c                 6    U R                   [        USU5      -   $ )Nrl   )rl   getattr)r   others     r   __add__CountSerialized.__add__   s    vvsE222r!   c                 R    U =R                   S-  sl         [        U R                  44$ )Nr-   )r   r   rl   )r   s    r   
__reduce__CountSerialized.__reduce__   s     

a
$&&++r!   )r   rl   N)	__name__
__module____qualname____firstlineno__r   r   __radd__r   __static_attributes__r   r!   r   r   r      s    3 H,r!   r   c                     X-   U-   U-   U-   $ r   r   )rQ   rR   cdes        r   add5r      s    519q=1r!   c                 *   [        S5      n[        S5      n[        S5      n[        5        u  nu  pV[        US   U S9 n[        SX/S9   [	        [
        5      nU" XUSS	S
9U" XUS	SS
9U" X!X1S	S
9U" X3XUS
9/n	U	 V
VVs/ s H  u  pnU
" U0 UD6PM     nnn
n[        5       " U	5      n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        WW:X  d   eUR                  S:X  d   eUR                  S:X  d   eUR                  S;   d   eg s  snnn
f ! , (       d  f       N= f! , (       d  f       N}= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f)Nr-   r
   rK   r;   r<   r   )r?   scatterrr      )r   r   )r?   r=   r   )rr      )r   r   r   r   r   r   r   rN   rO   	TypeErrorr   )r=   rl   rm   zrP   rQ   rR   r3   r{   r   funcr   r   expectedresultss                  r   test_manual_scatterr      s{   AAA	kq&1AiLt, !@DM1a1-1a1-11-11-/
 7<=6; 2F !$1&16;  ="*U+ A y)$V$J K * - 
" h 77a<<77a<<
 77f%= A@ KJ *) -, 
s|   FE36E D9E *"E3E"E	E""E3*F9E  
E
E3
EE""
E0,E33
F	=F
F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   r]   )dtyperK   r;   r<   r   r>   c              3   N   #    U  H  u  p[        [        5      " X"XS 9v   M     g7f))optNr   r    )rC   rD   r   s      r   rE   $test_auto_scatter.<locals>.<genexpr>   s%      F*Dwq #4=QA*Ds   #%r   r
   c              3   V   >#    U  H  n[        [        5      " TS S U5      v   M      g 7f)NrK   r   )rC   rD   data1s     r   rE   r      s%     I174=rA66s   &)r   r   )rN   r   onesrc   uint8r   r   r   r   	enumerater9   rM   )
loop_in_threadr   data2data_to_processrP   rQ   rR   r3   r   r   s
            @r   test_auto_scatterr      s   			W	%BGGCHBHHG-EGGCHBHHG-Ew{w{3O	kq&1AiL~6& 0 
 F*3O*DF F 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   5F
F	!E83)F	F7G

F<$F+8.F<'G8
FF		
F	F
F(+
F95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   rI   c                 &   > TR                  U 5      $ r   )r   )rl   rD   jr   s      r   my_sum#test_nested_scatter.<locals>.my_sum  s    vvayr!   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   r>   c              3   P   >#    U  H  n[        T5      " TUS  TU5      v   M     g 7fr   rY   )rC   r   arrayrD   r   s     r   rE   Etest_nested_scatter.<locals>.outer_function_joblib.<locals>.<genexpr>  s/      !;%Qab	1a00 ;%s   #&)r   r   r   rM   r   )r   rD   r3   r   NUM_INNER_TASKSr   s   ``  r   outer_function_joblib2test_nested_scatter.<locals>.outer_function_joblib  sM    V,j !:?#;%! G -
 7| -,s   &A
Ar;   r<   r   r>   i'  c              3   N   >#    U  H  n[        T5      " TUS  U5      v   M     g 7fr   rY   )rC   rD   my_arrayr   s     r   rE   &test_nested_scatter.<locals>.<genexpr>   s3      2HQ 12 a) )2H   "%)rN   r   r   r   r   r   r   rM   )r=   r   NUM_OUTER_TASKSrP   rQ   rR   r[   r   r   r   r   r   s          @@@@@r   test_nested_scatterr     s     
		W	%BOO 
kq&1AiLt, 0775>J 272H  1 - 
00 -, 
s;   C

B46B#
B4C#
B1-B44
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
   n_jobsc              3   ^   #    U  H#  n[        [        R                  5      " 5       v   M%     g 7fr   r   osgetpidrZ   s     r   rE   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r   r   rZ   s     r   rE   r   )  s     &NXwryy'9';';Xr   )setr   rM   )pidss    r   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r!   r;   r<   r   r>   r
   r   c              3   D   >#    U  H  n[        T5      " 5       v   M     g 7fr   rY   rC   r[   r  s     r   rE   6test_nested_backend_context_manager.<locals>.<genexpr>/  #      0& O,..&r   rI   c              3   D   >#    U  H  n[        T5      " 5       v   M     g 7fr   rY   r  s     r   rE   r  9  r  r   )r   r   r   r   rM   r0   r   )r   rP   rQ   rR   r3   
pid_groups	pid_groupr  s          @r   #test_nested_backend_context_managerr
  &  s   
 
kq&1AiL~6& 0%Q/ 0"2Y0 
 ",Is9~.!333 ", 1 7 AiL~6& 0%Q/ 0"2Y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                  $ r   )r_   	__class__r   )ps    r   _backend_typeJtest_nested_backend_context_manager_implicit_n_jobs.<locals>._backend_typeE  s    zz##,,,r!   c                  v   > [        5        n T" U 5      U R                  4sS S S 5        $ ! , (       d  f       g = fr   )r   r   )r  r  s    r   get_nested_implicit_n_jobsWtest_nested_backend_context_manager_implicit_n_jobs.<locals>.get_nested_implicit_n_jobsH  s%    Z1 #QXX- ZZs   *
8r;   r<   r   r>   r   c              3   D   >#    U  H  n[        T5      " 5       v   M     g 7fr   rY   )rC   r[   r  s     r   rE   Ftest_nested_backend_context_manager_implicit_n_jobs.<locals>.<genexpr>R  s$      *!)A   :;==!)r   r
   )r   r   r   r   r   rM   )r=   rP   rQ   rR   r3   r  all_nested_n_jobsbackend_typenested_n_jobsr  r  s            @@r   3test_nested_backend_context_manager_implicit_n_jobsr  A  s    -. 
kq&1AiLt, 0Z1(+/GGGG88r>)>() *!&q* )%   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   r>   zcreate a dask client)rN   rO   r#   r   strvaluelower)r=   infos     r   test_errorsr   [  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)Nr;   r<   r   r>   r
   r   c              3   H   #    U  H  n[        [        5      " S S9v   M     g 7f)Nnested_requirer   outerrZ   s     r   rE   .test_correct_nested_backend.<locals>.<genexpr>h  s      ,KAIAGEN$7    "r-   r   c              3   H   #    U  H  n[        [        5      " S S9v   M     g7f)	sharedmemr#  Nr%  rZ   s     r   rE   r'  n  s       ,'% EN+>%r(  )r   r   r   r   rM   r`   r   r   )r=   rP   rQ   rR   r3   results         r   test_correct_nested_backendr,  c  s    	kq&1AiLt, 0!+ ,KAFq,K K!&)A,q/3IJJJJ 1 !0!+ ,'"1X,' ' "&)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r   )r   middle)rC   r[   r$  s     r   rE   outer.<locals>.<genexpr>u  s       019A''r   r-   r   rM   r#  s   `r   r&  r&  t  s(    1Y/ 016q0  r!   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r   )r   innerrZ   s     r   rE   middle.<locals>.<genexpr>{  s      /"*Q(rj   r-   r3  )r5  s    r   r1  r1  z  s'    1g. /"'(/  r!   c                  *    [        5       R                  $ r   )r   r_   r   r!   r   r7  r7    s    :r!   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)r=   	processesset_as_defaultr   r>   rr   r   c              3   L   #    U  H  n[        [        5      " U5      v   M     g 7fr   )r   idrB   s     r   rE   0test_secede_with_no_processes.<locals>.<genexpr>  s     @x!wr{1~~xrH   r
   )r   r   r   rM   r<   s    r   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   rB  r;   )r[   rB  s     r   _worker_addressrC    s    &<r!   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)Nr;   r<   r   )r?   workersc              3   L   #    U  H  n[        [        5      " U5      v   M     g 7fr   r   rC  rB   s     r   rE   -test_dask_backend_keywords.<locals>.<genexpr>  !      !D9BAGO,Q//rH   rI   c              3   L   #    U  H  n[        [        5      " U5      v   M     g 7fr   rG  rB   s     r   rE   rH    rI  rH   rk   )r=   rP   rQ   rR   r3   rS   s         r   test_dask_backend_keywordsrK    s    	kq&1AiLt, 9Fj !D9>r!D D|nr1111 G
 !9Fj !D9>r!D D|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;  r=   r   r>   c              3   L   #    U  H  n[        [        5      " U5      v   M     g 7fr   rA   rB   s     r   rE   /test_scheduler_tasks_cleanup.<locals>.<genexpr>       :	1ws|A	rH   rI   g{Gz?r   )
r   r   r   rM   r   r   	schedulerr   r	   futures)r=   r3   starts      r   test_scheduler_tasks_cleanuprS    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   rU  )minimummaximumrV  r   r>   c              3   L   #    U  H  n[        [        5      " U5      v   M     g 7fr   rA   rB   s     r   rE   (test_wait_for_workers.<locals>.<genexpr>  rO  rH   rI   )r   r   adaptscaler   r   rM   r   )rT  r   r3   s      r   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
   rY  r   g?)r?   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r   rA   rB   s     r   rE   0test_wait_for_workers_timeout.<locals>.<genexpr>       >Iq73<??IrH   rI   z+DaskDistributedBackend has no active workerc              3   L   #    U  H  n[        [        5      " U5      v   M     g 7fr   rA   rB   s     r   rE   re    rf  rH   )
r   r   r   rN   rO   TimeoutErrorr   rM   RuntimeErrorr   )r   r3   msgs      r   test_wait_for_workers_timeoutrk    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r?   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   r?   c              3   L   #    U  H  n[        [        5      " U5      v   M     g 7fr   rA   rB   s     r   rE   ftest_joblib_warning_inside_dask_daemonic_worker.<locals>.func_using_joblib_parallel.<locals>.<genexpr>  s      48-6GCLOOYrH   rI   )warningscatch_warningsr   rM   )rp  r?   s    r   func_using_joblib_parallelStest_joblib_warning_inside_dask_daemonic_worker.<locals>.func_using_joblib_parallel  sQ    
 ((573 48-22Y48 8 6 M	 65 Ms   !A
Ar-   r   zdistributed.worker.daemonr   r   )
r   r   submitr+  r0   messager`   UserWarningr  r   )r?   r   r3   ru  futrp  warnings   `      r   /test_joblib_warning_inside_dask_daemonic_workerr|    s    Q'GG_F"		 mm676{a)##';////*c'l:::R b! 	R b!s   A/B' '!C)g?)r   r   )C
__future__r   r   r   r   rs  rN   r   uuidr   r   r	    r   r   r   ra   r   r   _daskr   r   r   r   r   r   r   distributed.metricsdistributed.utils_testr   r   r   r    r&   r9   rT   rd   rf   rn   markparametrizer   r   objectr   r   r   r   r1   rM   r   r
  r  r   r,  r&  r1  r7  r@  rC  rK  rS  skipif__version__r`  rk  r|  r   r!   r   <module>r     s   @ @ 	      1 1 : *!!-06" 9 8 $ 9 8	8:>0 4-0@ 1@26"r,f ,J-< T%(^4 5:46/4=E"A 
2
" +j.-IJw&N;+B+Bh+NL  NN K** V->$?@" A"r!   