B
    F.\                 @   s\   d dl 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Z	dd Z
dd	 ZdS )
    N)Client)cluster)loopz
_worker_info = {}

def dask_setup(worker):
    _worker_info['address'] = worker.address

def get_worker_address():
    return _worker_info['address']
c          
   C   s   dd }t  }ztj|d}t|d}|t W d Q R X td|gidB\}}t	|d | d"}|
|d	d
 |D kstW d Q R X W d Q R X W d t| X d S )Nc              S   s   dd l } |  S )Nr   )worker_infoget_worker_address)r    r   =lib/python3.7/site-packages/distributed/tests/test_preload.pycheck_worker   s    z.test_worker_preload_file.<locals>.check_workerzworker_info.pywpreload)worker_kwargsaddress)r   c             S   s   i | ]}|d  |d  qS )r   r   ).0workerr   r   r   
<dictcomp>%   s   z,test_worker_preload_file.<locals>.<dictcomp>)tempfilemkdtempospathjoinopenwritePRELOAD_TEXTr   r   runAssertionErrorshutilrmtree)r   r	   tmpdirr   fsworkerscr   r   r   test_worker_preload_file   s    &r"   c          
   C   s   dd }t  }tjd| ztj|d}t|d}|t	 W d Q R X t
ddgidB\}}t|d	 | d
"}||dd |D kstW d Q R X W d Q R X W d tj| t| X d S )Nc              S   s   dd l } |  S )Nr   )r   r   )r   r   r   r   r	   /   s    z0test_worker_preload_module.<locals>.check_workerr   zworker_info.pyr
   r   r   )r   r   )r   c             S   s   i | ]}|d  |d  qS )r   r   )r   r   r   r   r   r   =   s   z.test_worker_preload_module.<locals>.<dictcomp>)r   r   sysr   insertr   r   r   r   r   r   r   r   r   remover   r   )r   r	   r   r   r   r   r    r!   r   r   r   test_worker_preload_module-   s    &r&   )r   r   r#   r   Zdistributedr   Zdistributed.utils_testr   r   r   r"   r&   r   r   r   r   <module>   s   