o
    bi                     @   s   d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZmZm	Z	 d dl
mZ d dlmZ d dlmZ d dlmZ eeZeG dd dZdS )	    N)DictListOptional)get_ray_jars_dir)update_envs)Language)DeveloperAPIc                   @   s   e Zd ZdZ					ddee deeef dee dee dee f
dd	Zd
efddZ	e
dd Zdee defddZdS )RuntimeEnvContextz3A context used to describe the created runtime env.Ncommand_prefixenv_varspy_executableoverride_worker_entrypoint	java_jarsc                 C   s4   |pg | _ |pi | _|ptj| _|| _|pg | _d S N)r
   r   sys
executabler   r   r   )selfr
   r   r   r   r    r   T/home/ubuntu/.local/lib/python3.10/site-packages/ray/_private/runtime_env/context.py__init__   s
   

zRuntimeEnvContext.__init__returnc                 C   s   t | jS r   )jsondumps__dict__)r   r   r   r   	serialize#   s   zRuntimeEnvContext.serializec                 C   s   t di t| S )Nr   )r	   r   loads)json_stringr   r   r   deserialize&   s   zRuntimeEnvContext.deserializepassthrough_argslanguagec           
         s  t | j |tjkrtjdkr| jg}nM|tjkrd| jg}nB|tjkrVdg}tj	
t d}g }| jD ]}|| d || q4d|d td
| g}|| }ntjdkr^g }ndg}| jrxtd|d	  d
| j d | j|d	< tjdkrdd   fdd|D }g | j||}td|  tj|dd  d S dd |D }g | j||}d}	|	tjv r|d	|	 dtj|	   td|  tjdddd
|gd d S )Nwin32execjava*z/*z-cp:z$Changing the worker entrypoint from r   z to .c                 S   s   |  dd} | S )N&z%26)replace)sr   r   r   quoteN   s   z,RuntimeEnvContext.exec_worker.<locals>.quotec                    s   g | ]} |qS r   r   .0r(   r)   r   r   
<listcomp>R   s    z1RuntimeEnvContext.exec_worker.<locals>.<listcomp>zExec'ing worker with command: T)shellc                 S   s   g | ]}t |qS r   )shlexr)   r*   r   r   r   r-   Z   s    DYLD_LIBRARY_PATH=bashz-c )args)r   r   r   PYTHONr   platformr   JAVAospathjoinr   r   appendstrr   loggerdebugr
   
subprocessPopenwaitenvironinsertexecvp)
r   r   r   r   ray_jarslocal_java_jarsjava_jarclass_path_argscmdMACOS_LIBRARY_PATH_ENV_NAMEr   r,   r   exec_worker*   sT   









zRuntimeEnvContext.exec_worker)NNNNN)__name__
__module____qualname____doc__r   r<   r   r   r   r   staticmethodr   r   rK   r   r   r   r   r	      s,    


r	   )r   loggingr8   r/   r?   r   typingr   r   r   ray._private.servicesr   ray._private.utilsr   ray.core.generated.common_pb2r   ray.util.annotationsr   	getLoggerrL   r=   r	   r   r   r   r   <module>   s    
