
    0Fie8              	         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 d dl	m
Z
 d dlmZ d dlmZ  ej        d ed	          
           ej        dd           ej        dedd           ej        dedd           ej                    dd                                                            Zedk    r e             dS dS )    )annotationsN)wait_for_signals)asyncio_run)get_loop_factory)	init_specspecT)ignore_unknown_options)namecontext_settingsargs)nargsz--spec )typedefaulthelpz--spec-fileliststr	spec_filereturnNonec                    |r|s|s%|s#t          d           t          j        d           i |rNt          |          5 }                    t          j        |                     ddd           n# 1 swxY w Y   |r'                    t          j        |                     dv rd         	                    dd          id fd
}t           |            t                                 dS )z:Launch a Dask process defined by a JSON/YAML specificationz2Must specify exactly one of --spec and --spec-file   Nclsoptsr
   r   r   r   c                   K   t          gR  dfd} dfd}t          j         |                      }t          j         |                       }t          j        ||gt          j                   d {V \  }}d |D              d S )Nr   r   c                    K   t          j                                           d {V  t          j        d                                  D               d {V  d S )Nc              3  >   K   | ]}|                                 V  d S N)finished.0ws     9lib/python3.11/site-packages/distributed/cli/dask_spec.py	<genexpr>zHmain.<locals>.run.<locals>.wait_for_servers_to_finish.<locals>.<genexpr>+   s*      "J"JA1::<<"J"J"J"J"J"J    )asynciogathervaluesserverss   r$   wait_for_servers_to_finishz5main.<locals>.run.<locals>.wait_for_servers_to_finish)   sn      .'.."2"233333333."J"J9I9I"J"J"JKKKKKKKKKKr&   c                    K   t                       d {V  t          j        d                                  D               d {V  d S )Nc              3  >   K   | ]}|                                 V  d S r   )closer!   s     r$   r%   zHmain.<locals>.run.<locals>.wait_for_signals_and_close.<locals>.<genexpr>/   s*      "G"G17799"G"G"G"G"G"Gr&   )r   r'   r(   r)   r*   s   r$   wait_for_signals_and_closez5main.<locals>.run.<locals>.wait_for_signals_and_close-   sc      "$$$$$$$$$."G"Ggnn6F6F"G"G"GHHHHHHHHHHr&   )return_whenc                6    g | ]}|                                 S  )result)r"   tasks     r$   
<listcomp>z%main.<locals>.run.<locals>.<listcomp>=   s     (((4(((r&   r   r   )r   r'   create_taskwaitFIRST_COMPLETED)	r,   r0   wait_for_signals_and_close_taskwait_for_servers_to_finish_taskdone_r+   _specr   s	         @r$   runzmain.<locals>.run&   s     E)D)))	L 	L 	L 	L 	L 	L	I 	I 	I 	I 	I 	I +2*=&&((+
 +
' +2*=&&((+
 +
'  ,.MN/
 
 
 
 
 
 
 
 
a
 	)(4((((((r&   )loop_factoryr7   )printsysexitopenupdateyaml	safe_loadjsonloadsgetr   r   )r   r   r   fr@   r?   s   `    @r$   mainrM      s^     	  i BCCCE ,)__ 	,LL**+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,  'TZ%%&&&~~v""61--u5) ) ) ) ) ) )2 $4$6$6777777s   (A55A9<A9__main__)r   r   r   r   r   r   r   r   )
__future__r   r'   rI   rC   clickrG   distributed._signalsr   distributed.compatibilityr   distributed.configr   distributed.deploy.specr   commanddictargumentoptionr   version_optionrM   __name__r3   r&   r$   <module>r[      sc   " " " " " "   



   1 1 1 1 1 1 1 1 1 1 1 1 / / / / / / - - - - - - FTT-N-N-NOOOb!!!hS"2666m#t"===*8 *8 *8  >= 76 "! PO
*8Z zDFFFFF r&   