o
    c²“i^  ã                   @   sJ   d dl mZ d dlmZ erd dlmZmZ d dlmZ G dd„ dƒZ	dS )é    )ÚTYPE_CHECKING)ÚSimpleNamespace)ÚJobIDÚNodeID©ÚRuntimeContextc                   @   s¨   e Zd ZdZdd„ Zddd„Zdd	„ Zed
d„ ƒZeddd„ƒZ	eddd„ƒZ
edefdd„ƒZedefdd„ƒZedefdd„ƒZdefdd„Zedefdd„ƒZdS ) Ú_ClientWorkerPropertyAPIzHEmulates the properties of the ray._private.worker object for the clientc                 C   s   |d usJ ‚|| _ d S ©N)Úworker)Úselfr
   © r   úS/home/ubuntu/.local/lib/python3.10/site-packages/ray/util/client/runtime_context.pyÚ__init__   s   
z!_ClientWorkerPropertyAPI.__init__Úreturnr   c                 C   s   ddl m} || ƒS )z=Creates a RuntimeContext backed by the properites of this APIr   r   )Úray.runtime_contextr   )r   r   r   r   r   Úbuild_runtime_context   s   z._ClientWorkerPropertyAPI.build_runtime_contextc                 C   s(   dd l m  m  m} | j |jj¡S )Nr   )Ú!ray.core.generated.ray_client_pb2ÚcoreÚ	generatedÚray_client_pb2r
   Úget_cluster_infoÚClusterInfoTypeÚRUNTIME_CONTEXT)r   r   r   r   r   Ú_fetch_runtime_context   s   ÿz/_ClientWorkerPropertyAPI._fetch_runtime_contextc                 C   s   ddl m} |S )Nr   )ÚSCRIPT_MODE)Úray._private.workerr   )r   r   r   r   r   Úmode   s   z_ClientWorkerPropertyAPI.moder   c                 C   ó   ddl m} ||  ¡ jƒS )Nr   )r   )Úrayr   r   Újob_id)r   r   r   r   r   Úcurrent_job_id$   ó   z'_ClientWorkerPropertyAPI.current_job_idr   c                 C   r   )Nr   )r   )r   r   r   Únode_id)r   r   r   r   r   Úcurrent_node_id*   r!   z(_ClientWorkerPropertyAPI.current_node_idc                 C   ó
   |   ¡ jS r	   )r   Ú	namespace©r   r   r   r   r%   0   ó   
z"_ClientWorkerPropertyAPI.namespacec                 C   r$   r	   )r   Úcapture_client_tasksr&   r   r   r   Ú-should_capture_child_tasks_in_placement_group4   r'   zF_ClientWorkerPropertyAPI.should_capture_child_tasks_in_placement_groupc                 C   r$   r	   )r   Úruntime_envr&   r   r   r   r*   8   r'   z$_ClientWorkerPropertyAPI.runtime_envc                 C   s
   | j  ¡ S r	   )r
   Úping_serverr&   r   r   r   Úcheck_connected<   s   
z(_ClientWorkerPropertyAPI.check_connectedc                 C   s   t |  ¡ jdS )N)Úaddress)r   r   Úgcs_addressr&   r   r   r   Ú
gcs_client?   s   z#_ClientWorkerPropertyAPI.gcs_clientN)r   r   )r   r   )r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   Úpropertyr   r    r#   Ústrr%   Úboolr)   r*   r,   r/   r   r   r   r   r   	   s(    

r   N)
Útypingr   Útypesr   r   r   r   r   r   r   r   r   r   r   Ú<module>   s    