o
    ci	                     @   s   d dl mZ d dlZd dlmZmZ d dlZd dlm	Z	 d dl
m  m  m  mZ d dlmZ d dlmZ edddZed	d
 ZedddZedd ZdS )    )contextmanagerN)AnyDict)	JobConfig)ray)disable_client_hookc                 k   sJ    t d| |d|}|\}}|V  W d    d S 1 sw   Y  d S )N)metadataray_connect_handler )ray_start_client_server_pair)r   r	   kwargspairclientserverr
   r
   V/home/ubuntu/.local/lib/python3.10/site-packages/ray/util/client/ray_client_helpers.pyray_start_client_server   s   "r   c                 #   sZ    	ddt dtttf f fdd}t|d}|V  W d   dS 1 s&w   Y  dS )zW
    Starts a Ray client server that initializes drivers at the specified address.
    N
job_configray_init_kwargsc                    s`   dd l }t  | s|j fd| i|W  d    S W d    d S 1 s)w   Y  d S )Nr   r   )r   r   is_initializedinit)r   r   r   addressr
   r   connect_handler   s   "z<ray_start_client_server_for_address.<locals>.connect_handlerr	   N)r   r   strr   r   )r   r   r   r
   r   r   #ray_start_client_server_for_address   s   
	"r   c                 k   sx   dt _t  t  rJ W d    n1 sw   Y  tjd|d}t jdd| i| zJt |fV  W dt _t   |d ~t	
 }t ! t  rct	d t	
 | dkr_td	t  sNW d    n1 smw   Y  t	d
 d S dt _t   |d ~t	
 }t ! t  rt	d t	
 | dkrtd	t  sW d    n1 sw   Y  t	d
 w )NT127.0.0.1:50051r   r   Fr         zFailed to terminate Ray   )r   )r   _inside_client_testr   r   ray_client_serverserveconnect
disconnectstoptime	monotonicsleepRuntimeError)r   r	   r   r   startr
   r
   r   r   (   sN   



r   c              	   #   sr    dt _d fdd	}tjd|d}t d zt |fV  W dt _t   |d d S dt _t   |d w )	NTc                    s   t j d d S )Nr   )real_rayr   )r   r   r   r
   r   r	   F   s   zAray_start_cluster_client_server_pair.<locals>.ray_connect_handlerr   r   Fr   r   )r   r!   r"   r#   r$   r%   r&   )r   r	   r   r
   r   r   $ray_start_cluster_client_server_pairB   s   
r-   )NN)
contextlibr   r'   typingr   r   r   r,   ray.job_configr   ray.util.client.server.serverutilr   r   r"   ray.util.clientray._private.client_mode_hookr   r   r   r   r-   r
   r
   r
   r   <module>   s     
