
    &`i	                         d dl Z d dlmZ d dlmZmZ d dlZd dlm	c m
c mc mZ d dlmZ d dlmZ d dlmZ edd            Zed             Zedd	            Zed
             ZdS )    N)contextmanager)AnyDict)disable_client_hook)	JobConfig)rayc              +   l   K   t          d| |d|5 }|\  }}|V  d d d            d S # 1 swxY w Y   d S )N)metadataray_connect_handler )ray_start_client_server_pair)r
   r   kwargspairclientservers         v/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/ray/util/client/ray_client_helpers.pyray_start_client_serverr      s      	% 
/B
 
FL
 
 		                 s   
)--c              #       K   	 ddt           dt          t          t          f         f fd}t	          |          5 }|V  ddd           dS # 1 swxY w Y   dS )zW
    Starts a Ray client server that initializes drivers at the specified address.
    N
job_configray_init_kwargsc                     dd l }t                      5   |j                    s |j        fd| i|cd d d            S 	 d d d            d S # 1 swxY w Y   d S )Nr   r   )r   r   is_initializedinit)r   r   r   addresss      r   connect_handlerz<ray_start_client_server_for_address.<locals>.connect_handler   s     	


 "" 	S 	S%3%'' SsxRRJR/RR	S 	S 	S 	S 	S 	S 	S 	SS	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	Ss   AAAr   N)r   r   strr   r   )r   r   r   s   `  r   #ray_start_client_server_for_addressr      s       !%S SS9=c3hS S S S S S 
!_	E	E	E 			                 s   AAAc              +     K   dt           _        t                      5  t          j                    rJ 	 d d d            n# 1 swxY w Y   t	          j        dd|          }t          j        dd| i| 	 t           |fV  dt           _        t          j                     |                    d           ~t          j
                    }t                      5  t          j                    rPt          j        d	           t          j
                    |z
  d
k    rt          d          t          j                    Pd d d            n# 1 swxY w Y   t          j        d           d S # dt           _        t          j                     |                    d           ~t          j
                    }t                      5  t          j                    rPt          j        d	           t          j
                    |z
  d
k    rt          d          t          j                    Pd d d            n# 1 swxY w Y   t          j        d           w xY 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   starts        r   r   r   (   s     "C			 ( (%''''''( ( ( ( ( ( ( ( ( ( ( ( ( ( ($U0C  F K??H????6k"'A   "" 	B 	B$&& B
1>##e+b00&'@AAA $&& B	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	
1 #(A   "" 	B 	B$&& B
1>##e+b00&'@AAA $&& B	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	
1sV   A  AA6E( A$EEE(AI?A$H/#I/H33I6H37Ic              #   x   K   dt           _        d	 fd	}t          j        dd|          }t          j        d           	 t           |fV  dt           _        t          j                     |                    d           d S # dt           _        t          j                     |                    d           w xY w)
NTc                 2    t          j                   d S )N)r   )real_rayr   )r   r   r   s     r   r   zAray_start_cluster_client_server_pair.<locals>.ray_connect_handlerF   s    g&&&&&&    r!   r"   r   r#   Fr   r   )r   r'   r(   r)   r*   r+   r,   )r   r   r   s   `  r   $ray_start_cluster_client_server_pairr6   B   s      "C' ' ' ' ' ' $U0C  F K!"""6k"'A #(As   B 6B9)NN)r-   
contextlibr   typingr   r   r   r4   ray.util.client.server.serverutilr   r   r(   ray._private.client_mode_hookr   ray.job_configr   ray.util.clientr   r   r   r6   r   r5   r   <module>r>      s'    % % % % % %             9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 = = = = = = $ $ $ $ $ $             $    2     r5   