o
    bi-                     @   s   d Z ddlZddlZddlZddlmZ ddlmZ ejdkZ	de
fddZd	edefd
dZd	edefddZd	edee fddZdededejfddZdS )z$Utils to detect runtime environment.    N)List)check_output_cmdntreturnc                   C   s    t tdpt tdotjtjkS )Nreal_prefixbase_prefix)hasattrsysr   prefix r   r   ]/home/ubuntu/.local/lib/python3.10/site-packages/ray/_private/runtime_env/virtualenv_utils.pyis_in_virtualenv   s   
r   
target_dirc                 C   s   t j| dS )zGet virtual environment path.
virtualenv)ospathjoin)r   r   r   r   get_virtualenv_path   s   r   c                 C   s,   t | }trtj|ddS tj|ddS )NScriptsz
python.exebinpythonr   _WIN32r   r   r   )r   virtualenv_pathr   r   r   get_virtualenv_python   s   r   c                 C   s>   t | }trtj|ddg}n	dtj|dg}|ddg S )z0Get the command to activate virtual environment.r   zactivate.batsourcezbin/activatez1>&2z&&r   )r   r   cmdr   r   r   get_virtualenv_activate_command$   s
   r   r   cwdloggerc           
   
      s   t j}tj| d}tj| d}trt j}tj }ntj	tjtj
|d}i }t rJtjtj
td}||||g}	|d|| n|ddd|dd	d
d|g
}	|d|| t|	|||dI dH  dS )z%Create or get a virtualenv from path.r   virtualenv_app_dataz..z_clonevirtualenv.pyzCloning virtualenv %s to %sz-mz
--app-dataz--reset-app-dataz--no-periodic-updatez--system-site-packagesz--no-downloadz0Creating virtualenv at %s, current python dir %s)r   r   envN)r	   
executabler   r   r   r   r
   environcopyabspathdirnamer   __file__infor   )
r   r   r   r   r   virtualenv_app_data_pathcurrent_python_dirr!   clonevirtualenvcreate_venv_cmdr   r   r   create_or_get_virtualenv.   sH   r-   )__doc__loggingr   r	   typingr   ray._private.runtime_env.utilsr   namer   boolr   strr   r   r   Loggerr-   r   r   r   r   <module>   s    


