U
    P»{jòG  ã                   @   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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-e0e1dƒƒ¡d.d/„ ƒZ2d0d1„ Z3d2d3„ Z4d4d5„ Z5d6d7„ Z6d8d9„ Z7d:d;„ Z8d<d=„ Z9d>d?„ Z:d@dA„ Z;dBdC„ Z<dDdE„ Z=ej' (dFdGdHg¡ej'j>ej?dIk�oîej?dJkdKdL�dMdN„ ƒƒZ@dOdP„ ZAej' (dQdRdSg¡dTdU„ ƒZBd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ÚincÚcleanupc                  O   s   d S ©N© )ÚargsÚkwargsr   r   úT/var/www/html/bwave/python/venv/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
     r5   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>0   s     ztest_simple.<locals>.<genexpr>é
   c                 S   s   g | ]}t |ƒ‘qS r   ©r   r<   r   r   r   r-   1   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>   4   s   ÿc                 s   s   | ]}t tƒ|ƒV  qd S r   r;   r<   r   r   r   r>   7   s     c                 S   s   g | ]}t |ƒ‘qS r   r@   r<   r   r   r   r-   8   s     )	r   r   r   r
   ÚrangeÚAssertionErrorÚpytestÚraisesr    ©r8   ÚsÚaÚbr2   Úseqr   r   r   Útest_simple,   s    
ÿrK   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 )
Nr6   r7   r   r9   r(   c                 s   s   | ]}t d d„ ƒƒ V  qdS )c                   S   s   d S r   r   r   r   r   r   r%   M   r&   z?test_dask_backend_uses_autobatching.<locals>.<genexpr>.<lambda>N©r   ©r)   Ú_r   r   r   r>   L   s   ÿz6test_dask_backend_uses_autobatching.<locals>.<genexpr>ç     ˆÃ@r?   )r   Zcompute_batch_sizer   rC   r   r   r   r
   Ú_backendÚ
isinstanceÚparallelZ_effective_batch_sizerB   Úint)r8   rG   rH   rI   r2   rR   r:   r   r   r   Ú#test_dask_backend_uses_autobatching;   s    ÿ
þrT   c                   C   s   t ƒ S r   r   r   r   r   r   Úrandom2S   s    rU   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 )Nr6   r7   r   r9   c                 s   s   | ]}t tƒƒ V  qd S r   )r   rU   r<   r   r   r   r>   [   s     z3test_dont_assume_function_purity.<locals>.<genexpr>r	   ©r   r   r   r
   rB   rC   )r8   rG   rH   rI   r2   ÚxÚyr   r   r   Ú test_dont_assume_function_purityW   s
    rY   Ú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-   c   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-   f   s    Zmixed_batch_of_inc_4_callsr6   r7   r   r9   r	   Úall)Z
batch_sizeZpre_dispatchc                 S   s
   t | jƒS r   )r1   Ztransition_log)Zdask_schedulerr   r   r   Úfr   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>   v   s     z%test_dask_funcname.<locals>.<genexpr>)Zjoblib._daskr[   rB   ÚreprrC   r   r   r   r
   ÚreplaceZrun_on_schedulerr^   )r8   rZ   r[   ÚtasksZ
batch_reprrG   rH   rI   r2   rN   r_   r$   r   r   r   Útest_dask_funcname_   s"    ÿ
rf   c               	      sV  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 |jdd� |jdd� X d S )Nc                 S   s   g | ]}g ‘qS r   r   rM   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   )Z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_workeré   ©Útimeoutr   r9   c                 3   s   | ]}t ˆ ƒ|ƒV  qd S r   rL   ©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   rM   r   r   r   r-   ™   s     úreceive-from-scatterr   c                 S   s   g | ]}t |ƒd k‘qS r'   ©r0   ©r)   Úrr   r   r   r-       s     c                 3   s   | ]}t ˆƒ|ˆ d �V  qdS ))rl   NrL   ru   )rm   ro   r   r   r>   ¥   s    c                 S   s   g | ]}t |ƒd k‘qS r'   rw   rx   r   r   r   r-   ¬   s     )N)rB   rD   ÚimportorskipZarangerS   r   r   Úcloser   r
   rC   r5   ÚsumÚvaluesr^   )Úlistsr   r2   ÚresÚcountsr   )rm   ro   rn   r   Ú'test_no_undesired_distributed_cache_hity   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   )rW   Úcount)ÚselfrW   r   r   r   Ú__init__³   s    zCountSerialized.__init__c                 C   s   | j t|d|ƒ S )NrW   )rW   Úgetattr)r„   Úotherr   r   r   Ú__add__·   s    zCountSerialized.__add__c                 C   s   |  j d7  _ t| jffS )Nr(   )rƒ   r‚   rW   )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   )rH   rI   Ú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	   rA   r6   r7   r   )r:   Ú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>)r:   r8   r’   )r\   é   )r‚   r   r   r   r   r‘   r
   rD   rE   Ú	TypeErrorrC   rƒ   )r8   rW   rX   ÚzrG   rH   rI   r2   r_   re   Ú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 )Nrh   rO   )ZdtyperA   r6   r7   r   r9   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>rv   r	   c                 3   s$   | ]}t tƒˆ d d… |ƒV  qd S )NrA   rœ   r<   ©Zdata1r   r   r>      s     r“   r   )rD   rz   ÚonesrS   Zuint8r   r   r   r
   Ú	enumerater5   rC   rB   )	Úloop_in_threadrn   Zdata2Zdata_to_processrG   rH   rI   r2   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 )Nrh   r?   c                    s
   ˆ   | ¡S r   )r|   )rW   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   r9   c                 3   s&   | ]}t ˆƒˆ |d … ˆ|ƒV  qd S r   rL   )r)   r£   )Úarrayr=   r¤   r   r   r>     s    zEtest_nested_scatter.<locals>.outer_function_joblib.<locals>.<genexpr>)r   r   r
   rB   r|   )r¥   r=   r2   r™   )ÚNUM_INNER_TASKSr¤   )r¥   r=   r   Úouter_function_joblib  s    ÿÿz2test_nested_scatter.<locals>.outer_function_joblibr6   r7   r   r9   i'  c                 3   s$   | ]}t ˆƒˆ |d … |ƒV  qd S r   rL   r<   )Úmy_arrayr§   r   r   r>      s
   ÿ
 ÿz&test_nested_scatter.<locals>.<genexpr>)rD   rz   r   r   r   rž   r
   rB   )r8   r¢   ZNUM_OUTER_TASKSrG   rH   rI   rN   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ÚgetpidrM   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¬   rM   r   r   r   r>   )  s     )Úsetr
   rB   )Zpidsr   r   r   Úget_nested_pids'  s     $z<test_nested_backend_context_manager.<locals>.get_nested_pidsr6   r7   r   r9   r	   rª   c                 3   s   | ]}t ˆ ƒƒ V  qd S r   rL   rM   ©r°   r   r   r>   /  s   ÿz6test_nested_backend_context_manager.<locals>.<genexpr>r?   c                 3   s   | ]}t ˆ ƒƒ V  qd S r   rL   rM   r±   r   r   r>   9  s   ÿ)r   r   r   r
   rB   r0   r¯   rC   )r    rG   rH   rI   r2   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   )rP   Ú	__class__rŠ   ©Úpr   r   r   Ú_backend_typeE  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_jobsH  s    zWtest_nested_backend_context_manager_implicit_n_jobs.<locals>.get_nested_implicit_n_jobsr6   r7   r   r9   r   éÿÿÿÿc                 3   s   | ]}t ˆ ƒƒ V  qd S r   rL   rM   )r·   r   r   r>   R  s   ÿzFtest_nested_backend_context_manager_implicit_n_jobs.<locals>.<genexpr>r	   )r   r   r   r
   rC   r«   rB   )	r8   rG   rH   rI   r2   rµ   Zall_nested_n_jobsZbackend_typeZnested_n_jobsr   )r¶   r·   r   Ú3test_nested_backend_context_manager_implicit_n_jobsA  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   r9   zcreate a dask client)rD   rE   r    r   ÚstrÚvalueÚlowerrC   )r8   Úinfor   r   r   Útest_errors[  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 )Nr6   r7   r   r9   r	   rª   c                 s   s   | ]}t tƒd d�V  qd S )N©Znested_require©r   ÚouterrM   r   r   r   r>   h  s    z.test_correct_nested_backend.<locals>.<genexpr>r(   r   c                 s   s   | ]}t tƒd d�V  qdS )Z	sharedmemr¿   NrÀ   rM   r   r   r   r>   n  s   ÿ)	r   r   r   r
   rB   rQ   r   rC   r   )r8   rG   rH   rI   r2   Úresultr   r   r   Útest_correct_nested_backendc  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   ÚmiddlerM   r¿   r   r   r>   u  s    zouter.<locals>.<genexpr>r(   ©r
   rB   r¿   r   r¿   r   rÁ   t  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   ÚinnerrM   r   r   r   r>   {  s    zmiddle.<locals>.<genexpr>r(   rÆ   )rÇ   r   r   r   rÅ   z  s    ÿrÅ   c                   C   s   t ƒ jS r   )r
   rP   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)r8   Ú	processesZset_as_defaultr   r9   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
   rB   r7   r   r   r   Útest_secede_with_no_processes„  s    rË   c                 C   s   ddl m} |ƒ jS )Nr   )Ú
get_worker)r   rÌ   r6   )rN   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 )	Nr6   r7   r   )r:   Ú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    rV   rF   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É   r8   r   r9   c                 s   s   | ]}t tƒ|ƒV  qd S r   r;   r<   r   r   r   r>   ¡  s     z/test_scheduler_tasks_cleanup.<locals>.<genexpr>r?   g{®Gáz„?r“   )r   r   r
   rB   r   r   Z	schedulerre   r   rC   Zfutures)r8   r2   Ústartr   r   r   Útest_scheduler_tasks_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   r9   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Úscaler{   r   r
   rB   )rÓ   r   r2   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š™™™™™¹?)r:   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   r{   r   rD   rE   ÚTimeoutErrorr
   rB   ÚRuntimeError)r   r2   Úmsgr   r   r   Útest_wait_for_workers_timeoutÄ  s    ,0rà   r:   ZlokyÚmultiprocessingc              	      sŒ   t dd�}t|ƒ}zZ‡ fdd„}| |¡}| ¡ }t|ƒdksBt‚|d j}t|t	ƒsZt‚d	t
|ƒksjt‚W 5 |jdd� |jdd� X d S )
Nr	   )rp   rr   rs   c               	      s:   t jdd��$} tdˆ d�dd„ tdƒD ƒƒ W 5 Q R X | S )NT©Úrecordr	   )r«   r:   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
   rB   râ   r9   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   r{   ZsubmitrÂ   r0   rC   ÚmessagerQ   ÚUserWarningrº   )r:   r   r2   ræ   Zfutrã   Úwarningr   r9   r   Ú/test_joblib_warning_inside_dask_daemonic_workerÙ  s    


rê   )r   )r   r   )CÚ
__future__r   r   r   r­   rä   rD   r   Úuuidr   r   r   Ú r
   r   r   rR   r   r   Z_daskr   rz   r   r   r   r   r   Zdistributed.metricsZdistributed.utils_testr   r   r   r   r#   r5   rK   rT   rU   rY   ÚmarkZparametrizerf   r�   Úobjectr‚   r‘   rš   r¡   r1   rB   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
%
þ