o
    $i	                     @   s   d dl Z d dlmZ d dlmZmZ d dlZd dlm	  m
  m  mZ d dl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 )    N)contextmanager)AnyDict)disable_client_hook)	JobConfig)rayc                 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
   _/home/ubuntu/veenaModal/venv/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   sz   dt _t  t  rJ W d    n1 sw   Y  tjdd|d}t jdd| i| zJt |fV  W dt _t   |d ~t	
 }t ! t  rdt	d	 t	
 | d
kr`tdt  sOW d    n1 snw   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  r   127.0.0.1:50051r   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              	   #   st    dt _d
 fdd	}tjd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   r   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)r)   
contextlibr   typingr   r   r   r.   ray.util.client.server.serverutilr   r   r$   ray._private.client_mode_hookr   ray.job_configr   ray.util.clientr   r   r   r/   r
   r
   r
   r   <module>   s     
