U
    /e                  
   @  s   d dl mZ d dlZd dlZd dlZd dlZd dlZd dlmZ ej	de
dddejdd	d
ejdedddejdeddde dddddddZedkre  dS )    )annotationsN)run_specspecT)Zignore_unknown_options)nameZcontext_settingsargs)nargsz--spec )typedefaulthelpz--spec-fileliststrNone)r   r   	spec_filereturnc              	     s   |r|s|s"|s"t d td i  |rNt|} t| W 5 Q R X |rb t| d kr~ d 	dd i  fdd}t
|  d	S )
z:Launch a Dask process defined by a JSON/YAML specificationz2Must specify exactly one of --spec and --spec-file   clsoptsr   r   c                    sn   t  f I d H } z"tjdd |  D  I d H  W n2 tk
rh   tjdd |  D  I d H  Y nX d S )Nc                 s  s   | ]}|  V  qd S N)finished.0w r   =/tmp/pip-unpacked-wheel-g426oqom/distributed/cli/dask_spec.py	<genexpr>&   s     z$main.<locals>.run.<locals>.<genexpr>c                 s  s   | ]}|  V  qd S r   )closer   r   r   r   r   (   s     )r   asyncioZgathervaluesKeyboardInterrupt)Zservers_specr   r   r   run#   s
    "zmain.<locals>.runN)printsysexitopenupdateyamlZ	safe_loadjsonloadsgetr   r#   )r   r   r   fr#   r   r!   r   main   s    

r.   __main__)
__future__r   r   r*   r%   Zclickr)   Zdistributed.deploy.specr   commanddictargumentoptionr   Zversion_optionr.   __name__r   r   r   r   <module>   s   