U
    /eB                     @  s  d dl mZ d dlZd dlZd dlZd dlmZ d dlZd dlm	Z	 e
dZejdeddejd	ded
dejdddeddejdd eddejddddeddejddedejddejddddejddeddejdd edd!d"ejd#ded$dejd%dd&d'ejd(dejddd)dejd*dejddd+dejd,ded-dejd.d/dd0d1ejd2ed d3d4ejd5ed d6d4ejd7d8ded9deje d:d; Zed<kre  dS )=    )annotationsN)dedent)
SSHClusterzdistributed.dask_sshssha  Launch a Dask cluster over SSH. A 'dask scheduler' process will run on the
        first host specified in [HOSTNAMES] or in the hostfile, unless --scheduler is specified
        explicitly. One or more 'dask worker' processes will be run on each host. Use the flag
        --nworkers to adjust how many dask worker process are run on each host and the flag
        --nthreads to adjust how many CPUs are used by each dask worker process.)namehelpz--schedulerz3Specify scheduler node.  Defaults to first address.)defaulttyper   z--scheduler-portiR"  TzSpecify scheduler port number.)r   show_defaultr	   r   z
--nthreadsznNumber of threads per worker process. Defaults to number of cores divided by the number of processes per host.z
--nworkers	n_workers   z$Number of worker processes per host.	hostnames)nargsr	   z
--hostfile)existsz$Textfile with hostnames/IP addressesz--ssh-usernamez2Username to use when establishing SSH connections.z
--ssh-port   z Port to use for SSH connections.)r   r	   r
   r   z--ssh-private-keyz,Private key file to use for SSH connections.z--nohostz'Do not pass the hostname to the worker.)Zis_flagr   z--log-directoryz`Directory to use on all cluster nodes for the output of dask scheduler and dask worker commands.z--local-directoryz=Directory to use on all cluster nodes to place workers files.z--remote-pythonzPath to Python on remote nodes.z--memory-limitautozBytes of memory that the worker can use. This can be an integer (bytes), float (fraction of total system memory), string (like 5GB or 5000M), 'auto', or zero for no memory management)r   r
   r   z--worker-portz,Serving computation port, defaults to random)r	   r   r   z--nanny-portz&Serving nanny port, defaults to randomz--remote-dask-workerzdistributed.cli.dask_workerzWorker to run.c                 C  sJ  dt jd krtdt zFt|}|rRt|}|  }W 5 Q R X |	| |s^|d }W n( t
k
r   t|   td Y nX t||||||||	|
|||||||}dd l}td tdj|jd tdt|  t|D ]\}}td	| d
|  qtd| d|  td |  td |  td d S )Nzdask-sshr   zVdask-ssh is deprecated and will be removed in a future release; use `dask ssh` insteadr   z@
---------------------------------------------------------------z-                 Dask.distributed v{version}
)versionzWorker nodes: z  z: z
scheduler node: :zA---------------------------------------------------------------

zG
[ dask ssh ]: Shutting down remote processes (this may take a moment).z=[ dask ssh ]: Remote processes have been terminated. Exiting.)sysargvwarningswarnFutureWarninglistopenreadsplitextend
IndexErrorprintZget_helpexitr   distributedformat__version__len	enumerateZmonitor_remote_processesshutdown)ctxZ	schedulerZscheduler_portr   ZhostfileZnthreadsr   Zssh_usernameZssh_portZssh_private_keyZnohostZlog_directoryZremote_pythonZmemory_limitZworker_portZ
nanny_portZremote_dask_workerZlocal_directoryfhostscr"   ihost r.   </tmp/pip-unpacked-wheel-g426oqom/distributed/cli/dask_ssh.pymain   sf     

r0   __main__)
__future__r   loggingr   r   textwrapr   ZclickZdistributed.deploy.old_sshr   	getLoggerloggercommandoptionstrintargumentPathZpass_contextZversion_optionr0   __name__r.   r.   r.   r/   <module>   s   




	
   
   0R
