Ë
    Ï�DjòG  ã                   óT  — d dl mZmZmZ d dlZd dlZd dlZd dlmZ d dlm	Z	 d dl
mZ ddlmZmZmZ ddlmZmZ dd	lmZ  ej*                  d
«      Z ej*                  d«      Zd dlmZmZmZ d dlm
Z
 d dlmZmZmZ d„ Z d:d„Z!d„ Z"d„ Z#d„ Z$d„ Z%d„ Z&ejN                  jQ                  dddg«      d„ «       Z)d„ Z* G d„ de+«      Z,d;d„Z-d„ Z.d„ Z/ejN                  jQ                  d  e0 e1d«      «      «      d!„ «       Z2d"„ Z3d#„ Z4d$„ Z5d%„ Z6d&„ Z7d'„ Z8d(„ Z9d)„ Z:d*„ Z;d+„ Z<d,„ Z=ejN                  jQ                  d-d.d/g«      ejN                  j}                  ej~                  d0k  xr ej~                  d1k\  d2¬3«      d4„ «       «       Z@d5„ ZAejN                  jQ                  d6d7d8g«      d9„ «       ZBy)<é    )Ú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                   ó   — y ©N© )ÚargsÚkwargss     úYC:\Crop_Prediction\Backend\crop-ai-system\venv\Lib\site-packages\joblib/test/test_dask.pyÚnoopr       s   € Øó    c                 ó4   — t        |«       | rt        d«      ‚y )Nzcondition evaluated to True)r	   Ú
ValueError)Ú	conditionÚdurations     r   Úslow_raise_value_errorr&      s   € Ü	ˆ(„OÙÜÐ6Ó7Ð7ð r!   c                 óÂ   — |j                  d„ «      }i }|j                  «       D ]2  \  }}t        t        |«      D �cg c]  }|d   | k(  r|‘Œ c}«      ||<   Œ4 |S c c}w )Nc                 ó   — | j                   S r   )Úlog)Údask_workers    r   ú<lambda>zcount_events.<locals>.<lambda>$   s
   € °;·?±?€ r!   é   )ÚrunÚitemsÚlenÚlist)Ú
event_nameÚclientÚworker_eventsÚevent_countsÚwÚeventsÚevents          r   Úcount_eventsr8   #   sq   € Ø—J‘JÑBÓC€MØ€LØ"×(Ñ(Ó*ò ;‰	ˆˆ6Ü´$°v³,ö :¨Ø"'¨¡(¨jÒ"8ò  %ò :ó ;ˆ�QŠð;ð Ðùò:s   ½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r   ©r   r   ©Ú.0Úis     r   ú	<genexpr>ztest_simple.<locals>.<genexpr>0   ó   è ø€ Ò D°Q ¤¬£¨a§Ñ Dùó   ‚!é
   c              3   óL   K  — | ]  } t        t        «      |d k(  «      –— Œ y­w)é   N)r   r&   rA   s     r   rD   ztest_simple.<locals>.<genexpr>4   s)   è ø€ ò 3Ø#$ð  ?œwÔ'=Ó>¸qÀA¹v×Fñ 3ùs   ‚"$c              3   óF   K  — | ]  } t        t        «      |«      –— Œ y ­wr   r@   rA   s     r   rD   ztest_simple.<locals>.<genexpr>7   rE   rF   )	r   r   r   r   Úranger   ÚpytestÚraisesr#   )r<   ÚsÚaÚbr2   ÚseqrC   s          r   Útest_simplerR   ,   s%  € Ü	‹ð :‘k�q™&˜1˜aÜ�A�i‘L tÔ,ð 
	:°Ü ¨Ô0ñ 	:Ø ”h“jÑ D¼%À»)Ô DÓD�Ø¬u°R«yÖ9¨!œs 1�vÒ9Ò9Ñ9ä—]‘]¤:Ó.ñ 3Ø”H“Jñ 3Ü(-¨b«	ô3ô 3÷3ð !”h“jÑ D¼%À»)Ô DÓD�Ø¬u°R«yÖ9¨!œs 1�vÒ9Ò9Ñ9Ð9÷	:÷
	:÷:ð :ùò :÷3ð 3üò
 :÷	:ð 	:ú÷
	:ð 
	:ú÷:ð :ú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)	Nr:   r;   r   r=   r,   c              3   ó>   K  — | ]  } t        d „ «      «       –— Œ y­w)c                   ó   — y r   r   r   r!   r   r+   z?test_dask_backend_uses_autobatching.<locals>.<genexpr>.<lambda>M   s   � r!   N©r   ©rB   Ú_s     r   rD   z6test_dask_backend_uses_autobatching.<locals>.<genexpr>L   s"   è ø€ ò àð .œ¡Ó-×/ñùs   ‚ç     ˆÃ@rG   )r   Úcompute_batch_sizer   r   r   r   r   Ú_backendÚ
isinstanceÚparallelÚ_effective_batch_sizerK   Úint)r<   rN   rO   rP   r2   r]   r>   s          r   Ú#test_dask_backend_uses_autobatchingr`   ;   s  € Ü"×5Ñ5Ü ×3Ñ3ñ4ñ 5ô 
‹ð >‘k�q™&˜1˜aÜ�A�i‘L tÔ,ð 	>°Ü ¨Ô0ñ >Ü“Zð > 8ð '×/Ñ/�GÜ% gÔ/EÔFÑFØ"×+Ñ+¨xÑ7Ñ7Ø"×8Ñ8¸AÒ=Ñ=ñ ñ ä!&¤s¨3£x£ôô ð #×8Ñ8¸2Ò=Ñ=Ð=÷>÷>÷	>÷>ð >÷>ð >ú÷>ð >ú÷	>ð 	>ú÷>ð >úsT   ­DÁDÁC<ÁA2C0	ÃC<ÃDÃDÃ0C9Ã5C<Ã<DÄDÄD	ÄDÄDc                  ó   — t        «       S r   r   r   r!   r   Úrandom2rb   S   s	   € Ü‹8€Or!   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)Nr:   r;   r   r=   c              3   óD   K  — | ]  } t        t        «      «       –— Œ y ­wr   )r   rb   rA   s     r   rD   z3test_dont_assume_function_purity.<locals>.<genexpr>[   s   è ø€ Ò!G¸Ð"2¤'¬'Ó"2×"4Ñ!Gùó   ‚ r
   ©r   r   r   r   rK   )r<   rN   rO   rP   r2   ÚxÚys          r   Ú test_dont_assume_function_purityri   W   s”   € Ü	‹ð ‘k�q™&˜1˜aÜ�A�i‘L tÔ,ð 	°Ü ¨Ô0ñ Ø!”x“zÑ!G¼eÀA»hÔ!GÓG‘��1Ø˜A’v‘�v÷÷	÷ð ÷ð ú÷	ð 	ú÷ð ús9   ‹B¢B ¯+A4ÁB Á#BÁ4A=Á9B Â B		ÂBÂBÚmixedTFc                 ó°  — 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   )ÚBatché   Úbatch_of_inc_4_callsr
   Úmixed_batch_of_inc_4_callsr:   r;   r   r=   Úall)Ú
batch_sizeÚpre_dispatchc                 ó,   — t        | j                  «      S r   )r0   Útransition_log)Údask_schedulers    r   Úfztest_dask_funcname.<locals>.fr   s   € Ü˜N×9Ñ9Ó:Ð:r!   Ú4Ú2c              3   ó*   K  — | ]  }d |d   v –— Œ y­w)Úbatch_of_incr   Nr   )rB   Útups     r   rD   z%test_dask_funcname.<locals>.<genexpr>v   s   è ø€ Ò?°C�~¨¨Q©Ô/Ñ?ùs   ‚)Újoblib._daskrl   rK   r   r   ÚabsÚreprr   r   r   r   ÚreplaceÚrun_on_schedulerrp   )r<   rj   rl   rC   ÚtasksÚ
batch_reprrN   rO   rP   r2   rX   rv   r)   s                r   Útest_dask_funcnamerƒ   _   sZ  € å"ÙÜ*/°«(Ö3 Q�”œ“˜a•Ð3ˆÐ3Ø+‰
ô DIÈÃ8ö
Ø>?˜q 1šuˆLŒG”C‹L˜ŒO¨,¬'´#«,°q«/Ñ9ð
ˆð 
ð 2ˆ
ä‘�e“Ó Ò+Ñ+ä	‹ð 	@‘k�q™&˜1˜aÜ�A�i‘L tÔ,ð 	@°Ü ¨Ô0ñ FØ>”H¨¸Ô>¸uÓE�÷Fò;à#×+Ñ+¨C°Ó5ˆJØ×)Ñ)¨!Ó,ˆCÜÑ?¸3Ô?Ô?Ñ?Ð?÷	@÷	@ð 	@ùò 4ùò
÷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)Néd   Únumpyg    €„.Ac                 óŠ   •— |�‰j                   j                  |‰«       | j                  t        «       j                  «       | S r   )ÚtestingÚassert_array_equalÚappendr   Úhex)Úlist_ÚdataÚXÚnps     €€r   Úisolated_operationzCtest_no_undesired_distributed_cache_hit.<locals>.isolated_operationˆ   s4   ø€ ØÐØ�J‰J×)Ñ)¨$°Ô2Ø�‰”U“W—[‘[Ô!Øˆr!   r,   r
   )Ú	n_workersÚthreads_per_workerr   r=   c              3   ó@   •K  — | ]  } t        ‰«      |«      –— Œ y ­wr   rV   )rB   rŒ   r�   s     €r   rD   z:test_no_undesired_distributed_cache_hit.<locals>.<genexpr>“   s$   øè ø€ ò Ø7<Ð+”Ð*Ó+¨E×2ñùs   ƒúreceive-from-scatterr   c              3   óD   •K  — | ]  } t        ‰«      |‰¬ «      –— Œ y­w))r�   NrV   )rB   rŒ   rŽ   r�   s     €€r   rD   z:test_no_undesired_distributed_cache_hit.<locals>.<genexpr>¥   s)   øè ø€ ò Ø?DÐ+”Ð*Ó+¨E¸×:Ð:ñùs   ƒ é   ©Útimeoutr   )rK   rL   ÚimportorskipÚaranger_   r   r   r   r   r8   ÚsumÚvaluesrp   r/   Úclose)
rX   Úlistsr   r2   ÚresÚcountsÚrrŽ   r�   r�   s
          @@@r   Ú'test_no_undesired_distributed_cache_hitr¢   y   sÃ  ú€ ô ˜s›Ö$�AŠRÐ$€EÐ$Ü	×	Ñ	˜WÓ	%€BØ
�	‰	”#�c“(Ó€Aöô  Q¸1Ô=€GÜ�G‹_€Fð"Ü VÔ,ñ 	à”(“*ó Ø@Eôó ˆC÷	ð ¤U¨3£ZÖ0 šÒ0Ò0Ñ0ô
 Ð4°fÓ=ˆÜ�6—=‘=“?Ó# qÒ(Ñ(Ü¨Ö- A”C˜“F˜a“KÒ-Ô.Ñ.ä VÔ,ñ 	ð ”(“*ô ØHMôó ˆC÷	ô Ð4°fÓ=ˆÜ�6—=‘=“?Ó# aÒ'Ñ'Ü¨Ö- A”C˜“F˜a“KÒ-Ô.Ñ.Ð.à�‰˜RˆÔ Øˆ�‰˜bÖ!ùòW %÷	ñ 	üò 1ùò .÷	ð 	üò .øà�‰˜RˆÔ Øˆ�‰˜bÖ!úse   ‘	F/Á+G Á7F4ÂG Â'	GÂ0:G Ã*GÃ?G ÄGÄ/;G Å*GÅ?	G Æ4F>Æ9G ÇGÇG Ç'Hc                   ó"   — e Zd Zd„ Zd„ ZeZd„ Zy)ÚCountSerializedc                 ó    — || _         d| _        y )Nr   )rg   Úcount)Úselfrg   s     r   Ú__init__zCountSerialized.__init__³   s   € ØˆŒØˆ�
r!   c                 ó6   — | j                   t        |d|«      z   S )Nrg   )rg   Úgetattr)r§   Úothers     r   Ú__add__zCountSerialized.__add__·   s   € Ø�v‰vœ  s¨EÓ2Ñ2Ð2r!   c                 óR   — | xj                   dz  c_         t        | j                  ffS )Nr,   )r¦   r¤   rg   )r§   s    r   Ú
__reduce__zCountSerialized.__reduce__¼   s    € Ø�
Š
�a‰�
Ü $§&¡& Ð+Ð+r!   N)Ú__name__Ú
__module__Ú__qualname__r¨   r¬   Ú__radd__r®   r   r!   r   r¤   r¤   ²   s   „ òò3ð €Hó,r!   r¤   c                 ó   — | |z   |z   |z   |z   S r   r   )rO   rP   ÚcÚdÚes        r   Úadd5r·   Á   s   € Øˆq‰5�1‰9�q‰=˜1ÑÐr!   c                 ó"  — t        d«      }t        d«      }t        d«      }t        «       5 \  }\  }}t        |d   | ¬«      5 }t        d||g¬«      5  t	        t
        «      } ||||dd	¬
«       ||||d	d¬
«       |||||d	¬
«       ||||||¬
«      g}	|	D �
��cg c]  \  }
}} |
|i |¤Ž‘Œ }}}
} t        «       |	«      }d d d «       t        j                  t        «      5  t        d| d¬«      5  	 d d d «       d d d «       d d d «       d d d «       k(  sJ ‚|j                  dk(  sJ ‚|j                  dk(  sJ ‚|j                  dv sJ ‚y c c}}}
w # 1 sw Y   Œ”xY w# 1 sw Y   ŒnxY w# 1 sw Y   ŒrxY w# 1 sw Y   ŒvxY w# 1 sw Y   ŒzxY w)Nr,   r
   rI   r:   r;   r   )r>   Úscatterrm   é   )rµ   r¶   )r>   r<   r¹   )rm   é   )r¤   r   r   r   r   r·   r   rL   rM   Ú	TypeErrorr¦   )r<   rg   rh   ÚzrN   rO   rP   r2   rv   r�   Úfuncr   r   ÚexpectedÚresultss                  r   Útest_manual_scatterrÁ   Å   s©  € Ü˜Ó€AÜ˜Ó€AÜ˜Ó€Aä	‹ð ‘k�q™&˜1˜aÜ�A�i‘L tÔ,ð 	°Ü ¨¸!¸Q¸Ô@ñ ,ÜœD“M�Ù˜1˜a  a¨1Ô-Ù˜1˜a  a¨1Ô-Ù˜1˜a  a¨1Ô-Ù˜1˜a  a¨1Ô-ð/�ð
 7<÷=ð =Ù 2  d¨Fñ ! $Ð1¨&Ó1ð =�ò =à$œ(›* UÓ+�÷,ô —‘œyÓ)ñ Ü$¨V¸$ÈÔJñ Ø÷÷÷	÷ð" �hÒÑð �7‰7�aŠ<ÑØ�7‰7�aŠ<Ñð
 �7‰7�fÑÑÐùô%=÷,ð ,ú÷ð ú÷ð ú÷	ð 	ú÷ð ús~   ¬FÁE9ÁAEÂEÂ.EÃ!E9Ã#E-Ã2E!	Ã4E-Ã<E9ÄFÅEÅEÅE9Å!E*Å&E-Å-E6Å2E9Å9F	Å>FÆF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†   rY   )ÚdtyperI   r:   r;   r   r=   c              3   óT   K  — | ]   \  }} t        t        «      ||||¬ «      –— Œ" y­w))ÚoptN©r   r    )rB   rC   r�   s      r   rD   z$test_auto_scatter.<locals>.<genexpr>õ   s2   è ø€ ò FÙ&˜q $ð )œ7¤4›=¨¨t°Q¸D×AÐAñ Fùs   ‚&(r”   r
   c              3   óP   •K  — | ]  } t        t        «      ‰d d |«      –— Œ y ­w)NrI   rÆ   )rB   rC   Údata1s     €r   rD   z$test_auto_scatter.<locals>.<genexpr>   s$   øè ø€ ÒI¸1˜=œ7¤4›=¨¨r°¨°A×6ÑIùs   ƒ#&rº   r   )rL   r™   Úonesr_   Úuint8r   r   r   r   Ú	enumerater8   rK   )
Úloop_in_threadr�   Údata2Údata_to_processrN   rO   rP   r2   r    rÈ   s
            @r   Útest_auto_scatterrÏ   ê   sç  ø€ Ü	×	Ñ	˜WÓ	%€BØ�G‰G”C˜“H B§H¡HˆGÓ-€EØ�G‰G”C˜“H B§H¡HˆGÓ-€EØ�w ‘{¨ w°¡{Ñ3€Oä	‹ð D‘k�q™&˜1˜aÜ�A�i‘L ~Ô6ð 
	D¸&Ü ¨Ô0ñ Fð ”“
ñ FÜ*3°OÓ*DôFô F÷Fô "Ð"8¸&ÓAˆFØ˜!˜I™,Ñ'¨&°°9±Ñ*>Ñ>À!ÒCÑCÐC÷
	D÷Dô 
‹ð -‘k�q™&˜1˜aÜ�A�i‘L ~Ô6ð 	-¸&Ü ¨Ô0ñ JØ”“
ÓIÄÀaÃÔIÔI÷Jô "Ð"8¸&ÓAˆFØ˜!˜I™,Ñ'¨1Ò,Ñ,Ø˜!˜I™,Ñ'¨1Ò,Ñ,Ð,÷	-÷-ð -÷Fð Fú÷
	Dð 
	Dú÷Dð Dú÷Jð Jú÷	-ð 	-ú÷-ð -úsx   Á:F#ÂFÂ!FÂ?*FÃ*F#ÄGÄF;Ä(#F/Å.F;Å:GÆFÆFÆF 	ÆF#Æ#F,Æ/F8Æ4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†   rG   c                 ó&   •— ‰j                  | «      S r   )r›   )rg   rC   Újr�   s      €r   Úmy_sumz#test_nested_scatter.<locals>.my_sum  s   ø€ Ø�v‰v�a‹yÐr!   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   r=   c              3   óJ   •K  — | ]  } t        ‰«      ‰|d  ‰|«      –— Œ y ­wr   rV   )rB   rÓ   ÚarrayrC   rÔ   s     €€€r   rD   zEtest_nested_scatter.<locals>.outer_function_joblib.<locals>.<genexpr>  s+   øè ø€ ò !Ø56�”˜“  a b 	¨1¨a×0ñ!ùs   ƒ #)r   r   r   rK   r›   )r×   rC   r2   rÀ   ÚNUM_INNER_TASKSrÔ   s   ``  €€r   Úouter_function_joblibz2test_nested_scatter.<locals>.outer_function_joblib  s]   ú€ Ü“ˆÜ VÔ,ñ 	Ø ”h“jõ !Ü:?Ø#ó;%ô!ó ˆG÷	ô
 �7‹|Ð÷	ô
 �7‹|Ðús   š%AÁA%r:   r;   r   r=   i'  c              3   óH   •K  — | ]  } t        ‰«      ‰|d  |«      –— Œ y ­wr   rV   )rB   rC   Úmy_arrayrÙ   s     €€r   rD   z&test_nested_scatter.<locals>.<genexpr>   s1   øè ø€ ò à-.ð 3”GÐ1Ó2Ø   ˜ a÷)ñùó   ƒ")rL   r™   r   r   r   rÉ   r   rK   )r<   rÐ   ÚNUM_OUTER_TASKSrN   rO   rP   rX   rØ   rÛ   rÔ   r�   rÙ   s          @@@@@r   Útest_nested_scatterrÞ     sÃ   ü€ ô 
×	Ñ	˜WÓ	%€Bà€OØ€Oôõô 
‹ð ‘k�q™&˜1˜aÜ�A�i‘L tÔ,ð 	°Ü ¨Ô0ñ ØŸ7™7 5›>�Ø”H“Jô ä27¸Ó2Hôó �÷÷	÷ð ÷ð ú÷	ð 	ú÷ð ús;   ´B>ÁB2Á5B&ÂB2ÂB>Â&B/Â+B2Â2B;	Â7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
   ©Ún_jobsc              3   óX   K  — | ]"  } t        t        j                  «      «       –— Œ$ y ­wr   ©r   ÚosÚgetpidrW   s     r   rD   zOtest_nested_backend_context_manager.<locals>.get_nested_pids.<locals>.<genexpr>(  s   è ø€ Ò%M¸qÐ&8¤g¬b¯i©iÓ&8×&:Ñ%Mùó   ‚(*c              3   óX   K  — | ]"  } t        t        j                  «      «       –— Œ$ y ­wr   rä   rW   s     r   rD   zOtest_nested_backend_context_manager.<locals>.get_nested_pids.<locals>.<genexpr>)  s   è ø€ Ò&NÀÐ'9¤w¬r¯y©yÓ'9×';Ñ&Nùrç   )Úsetr   rK   )Úpidss    r   Úget_nested_pidsz<test_nested_backend_context_manager.<locals>.get_nested_pids'  sN   € ÜÐ%”8 1Ô%Ñ%MÄEÈ!ÃHÔ%MÓMÓNˆØ”Ð&”H AÔ&Ñ&NÄUÈ1ÃXÔ&NÓNÓOÑOˆØˆr!   r:   r;   r   r=   r
   rá   c              3   ó>   •K  — | ]  } t        ‰«      «       –— Œ y ­wr   rV   ©rB   rX   rë   s     €r   rD   z6test_nested_backend_context_manager.<locals>.<genexpr>/  ó#   øè ø€ ò 0àð -”G˜OÓ,×.ñ0ùó   ƒrG   c              3   ó>   •K  — | ]  } t        ‰«      «       –— Œ y ­wr   rV   rí   s     €r   rD   z6test_nested_backend_context_manager.<locals>.<genexpr>9  rî   rï   )r   r   r   r   rK   r/   ré   )rÌ   rN   rO   rP   r2   Ú
pid_groupsÚ	pid_grouprë   s          @r   Ú#test_nested_backend_context_managerró   &  sG  ø€ òô
 
‹ð 4‘k�q™&˜1˜aÜ�A�i‘L ~Ô6ð 	4¸&Ü ¨Ô0ñ 4Ø/œX¨QÔ/ó 0ä" 2›Yô0ó �
ð ",ò 4�IÜœs 9›~Ó.°!Ó3Ñ3ñ4÷4÷	4ô �A�i‘L ~Ô6ð 	4¸&Ü ¨Ô0ñ 4Ø/œX¨QÔ/ó 0ä" 2›Yô0ó �
ð ",ò 4�IÜœs 9›~Ó.°!Ó3Ñ3ñ4÷4÷	4÷4ð 4÷4ð 4ú÷	4ð 	4ú÷4ð 4ú÷	4ð 	4ú÷4ð 4úsw   �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 r   )r[   Ú	__class__r¯   )Úps    r   Ú_backend_typezJtest_nested_backend_context_manager_implicit_n_jobs.<locals>._backend_typeE  s   € Ø�z‰z×#Ñ#×,Ñ,Ð,r!   c                  ól   •— t        «       5 }  ‰| «      | j                  fcd d d «       S # 1 sw Y   y xY wr   )r   râ   )r÷   rø   s    €r   Úget_nested_implicit_n_jobszWtest_nested_backend_context_manager_implicit_n_jobs.<locals>.get_nested_implicit_n_jobsH  s0   ø€ Ü‹Zð 	.˜1Ù  Ó# Q§X¡XÐ-÷	.÷ 	.ò 	.ús   Œ*ª3r:   r;   r   r=   r   éÿÿÿÿc              3   ó>   •K  — | ]  } t        ‰«      «       –— Œ y ­wr   rV   )rB   rX   rú   s     €r   rD   zFtest_nested_backend_context_manager_implicit_n_jobs.<locals>.<genexpr>R  s$   øè ø€ ò *àð <œÐ :Ó;×=ñ*ùrï   r
   )r   r   r   r   râ   rK   )r<   rN   rO   rP   r2   r÷   Úall_nested_n_jobsÚbackend_typeÚnested_n_jobsrø   rú   s            @@r   Ú3test_nested_backend_context_manager_implicit_n_jobsr   A  sÿ   ù€ ò-ô.ô 
‹ð /‘k�q™&˜1˜aÜ�A�i‘L tÔ,ð 	/°Ü ¨Ô0ñ 
/Ü“Zð  1Ù(¨Ó+Ð/GÒGÑGØŸ8™8 rš>Ñ)Ù()ó *ä!& q£ô*ó )Ð%÷ð 4Eò /Ñ/�L -Ø'Ð+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   r=   zcreate a dask client)rL   rM   r#   r   ÚstrÚvalueÚlower)r<   Úinfos     r   Útest_errorsr  [  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)Nr:   r;   r   r=   r
   rá   c              3   óH   K  — | ]  } t        t        «      d ¬«      –— Œ y ­w)N©Únested_require©r   ÚouterrW   s     r   rD   z.test_correct_nested_backend.<locals>.<genexpr>h  s%   è ø€ ò ,KØ<=�N”GœE“N°$×7Ð7ñ,Kùó   ‚ "r,   r   c              3   óH   K  — | ]  } t        t        «      d ¬«      –— Œ y­w)Ú	sharedmemr	  Nr  rW   s     r   rD   z.test_correct_nested_backend.<locals>.<genexpr>n  s&   è ø€ ò ,'àð #”GœE“N°+×>Ð>ñ,'ùr  )r   r   r   r   rK   r\   r   r   )r<   rN   rO   rP   r2   Úresults         r   Útest_correct_nested_backendr  c  s   € Ü	‹ð E‘k�q™&˜1˜aÜ�A�i‘L tÔ,ð 	E°ä ¨Ô0ñ KØ+œ¨Ô+ñ ,KÜAFÀqÃô,Kó K�ä! &¨¡)¨A¡,¨q¡/Ô3IÔJÑJÐJ÷Kô !¨Ô0ñ EØ+œ¨Ô+ñ ,'ä" 1›Xô,'ó '�ô " &¨¡)¨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)râ   Úpreferc              3   óH   •K  — | ]  } t        t        «      ‰«      –— Œ y ­wr   )r   Úmiddle)rB   rX   r
  s     €r   rD   zouter.<locals>.<genexpr>u  s!   øè ø€ ò 0Ø,-ˆŒ”‹˜×'ñ0ùrÜ   r,   ©r   rK   r	  s   `r   r  r  t  s*   ø€ Ø/Œ8˜1 YÔ/ó 0Ü16°q³ô0ó ð r!   c                 óH   —  t        d| ¬«      d„ t        d«      D «       «      S )Nr
   )râ   Úrequirec              3   óD   K  — | ]  } t        t        «      «       –— Œ y ­wr   )r   ÚinnerrW   s     r   rD   zmiddle.<locals>.<genexpr>{  s   è ø€ ò /ØˆŒ”‹×ñ/ùre   r,   r  )r  s    r   r  r  z  s)   € Ø.Œ8˜1 gÔ.ñ /Ü"'¨£(ô/ó ð r!   c                  ó*   — t        «       j                  S r   )r   r[   r   r!   r   r  r  €  s   € Ü‹:×ÑÐr!   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)r<   Ú	processesÚset_as_defaultr   r=   rm   rá   c              3   óF   K  — | ]  } t        t        «      |«      –— Œ y ­wr   )r   ÚidrA   s     r   rD   z0test_secede_with_no_processes.<locals>.<genexpr>ˆ  s   è ø€ Ò@°!˜{œw¤r›{¨1Ÿ~Ñ@ùrF   r
   )r   r   r   rK   r;   s    r   Útest_secede_with_no_processesr"  „  sg   € ä	�T U¸4Ô	@ñ AÜ VÔ,ñ 	AØŒH˜AÔÑ@´u¸Q³xÔ@Ô@÷	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   r$  r:   )rX   r$  s     r   Ú_worker_addressr%  ‹  s   € Ý&Ù‹<×ÑÐr!   c           	      óè  — t        «       5 \  }\  }}t        |d   | ¬«      5 }t        d|d   ¬«      5   t        «       d„ t	        d«      D «       «      }||d   gdz  k(  sJ ‚	 d d d «       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)Nr:   r;   r   )r>   Úworkersc              3   óF   K  — | ]  } t        t        «      |«      –— Œ y ­wr   ©r   r%  rA   s     r   rD   z-test_dask_backend_keywords.<locals>.<genexpr>”  ó$   è ø€ ò !DØ45Ð,”GœOÓ,¨Q×/ñ!DùrF   rG   c              3   óF   K  — | ]  } t        t        «      |«      –— Œ y ­wr   r)  rA   s     r   rD   z-test_dask_backend_keywords.<locals>.<genexpr>™  r*  rF   rf   )r<   rN   rO   rP   r2   rQ   s         r   Útest_dask_backend_keywordsr,  �  s  € Ü	‹ð 
2‘k�q™&˜1˜aÜ�A�i‘L tÔ,ð 		2°Ü ¨¸¸9¹ÔFñ 2Ø ”h“jñ !DÜ9>¸r»ô!Dó D�à˜q ™|˜n¨rÑ1Ò1Ñ1Ð1÷2ô
 !¨¸¸9¹ÔFñ 2Ø ”h“jñ !DÜ9>¸r»ô!Dó D�à˜q ™|˜n¨rÑ1Ò1Ñ1Ð1÷2÷		2÷
2ð 
2÷2ð 2ú÷
2ð 2ú÷		2ð 		2ú÷
2ð 
2úsQ   ‹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  r<   r   r=   c              3   óF   K  — | ]  } t        t        «      |«      –— Œ y ­wr   r@   rA   s     r   rD   z/test_scheduler_tasks_cleanup.<locals>.<genexpr>¡  ó   è ø€ Ò:¨1�|”wœs“| A—Ñ:ùrF   rG   g{®Gáz„?rº   )
r   r   r   rK   r   r   Ú	schedulerr�   r	   Úfutures)r<   r2   Ústarts      r   Útest_scheduler_tasks_cleanupr3  ž  s²   € Ü	˜% dÔ	+ð 	"¨vÜ VÔ,ñ 	;ØŒH‹JÑ:´°b³	Ô:Ô:÷	;ô “ˆØ�n‰n×&Ñ&×,Ò,Ü�$ŒKÜ“6˜E A™IÒ%Ñ%ð �n‰n×&Ñ&×,Ó,ð —>’>Ñ!�>÷	"ð 	"÷	;ð 	;ú÷	"ð 	"ú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’   r5  )ÚminimumÚmaximumr6  r   r=   c              3   óF   K  — | ]  } t        t        «      |«      –— Œ y ­wr   r@   rA   s     r   rD   z(test_wait_for_workers.<locals>.<genexpr>¾  r/  rF   rG   )r   r   ÚadaptÚscaler   r   rK   r�   )r4  r   r2   s      r   Útest_wait_for_workersr?  «  s²   € ô
  Q°%ÈAÔN€GÜ�G‹_€FØ˜:Ò%Øˆ�‰˜a¨Ö+Ø	˜^Ò	+ð
 	ˆ�‰�aÔðÜ VÔ,ñ 	;ð ŒH‹JÑ:´°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
   r9  r   gš™™™™™¹?)r>   Úwait_for_workers_timeoutz7DaskDistributedBackend has no worker after 0.1 seconds.)Úmatchc              3   óF   K  — | ]  } t        t        «      |«      –— Œ y ­wr   r@   rA   s     r   rD   z0test_wait_for_workers_timeout.<locals>.<genexpr>Í  ó   è ø€ Ò>¨q˜<œ7¤3›<¨Ÿ?Ñ>ùrF   rG   z+DaskDistributedBackend has no active workerc              3   óF   K  — | ]  } t        t        «      |«      –— Œ y ­wr   r@   rA   s     r   rD   z0test_wait_for_workers_timeout.<locals>.<genexpr>Ó  rD  rF   )
r   r   r   rL   rM   ÚTimeoutErrorr   rK   ÚRuntimeErrorr�   )r   r2   Úmsgs      r   Útest_wait_for_workers_timeoutrI  Ä  s  € ä Q°%ÈAÔN€GÜ�G‹_€FðÜ VÀcÔJñ 	?àKˆCÜ—‘œ|°3Ô7ñ ?Ø”“
Ñ>´E¸"³IÔ>Ô>÷?÷	?ô  VÀaÔ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r>   Ú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
   )râ   r>   c              3   óF   K  — | ]  } t        t        «      |«      –— Œ y ­wr   r@   rA   s     r   rD   zftest_joblib_warning_inside_dask_daemonic_worker.<locals>.func_using_joblib_parallel.<locals>.<genexpr>å  s   è ø€ ò 48Ø()�L”GœC“L —Oñ48ùrF   rG   )ÚwarningsÚcatch_warningsr   rK   )rN  r>   s    €r   Úfunc_using_joblib_parallelzStest_joblib_warning_inside_dask_daemonic_worker.<locals>.func_using_joblib_parallelß  sU   ø€ ô
 ×(Ñ(°Ô5ð 8¸Ø3” ¨7Ô3ñ 48Ü-2°2«Yô48ô 8÷8ð ˆM÷	8ð ˆMús   ˜$AÁAr,   r   zdistributed.worker.daemonr–   r—   )
r   r   Úsubmitr  r/   Úmessager\   ÚUserWarningr  r�   )r>   r   r2   rR  ÚfutrN  Úwarnings   `      r   Ú/test_joblib_warning_inside_dask_daemonic_workerrX  Ù  sµ   ø€ ä QÔ'€GÜ�G‹_€Fð"ô		ð �m‰mÐ6Ó7ˆØ—‘“ˆä�6‹{˜aÒÑØ˜‘)×#Ñ#ˆÜ˜'¤;Ô/Ñ/Ø*¬c°'«lÑ:Ñ:Ð:à�‰˜RˆÔ Øˆ�‰˜bÖ!øð 	�‰˜RˆÔ Øˆ�‰˜bÖ!ús   šA&B' Â''C)gš™™™™™©?)r   r   )CÚ
__future__r   r   r   rå   rP  rL   r   Úuuidr   r   r	   Ú r   r   r   r]   r   r   Ú_daskr   r™   r   r   r   r   r   Údistributed.metricsÚdistributed.utils_testr   r   r   r    r&   r8   rR   r`   rb   ri   ÚmarkÚparametrizerƒ   r¢   Úobjectr¤   r·   rÁ   rÏ   r0   rK   rÞ   ró   r   r  r  r  r  r  r"  r%  r,  r3  ÚskipifÚ__version__r?  rI  rX  r   r!   r   ú<module>rd     sÒ  ðß @Ñ @Û 	Û ã Ý Ý Ý ç 1Ñ 1ß :Ý *à!ˆf×!Ñ! -Ó0€Ø€v×Ñ˜6Ó"€÷ 9Ñ 8Ý $÷ 9Ñ 8ò	ó8òò:ò>ò0òð ‡�×Ñ˜ 4¨ -Ó0ñ@ó 1ð@ò26"ôr,�fô ,óòòJ-ð< ‡�×Ñ˜¡T©%°«(£^Ó4ñó 5ðò:4ò6/ò4=òEò"òòòAò ò
2ò
"ð ‡�×ÑÐ+¨j¸.Ð-IÓJØ‡�×ÑØ×Ñ˜wÑ&ÒN¨;×+BÑ+BÀhÑ+NØLð ó NñóNó Kðò*ð* ‡�×Ñ˜ VÐ->Ð$?Ó@ñ"ó Añ"r!   