o
    :/iI                  
   @   s6  U d dl Z d dlZd dlmZ d dlmZ eeZejZ	ej
e	dZz'ej
erFeeZee eZW d   n1 s@w   Y  ne ZW n e jy]   ede e ZY nw h dZee ed< dhZee ed< d	ed
ee fddZ			ddee dB dee dB dedB d
ee fddZdS )    N)init_loggerz ray_non_carry_over_env_vars.jsonzCFailed to parse %s. Using an empty set for non-carry-over env vars.>   HF_UCX_NCCL_VLLM_LMCACHE_HUGGING_FACE_DEFAULT_ENV_VAR_PREFIXESPYTHONHASHSEEDDEFAULT_EXTRA_ENV_VARSvaluereturnc                 C   s   dd |  dD S )zHSplit a comma-separated string into a set of stripped, non-empty tokens.c                 S   s   h | ]
}|  r|  qS  )strip).0tokr   r   ]/lsinfo/ai/hellotax_ai/llm_service/venv_vllm/lib/python3.10/site-packages/vllm/ray/ray_env.py	<setcomp>4   s    z_parse_csv.<locals>.<setcomp>,)split)r   r   r   r   
_parse_csv2   s   r   exclude_varsadditional_varsdestinationc                    s   | pt  tB }tttjB  t tj}| fddtjD O }|t	ttj
B O }||p-t  O }||8 }|r:d| nd}tdt  td|tdd |D  trZtd	t td
t |S )a5  Return the env var names to copy from the driver to Ray actors.

    The result is the union of:

    1. Env vars registered in ``vllm.envs.environment_variables``.
    2. Env vars in ``os.environ`` matching a prefix in
       ``DEFAULT_ENV_VAR_PREFIXES`` + ``VLLM_RAY_EXTRA_ENV_VAR_PREFIXES_TO_COPY``.
    3. Individual names in ``DEFAULT_EXTRA_ENV_VARS`` +
       ``VLLM_RAY_EXTRA_ENV_VARS_TO_COPY``.
    4. Caller-supplied *additional_vars* (e.g. platform-specific).

    Minus any names in *exclude_vars* or ``RAY_NON_CARRY_OVER_ENV_VARS``.

    Args:
        exclude_vars: Env vars to exclude (e.g. worker-specific ones).
        additional_vars: Extra individual env var names to copy.  Useful
            for caller-specific vars (e.g. platform env vars).
        destination: Label used in log messages only.
    c                    s&   h | ] t  fd dD r qS )c                 3   s    | ]}  |V  qd S N)
startswith)r   pnamer   r   	<genexpr>Z   s    z1get_env_vars_to_copy.<locals>.<setcomp>.<genexpr>)any)r   prefixesr   r   r   Z   s   & z'get_env_vars_to_copy.<locals>.<setcomp>z to  zEnv var prefixes to copy: %sz1Copying the following environment variables%s: %sc                 s   s    | ]
}|t jv r|V  qd S r   )osenviron)r   vr   r   r   r   h   s    z'get_env_vars_to_copy.<locals>.<genexpr>z+RAY_NON_CARRY_OVER_ENV_VARS from config: %sz0To exclude env vars from copying, add them to %s)setRAY_NON_CARRY_OVER_ENV_VARSr	   r   envs'VLLM_RAY_EXTRA_ENV_VAR_PREFIXES_TO_COPYenvironment_variablesr$   r%   r   VLLM_RAY_EXTRA_ENV_VARS_TO_COPYloggerinfosorted RAY_NON_CARRY_OVER_ENV_VARS_FILE)r   r   r   excluderesultdestr   r!   r   get_env_vars_to_copy7   s4   
r4   )NNN)jsonr$   	vllm.envsr)   vllm.loggerr   __name__r-   VLLM_CONFIG_ROOTCONFIG_HOMEpathjoinr0   existsopenfr'   loadr(   JSONDecodeErrorwarningr	   str__annotations__r   r   r4   r   r   r   r   <module>   sP   





