U
    ºmœdËF  ã                   @   s"  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 d
¡Ze d¡Zd dlmZmZmZ d dlm
Z
 d dlmZmZ dd„ ZdVdd„Z dd„ Z!dd„ Z"dd„ Z#dd„ Z$dd„ Z%ej& 'ddd g¡d!d"„ ƒZ(d#d$„ Z)G d%d&„ d&e*ƒZ+dWd'd(„Z,d)d*„ Z-d+d,„ Z.ej& 'd-e/e0dƒƒ¡d.d/„ ƒZ1d0d1„ Z2d2d3„ Z3d4d5„ Z4d6d7„ Z5d8d9„ Z6d:d;„ Z7d<d=„ Z8d>d?„ Z9d@dA„ Z:dBdC„ Z;dDdE„ Z<ej& 'dFdGdHg¡ej&j=ej>dIk�oêej>dJkdKdL�dMdN„ ƒƒZ?dOdP„ Z@ej& 'dQdRdSg¡dTdU„ ƒZAdS )Xé    )Úprint_functionÚdivisionÚabsolute_importN©Úrandom)Úuuid4)Úsleepé   )ÚParallelÚdelayedÚparallel_config)ÚThreadingBackendÚAutoBatchingMixin)ÚDaskDistributedBackendÚdistributedÚdask)ÚClientÚLocalClusterÚ
get_client)Útime)ÚclusterÚincc                  O   s   d S ©N© )ÚargsÚkwargsr   r   úN/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/joblib/test/test_dask.pyÚnoop   s    r   çš™™™™™©?c                 C   s   t |ƒ | rtdƒ‚d S )Nzcondition evaluated to True)r   Ú
ValueError)Ú	conditionÚdurationr   r   r   Úslow_raise_value_error   s    r"   c                    sF   |  dd„ ¡}i }| ¡ D ]&\}}t‡ fdd„t|ƒD ƒƒ||< q|S )Nc                 S   s   | j S r   )Úlog)Zdask_workerr   r   r   Ú<lambda>"   ó    zcount_events.<locals>.<lambda>c                    s   g | ]}|d  ˆ kr|‘qS ©é   r   )Ú.0Úevent©Ú
event_namer   r   Ú
<listcomp>%   s    ÿz count_events.<locals>.<listcomp>)ÚrunÚitemsÚlenÚlist)r+   ÚclientZworker_eventsZevent_countsÚwÚeventsr   r*   r   Úcount_events!   s
     r4   c                 C   sâ   t ƒ �Ò\}\}}t|d | d��®}tdd��˜ tƒ dd„ tdƒD ƒƒ}|dd	„ tdƒD ƒks`t‚t t¡� tƒ d
d„ tdƒD ƒƒ W 5 Q R X tƒ dd„ tdƒD ƒƒ}|dd	„ tdƒD ƒksÀt‚W 5 Q R X W 5 Q R X W 5 Q R X d S )NÚaddress©Úloopr   ©Úbackendc                 s   s   | ]}t tƒ|ƒV  qd S r   ©r   r   ©r(   Úir   r   r   Ú	<genexpr>.   s     ztest_simple.<locals>.<genexpr>é
   c                 S   s   g | ]}t |ƒ‘qS r   ©r   r;   r   r   r   r,   /   s     ztest_simple.<locals>.<listcomp>c                 s   s   | ]}t tƒ|d kƒV  qdS )é   N)r   r"   r;   r   r   r   r=   2   s   ÿc                 s   s   | ]}t tƒ|ƒV  qd S r   r:   r;   r   r   r   r=   5   s     c                 S   s   g | ]}t |ƒ‘qS r   r?   r;   r   r   r   r,   6   s     )	r   r   r   r
   ÚrangeÚAssertionErrorÚpytestÚraisesr   ©r7   ÚsÚaÚbr1   Úseqr   r   r   Útest_simple*   s    
ÿrJ   c                 C   sÊ   t jtjkst‚tƒ �ª\}\}}t|d | d��†}tdd��p tƒ �^}|j}t	|t ƒsZt‚|j
|ksht‚|jdksvt‚|dd„ ttdƒƒD ƒƒ |jd	ksžt‚W 5 Q R X W 5 Q R X W 5 Q R X W 5 Q R X d S )
Nr5   r6   r   r8   r'   c                 s   s   | ]}t d d„ ƒƒ V  qdS )c                   S   s   d S r   r   r   r   r   r   r$   K   r%   z?test_dask_backend_uses_autobatching.<locals>.<genexpr>.<lambda>N©r   ©r(   Ú_r   r   r   r=   J   s   ÿz6test_dask_backend_uses_autobatching.<locals>.<genexpr>ç     ˆÃ@r>   )r   Zcompute_batch_sizer   rB   r   r   r   r
   Ú_backendÚ
isinstanceÚparallelZ_effective_batch_sizerA   Úint)r7   rF   rG   rH   r1   rQ   r9   r   r   r   Ú#test_dask_backend_uses_autobatching9   s    ÿ
þrS   c                   C   s   t ƒ S r   r   r   r   r   r   Úrandom2Q   s    rT   c                 C   sx   t ƒ �h\}\}}t|d | d��D}tdd��. tƒ dd„ tdƒD ƒƒ\}}||ksVt‚W 5 Q R X W 5 Q R X W 5 Q R X d S )Nr5   r6   r   r8   c                 s   s   | ]}t tƒƒ V  qd S r   )r   rT   r;   r   r   r   r=   Y   s     z3test_dont_assume_function_purity.<locals>.<genexpr>r	   ©r   r   r   r
   rA   rB   )r7   rF   rG   rH   r1   ÚxÚyr   r   r   Ú test_dont_assume_function_purityU   s
    rX   ÚmixedTFc                 C   sæ   ddl m} |s(dd„ tdƒD ƒ}d}ndd„ tdƒD ƒ}d}t||ƒƒ|ksRt‚tƒ �„\}\}}t|d	 | d
��`}tdd�� tddd�|ƒ}	W 5 Q R X dd„ }
| 	dd¡}| 
|
¡}tdd„ |D ƒƒsÎt‚W 5 Q R X W 5 Q R X d S )Nr   )ÚBatchc                 S   s   g | ]}t tƒ|ƒ‘qS r   r:   r;   r   r   r   r,   a   s     z&test_dask_funcname.<locals>.<listcomp>é   Zbatch_of_inc_4_callsc                 S   s,   g | ]$}|d  rt tƒ|ƒn
t tƒ|ƒ‘qS )r	   )r   Úabsr   r;   r   r   r   r,   d   s    Zmixed_batch_of_inc_4_callsr5   r6   r   r8   r	   Úall)Z
batch_sizeZpre_dispatchc                 S   s
   t | jƒS r   )r0   Ztransition_log)Zdask_schedulerr   r   r   Úfp   s    ztest_dask_funcname.<locals>.fÚ4Ú2c                 s   s   | ]}d |d kV  qdS )Zbatch_of_incr   Nr   )r(   Útupr   r   r   r=   t   s     z%test_dask_funcname.<locals>.<genexpr>)Zjoblib._daskrZ   rA   ÚreprrB   r   r   r   r
   ÚreplaceZrun_on_schedulerr]   )r7   rY   rZ   ÚtasksZ
batch_reprrF   rG   rH   r1   rM   r^   r#   r   r   r   Útest_dask_funcname]   s"    ÿ
re   c              	      sN  dd„ t dƒD ƒ}t d¡‰ˆ tdƒ¡‰ d‡ ‡fdd„	‰tdd	d
�}t|ƒ}zètdd�� t	ƒ ‡fdd„|D ƒƒ}W 5 Q R X |dd„ t dƒD ƒks˜t
‚td|ƒ}t| ¡ ƒdks¶t
‚tdd„ |D ƒƒsÌt
‚tdd��  t	ƒ ‡ ‡fdd„|D ƒƒ}W 5 Q R X td|ƒ}t| ¡ ƒdk�st
‚tdd„ |D ƒƒ�s4t
‚W 5 | ¡  | ¡  X d S )Nc                 S   s   g | ]}g ‘qS r   r   rL   r   r   r   r,   ‚   s     z;test_no_undesired_distributed_cache_hit.<locals>.<listcomp>éd   Únumpyg    €„.Ac                    s(   |d k	rˆj  |ˆ ¡ |  tƒ j¡ | S r   )ÚtestingZassert_array_equalÚappendr   Úhex)Úlist_Údata)ÚXÚnpr   r   Úisolated_operation†   s    zCtest_no_undesired_distributed_cache_hit.<locals>.isolated_operationr'   r	   )Ú	n_workersÚthreads_per_workerr   r8   c                 3   s   | ]}t ˆ ƒ|ƒV  qd S r   rK   ©r(   rk   )ro   r   r   r=   ‘   s    z:test_no_undesired_distributed_cache_hit.<locals>.<genexpr>c                 S   s   g | ]}g ‘qS r   r   rL   r   r   r   r,   —   s     úreceive-from-scatterr   c                 S   s   g | ]}t |ƒd k‘qS r&   ©r/   ©r(   Úrr   r   r   r,   ž   s     c                 3   s   | ]}t ˆƒ|ˆ d �V  qdS ))rl   NrK   rr   )rm   ro   r   r   r=   £   s    c                 S   s   g | ]}t |ƒd k‘qS r&   rt   ru   r   r   r   r,   ª   s     )N)rA   rC   ÚimportorskipZarangerR   r   r   Úcloser   r
   rB   r4   ÚsumÚvaluesr]   )r7   Úlistsr   r1   ÚresÚcountsr   )rm   ro   rn   r   Ú'test_no_undesired_distributed_cache_hitw   s0    
ÿ
ÿ
r~   c                   @   s(   e Zd Zdd„ Zdd„ ZeZdd„ ZdS )ÚCountSerializedc                 C   s   || _ d| _d S )Nr   )rV   Úcount)ÚselfrV   r   r   r   Ú__init__±   s    zCountSerialized.__init__c                 C   s   | j t|d|ƒ S )NrV   )rV   Úgetattr)r�   Úotherr   r   r   Ú__add__µ   s    zCountSerialized.__add__c                 C   s   |  j d7  _ t| jffS )Nr'   )r€   r   rV   )r�   r   r   r   Ú
__reduce__º   s    zCountSerialized.__reduce__N)Ú__name__Ú
__module__Ú__qualname__r‚   r…   Ú__radd__r†   r   r   r   r   r   °   s   r   c                 C   s   | | | | | S r   r   )rG   rH   ÚcÚdÚer   r   r   Úadd5¿   s    rŽ   c                 C   s@  t dƒ}t dƒ}t dƒ}tƒ �Ú\}\}}t|d | d��¶}td||gd��j ttƒ}||||dd	d
�||||d	dd
�|||||d	d
�||||||d
�g}	dd„ |	D ƒ}
tƒ |	ƒ}W 5 Q R X t t	¡�  td| dd�� W 5 Q R X W 5 Q R X W 5 Q R X W 5 Q R X ||
k�st
‚|jdk�st
‚|jdk�s,t
‚|jdk�s<t
‚d S )Nr'   r	   r@   r5   r6   r   )r9   Úscatterr[   é   )rŒ   r�   c                 S   s   g | ]\}}}|||Ž‘qS r   r   )r(   Úfuncr   r   r   r   r   r,   Ð   s   ÿz'test_manual_scatter.<locals>.<listcomp>)r9   r7   r�   )r[   é   )r   r   r   r   r   rŽ   r
   rC   rD   Ú	TypeErrorrB   r€   )r7   rV   rW   ÚzrF   rG   rH   r1   r^   rd   ÚexpectedÚresultsr   r   r   Útest_manual_scatterÃ   s.    ýÿ(r—   c           	         sv  t  d¡}|jtdƒ|jd�‰ |jtdƒ|jd�}ˆ gd |gd  }tƒ �‚\}\}}t|d | d��^}tdd�� tƒ d	d
„ t	|ƒD ƒƒ W 5 Q R X t
d|ƒ}||d  ||d   dksÀt‚W 5 Q R X W 5 Q R X tƒ �’\}\}}t|d | d��n}tdd��" tƒ ‡ fdd
„tdƒD ƒƒ W 5 Q R X t
d|ƒ}||d  dk�sHt‚||d  dk�s^t‚W 5 Q R X W 5 Q R X d S )Nrg   rN   )Zdtyper@   r5   r6   r   r8   c                 s   s&   | ]\}}t tƒ||||d �V  qdS ))ÚoptN©r   r   )r(   r<   rl   r   r   r   r=   ó   s   ÿz$test_auto_scatter.<locals>.<genexpr>rs   r	   c                 3   s$   | ]}t tƒˆ d d… |ƒV  qd S )Nr@   r™   r;   ©Zdata1r   r   r=   þ   s     r�   r   )rC   rw   ÚonesrR   Zuint8r   r   r   r
   Ú	enumerater4   rB   rA   )	Úloop_in_threadrn   Zdata2Zdata_to_processrF   rG   rH   r1   r}   r   rš   r   Útest_auto_scatterè   s&    

ÿ
4&
rž   Úretry_noc                    s¤   t  d¡‰d‰ d}‡fdd„‰‡ ‡fdd„‰tƒ �h\}\}}t|d | d��D}td	d
��. ˆ d¡‰tƒ ‡‡fdd„t|ƒD ƒƒ}W 5 Q R X W 5 Q R X W 5 Q R X d S )Nrg   r>   c                    s
   ˆ   | ¡S r   )ry   )rV   r<   Új)rn   r   r   Úmy_sum  s    z#test_nested_scatter.<locals>.my_sumc              	      sD   t ƒ }tdd��& tƒ ‡ ‡‡fdd„tˆƒD ƒƒ}W 5 Q R X t|ƒS )Nr   r8   c                 3   s&   | ]}t ˆƒˆ |d … ˆ|ƒV  qd S r   rK   )r(   r    )Úarrayr<   r¡   r   r   r=     s    zEtest_nested_scatter.<locals>.outer_function_joblib.<locals>.<genexpr>)r   r   r
   rA   ry   )r¢   r<   r1   r–   )ÚNUM_INNER_TASKSr¡   )r¢   r<   r   Úouter_function_joblib  s    ÿÿz2test_nested_scatter.<locals>.outer_function_joblibr5   r6   r   r8   i'  c                 3   s$   | ]}t ˆƒˆ |d … |ƒV  qd S r   rK   r;   )Úmy_arrayr¤   r   r   r=     s
   ÿ
 ÿz&test_nested_scatter.<locals>.<genexpr>)rC   rw   r   r   r   r›   r
   rA   )r7   rŸ   ZNUM_OUTER_TASKSrF   rG   rH   rM   r   )r£   r¥   r¡   rn   r¤   r   Útest_nested_scatter  s    
	
þr¦   c                    s  dd„ ‰ t ƒ �î\}\}}t|d | d��Z}tdd��D tdd�‡ fd	d
„tdƒD ƒƒ}|D ]}tt|ƒƒdksZt‚qZW 5 Q R X W 5 Q R X t|d | d��Z}tdd��D tdd�‡ fdd
„tdƒD ƒƒ}|D ]}tt|ƒƒdksÊt‚qÊW 5 Q R X W 5 Q R X W 5 Q R X d S )Nc                  S   sH   t tdd�dd„ tdƒD ƒƒƒ} | t tdd�dd„ tdƒD ƒƒƒO } | S )Nr	   ©Ún_jobsc                 s   s   | ]}t tjƒƒ V  qd S r   ©r   ÚosÚgetpidrL   r   r   r   r=   &  s     zOtest_nested_backend_context_manager.<locals>.get_nested_pids.<locals>.<genexpr>c                 s   s   | ]}t tjƒƒ V  qd S r   r©   rL   r   r   r   r=   '  s     )Úsetr
   rA   )Zpidsr   r   r   Úget_nested_pids%  s     $z<test_nested_backend_context_manager.<locals>.get_nested_pidsr5   r6   r   r8   r	   r§   c                 3   s   | ]}t ˆ ƒƒ V  qd S r   rK   rL   ©r­   r   r   r=   -  s   ÿz6test_nested_backend_context_manager.<locals>.<genexpr>r>   c                 3   s   | ]}t ˆ ƒƒ V  qd S r   rK   rL   r®   r   r   r=   7  s   ÿ)r   r   r   r
   rA   r/   r¬   rB   )r�   rF   rG   rH   r1   Z
pid_groupsZ	pid_groupr   r®   r   Ú#test_nested_backend_context_manager$  s     þ*þr¯   c           	         sÔ   dd„ ‰ ‡ fdd„‰t ƒ �°\}\}}t|d | d��Œ}tdd��v tƒ �>}ˆ |ƒd	ksZt‚|jd
ksht‚|‡fdd„tdƒD ƒƒ}W 5 Q R X |D ] \}}|d	ks¤t‚|d
ks�t‚q�W 5 Q R X W 5 Q R X W 5 Q R X d S )Nc                 S   s
   | j jjS r   )rO   Ú	__class__r‡   ©Úpr   r   r   Ú_backend_typeC  s    zJtest_nested_backend_context_manager_implicit_n_jobs.<locals>._backend_typec               
      s,   t ƒ �} ˆ | ƒ| jfW  5 Q R £ S Q R X d S r   )r
   r¨   r±   )r³   r   r   Úget_nested_implicit_n_jobsF  s    zWtest_nested_backend_context_manager_implicit_n_jobs.<locals>.get_nested_implicit_n_jobsr5   r6   r   r8   r   éÿÿÿÿc                 3   s   | ]}t ˆ ƒƒ V  qd S r   rK   rL   )r´   r   r   r=   P  s   ÿzFtest_nested_backend_context_manager_implicit_n_jobs.<locals>.<genexpr>r	   )r   r   r   r
   rB   r¨   rA   )	r7   rF   rG   rH   r1   r²   Zall_nested_n_jobsZbackend_typeZnested_n_jobsr   )r³   r´   r   Ú3test_nested_backend_context_manager_implicit_n_jobs?  s    þr¶   c              
   C   sF   t  t¡�}tdd�� W 5 Q R X W 5 Q R X dt|jƒ ¡ ksBt‚d S )Nr   r8   zcreate a dask client)rC   rD   r   r   ÚstrÚvalueÚlowerrB   )r7   Úinfor   r   r   Útest_errorsY  s    r»   c                 C   sÒ   t ƒ �Â\}\}}t|d | d��ž}tdd��< tdd�dd„ td	ƒD ƒƒ}t|d
 d
 d
 tƒsdt‚W 5 Q R X tdd��< tdd�dd„ td	ƒD ƒƒ}t|d
 d
 d
 tƒs°t‚W 5 Q R X W 5 Q R X W 5 Q R X d S )Nr5   r6   r   r8   r	   r§   c                 s   s   | ]}t tƒd d�V  qd S )N©Znested_require©r   ÚouterrL   r   r   r   r=   f  s    z.test_correct_nested_backend.<locals>.<genexpr>r'   r   c                 s   s   | ]}t tƒd d�V  qdS )Z	sharedmemr¼   Nr½   rL   r   r   r   r=   l  s   ÿ)	r   r   r   r
   rA   rP   r   rB   r   )r7   rF   rG   rH   r1   Úresultr   r   r   Útest_correct_nested_backenda  s    ÿ$þrÀ   c                    s"   t ddd�‡ fdd„tdƒD ƒƒS )Nr	   Úthreads)r¨   Zpreferc                 3   s   | ]}t tƒˆ ƒV  qd S r   )r   ÚmiddlerL   r¼   r   r   r=   s  s    zouter.<locals>.<genexpr>r'   ©r
   rA   r¼   r   r¼   r   r¾   r  s    ÿr¾   c                 C   s   t d| d�dd„ tdƒD ƒƒS )Nr	   )r¨   Úrequirec                 s   s   | ]}t tƒƒ V  qd S r   )r   ÚinnerrL   r   r   r   r=   y  s    zmiddle.<locals>.<genexpr>r'   rÃ   )rÄ   r   r   r   rÂ   x  s    ÿrÂ   c                   C   s   t ƒ jS r   )r
   rO   r   r   r   r   rÅ   ~  s    rÅ   c              
   C   sP   t | ddd��8 tdd��" tdd�dd	„ td
ƒD ƒƒ W 5 Q R X W 5 Q R X d S )NFT)r7   Ú	processesZset_as_defaultr   r8   r[   r§   c                 s   s   | ]}t tƒ|ƒV  qd S r   )r   Úidr;   r   r   r   r=   †  s     z0test_secede_with_no_processes.<locals>.<genexpr>r	   )r   r   r
   rA   r6   r   r   r   Útest_secede_with_no_processes‚  s    rÈ   c                 C   s   ddl m} |ƒ jS )Nr   )Ú
get_worker)r   rÉ   r5   )rM   rÉ   r   r   r   Ú_worker_address‰  s    rÊ   c                 C   sÎ   t ƒ �¾\}\}}t|d | d��š}td|d d��4 tƒ dd„ tdƒD ƒƒ}||d gd ksbt‚W 5 Q R X td|d d��4 tƒ dd„ tdƒD ƒƒ}||d gd ks¬t‚W 5 Q R X W 5 Q R X W 5 Q R X d S )	Nr5   r6   r   )r9   Úworkersc                 s   s   | ]}t tƒ|ƒV  qd S r   ©r   rÊ   r;   r   r   r   r=   ’  s    z-test_dask_backend_keywords.<locals>.<genexpr>r>   c                 s   s   | ]}t tƒ|ƒV  qd S r   rÌ   r;   r   r   r   r=   —  s    rU   rE   r   r   r   Útest_dask_backend_keywordsŽ  s    
ÿ 
ÿrÍ   c              
   C   s€   t d| d��j}tdd�� tƒ dd„ tdƒD ƒƒ W 5 Q R X tƒ }|jjjrhtdƒ tƒ |d	 k sBt	‚qB|j
rrt	‚W 5 Q R X d S )
NF)rÆ   r7   r   r8   c                 s   s   | ]}t tƒ|ƒV  qd S r   r:   r;   r   r   r   r=   Ÿ  s     ztest_cleanup.<locals>.<genexpr>r>   g{®Gáz„?r�   )r   r   r
   rA   r   r   Z	schedulerrd   r   rB   Úfutures)r7   r1   Ústartr   r   r   Útest_cleanupœ  s    "
rÐ   Úcluster_strategyÚadaptiveÚlate_scalingz2.1.1z1.28.0z?distributed bug - https://github.com/dask/distributed/pull/2841)Úreasonc              	   C   sŠ   t dddd�}t|ƒ}| dkr.|jddd� n| dkr@| d¡ z2tdd	�� tƒ d
d„ tdƒD ƒƒ W 5 Q R X W 5 | ¡  | ¡  X d S )Nr   Fr	   ©rp   rÆ   rq   rÒ   )ÚminimumÚmaximumrÓ   r   r8   c                 s   s   | ]}t tƒ|ƒV  qd S r   r:   r;   r   r   r   r=   ¼  s     z(test_wait_for_workers.<locals>.<genexpr>r>   )r   r   ZadaptÚscalerx   r   r
   rA   )rÑ   r   r1   r   r   r   Útest_wait_for_workers©  s    
&rÙ   c               
   C   sÎ   t dddd�} t| ƒ}z tddd��< d}tjt|d	�� tƒ d
d„ tdƒD ƒƒ W 5 Q R X W 5 Q R X tddd��< d}tjt	|d	�� tƒ dd„ tdƒD ƒƒ W 5 Q R X W 5 Q R X W 5 | ¡  |  ¡  X d S )Nr   Fr	   rÕ   r   gš™™™™™¹?)r9   Zwait_for_workers_timeoutz7DaskDistributedBackend has no worker after 0.1 seconds.)Úmatchc                 s   s   | ]}t tƒ|ƒV  qd S r   r:   r;   r   r   r   r=   Ë  s     z0test_wait_for_workers_timeout.<locals>.<genexpr>r>   z+DaskDistributedBackend has no active workerc                 s   s   | ]}t tƒ|ƒV  qd S r   r:   r;   r   r   r   r=   Ñ  s     )
r   r   rx   r   rC   rD   ÚTimeoutErrorr
   rA   ÚRuntimeError)r   r1   Úmsgr   r   r   Útest_wait_for_workers_timeoutÂ  s    ,0rÞ   r9   ZlokyÚmultiprocessingc                    sl   t dd�}t|ƒ}‡ fdd„}| |¡}| ¡ }t|ƒdks@t‚|d j}t|tƒsXt‚dt	|ƒksht‚d S )Nr	   )rp   c               	      s:   t jdd��$} tdˆ d�dd„ tdƒD ƒƒ W 5 Q R X | S )NT©Úrecordr	   )r¨   r9   c                 s   s   | ]}t tƒ|ƒV  qd S r   r:   r;   r   r   r   r=   â  s    zftest_joblib_warning_inside_dask_daemonic_worker.<locals>.func_using_joblib_parallel.<locals>.<genexpr>r>   )ÚwarningsÚcatch_warningsr
   rA   rà   r8   r   r   Úfunc_using_joblib_parallelÜ  s
    ÿzStest_joblib_warning_inside_dask_daemonic_worker.<locals>.func_using_joblib_parallelr'   r   zdistributed.worker.daemon)
r   r   Úsubmitr¿   r/   rB   ÚmessagerP   ÚUserWarningr·   )r9   r   r1   rä   Úfutrá   Úwarningr   r8   r   Ú/test_joblib_warning_inside_dask_daemonic_worker×  s    


rê   )r   )r   r   )BÚ
__future__r   r   r   rª   râ   rC   r   Úuuidr   r   r   Ú r
   r   r   rQ   r   r   Z_daskr   rw   r   r   r   r   r   Zdistributed.metricsZdistributed.utils_testr   r   r   r"   r4   rJ   rS   rT   rX   ÚmarkZparametrizere   r~   Úobjectr   rŽ   r—   rž   r0   rA   r¦   r¯   r¶   r»   rÀ   r¾   rÂ   rÅ   rÈ   rÊ   rÍ   rÐ   ZskipifÚ__version__rÙ   rÞ   rê   r   r   r   r   Ú<module>   sd   


	
9
%
þ