
    &`iMf              
          d dl Z d dlZd dlZd dlmZ d dlmZmZ d dlm	Z	m
Z
mZmZmZmZmZmZ d dlZd dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d d	lm Z m!Z! d d
l"m#Z# d dl$m%Z& d dl'm(Z(  ej)        e*          Z+ e(d           G d de,                      Z%e%j-        e!d<   e( G d de,                      Z.de.fdZ/	 ddee.         dee.         de0dee.         fdZ1dS )    N)deepcopy)asdictis_dataclass)AnyCallableDictListOptionalSetTupleUnion)#DEFAULT_RUNTIME_ENV_TIMEOUT_SECONDS)get_uri)get_image_uri_plugin_cls)RuntimeEnvPluginSchemaManager)OPTION_TO_NO_PATH_VALIDATION_FNOPTION_TO_VALIDATION_FN)	from_dict)RuntimeEnvConfig)	PublicAPIstable)	stabilityc            	            e Zd ZU dZh dZee         ed<   edg dZ	e
ed<   eddfded	ed
eee                  f fdZedee
d f         dd fd            Zed             ZdefdZedefd            Zde
fdZ xZS )r   a.  Used to specify configuration options for a runtime environment.

    The config is not included when calculating the runtime_env hash,
    which means that two runtime_envs with the same options but different
    configs are considered the same for caching purposes.

    Args:
        setup_timeout_seconds: The timeout of runtime environment
            creation, timeout is in seconds. The value `-1` means disable
            timeout logic, except `-1`, `setup_timeout_seconds` cannot be
            less than or equal to 0. The default value of `setup_timeout_seconds`
            is 600 seconds.
        eager_install: Indicates whether to install the runtime environment
            on the cluster at `ray.init()` time, before the workers are leased.
            This flag is set to `True` by default.
    >   	log_fileseager_installsetup_timeout_secondsknown_fieldsTr   r   r   _default_configNr   r   r   c                 T   t                                                       t          |t                    st	          dt          |                     |dk    r|dk    rt          d|           || d<   t          |t                    st	          dt          |                     || d<   |bt          |t                    s#t	          d| d	t          |           d
          |D ]&}t          |t                    st	          d          'n| j
        d         }|| d<   d S )Nz0setup_timeout_seconds must be of type int, got: r   zFsetup_timeout_seconds must be greater than zero or equals to -1, got: r   z%eager_install must be a boolean. got r   z1log_files must be a list of strings or None, got z with type .z(Each item in log_files must be a string.r   )super__init__
isinstanceint	TypeErrortype
ValueErrorboolliststrr   )selfr   r   r   	file_name	__class__s        o/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/ray/runtime_env/runtime_env.pyr$   zRuntimeEnvConfig.__init__7   s    	/55 		62336 6   #a'',AR,G,GA)>A A   )>$%-.. 	M]8K8KMM   !._ i.. @ @ @-1)__@ @ @   ' P P	!)S11 P#$NOOOPP ,[9I%[    configreturnc                    t          | t                    r| S t          | t                    rt          |                                           t          j        z
  }t          |          rt                              d| d           t                      }t          j        D ]}|| v r| |         ||<   t          di |S t          dt          |                      )NzTThe following unknown entries in the runtime_env_config dictionary will be ignored: r"   zEruntime_env['config'] must be of type dict or RuntimeEnvConfig, got:  )r%   r   r   setkeysr   lenloggerwarningdictr'   r(   )r2   unknown_fieldsconfig_dictfields       r0   %parse_and_validate_runtime_env_configz6RuntimeEnvConfig.parse_and_validate_runtime_env_config^   s     f.// 	M%% 	 //2B2OON>"" E3AE E E   &&K)6 7 7F??)/K&#22k222'V' '  r1   c                 $    t          di | j        S )Nr5   )r   r   )clss    r0   default_configzRuntimeEnvConfig.default_configv   s    66#"5666r1   c                     t                      }| d         |_        | d         |_        | d          |j                            | d                    |S )Nr   r   r   )ProtoRuntimeEnvConfigr   r   r   extend)r-   runtime_env_configs     r0   build_proto_runtime_env_configz/RuntimeEnvConfig.build_proto_runtime_env_configz   sX    244378O3P0+/+@(((//[0ABBB!!r1   rF   c                     |j         }|dk    r| j        d         } | ||j        t          |j                            S )Nr   r   r   )r   r   r   r+   r   )rA   rF   r   s      r0   
from_protozRuntimeEnvConfig.from_proto   sX     2 H !A%%$'$78O$P!s"7,:-788
 
 
 	
r1   c                 :    t          t          |                     S N)r;   r   r-   s    r0   to_dictzRuntimeEnvConfig.to_dict   s    HTNN###r1   )__name__
__module____qualname____doc__r   r   r,   __annotations__r   r   r   r&   r*   r
   r	   r$   staticmethodr   r?   classmethodrB   rD   rG   rI   rM   __classcell__r/   s   @r0   r   r      s{         " UTTL#c(TTT "E OT    &I")-	%& %&"%& %& DI&	%& %& %& %& %& %&N d../	   \. 7 7 [7"0E " " " " 
,A 
 
 
 [
$ $ $ $ $ $ $ $ $r1   r   r2   c                       e Zd ZU dZh dZee         ed<   h dZee         ed<   dddddddddddddddd	e	e
e                  d
e	e         de	e         de	e
e                  de	eeeef         ef                  de	eeef                  de	eeef                  de	eeef                  de	eeeeef         f                  de	eeeeeeef         f         f                  de	eeef                  dede	e         de	e
e                  f fdZdededdf fdZdededdfdZd@dZededd fd             Zdefd!Zdefd"Zdefd#Zde	e         fd$Zde
e         fd%Zde	e         fd&Zde	e         fd'Zde	e         fd(Zde
e         fd)Zdefd*Z de
e         fd+Z!de	e         fd,Z"de
e         fd-Z#de	eeeeef         f                  fd.Z$de	eeeeeeef         f         f                  fd/Z%defd0Z&defd1Z'defd2Z(defd3Z)defd4Z*defd5Z+de	e         fd6Z,defd7Z-defd8Z.de	e         fd9Z/defd:Z0de	e         fd;Z1de	e         fd<Z2de
fd=Z3de	e         fd>Z4de
e5eef                  fd?Z6 xZ7S )A
RuntimeEnva'  This class is used to define a runtime environment for a job, task,
    or actor.

    See :ref:`runtime-environments` for detailed documentation.

    This class can be used interchangeably with an unstructured dictionary
    in the relevant API calls.

    Can specify a runtime environment whole job, whether running a script
    directly on the cluster, using Ray Job submission, or using Ray Client:

    .. code-block:: python

        from ray.runtime_env import RuntimeEnv
        # Starting a single-node local Ray cluster
        ray.init(runtime_env=RuntimeEnv(...))

    .. code-block:: python

        from ray.runtime_env import RuntimeEnv
        # Connecting to remote cluster using Ray Client
        ray.init("ray://123.456.7.89:10001", runtime_env=RuntimeEnv(...))

    Can specify different runtime environments per-actor or per-task using
    ``.options()`` or the ``@ray.remote`` decorator:

    .. code-block:: python

        from ray.runtime_env import RuntimeEnv
        # Invoke a remote task that runs in a specified runtime environment.
        f.options(runtime_env=RuntimeEnv(...)).remote()

        # Instantiate an actor that runs in a specified runtime environment.
        actor = SomeClass.options(runtime_env=RuntimeEnv(...)).remote()

        # Specify a runtime environment in the task definition. Future invocations via
        # `g.remote()` use this runtime environment unless overridden by using
        # `.options()` as above.
        @ray.remote(runtime_env=RuntimeEnv(...))
        def g():
            pass

        # Specify a runtime environment in the actor definition. Future instantiations
        # via `MyClass.remote()` use this runtime environment unless overridden by
        # using `.options()` as above.
        @ray.remote(runtime_env=RuntimeEnv(...))
        class MyClass:
            pass

    Here are some examples of RuntimeEnv initialization:

    .. code-block:: python

        # Example for using conda
        RuntimeEnv(conda={
            "channels": ["defaults"], "dependencies": ["codecov"]})
        RuntimeEnv(conda="pytorch_p36")   # Found on DLAMIs

        # Example for using container
        RuntimeEnv(
            container={"image": "anyscale/ray-ml:nightly-py38-cpu",
            "run_options": ["--cap-drop SYS_ADMIN","--log-level=debug"]})

        # Example for set env_vars
        RuntimeEnv(env_vars={"OMP_NUM_THREADS": "32", "TF_WARNINGS": "none"})

        # Example for set pip
        RuntimeEnv(
            pip={"packages":["tensorflow", "requests"], "pip_check": False,
            "pip_version": "==22.0.2;python_version=='3.8.11'"})

        # Example for using image_uri
        RuntimeEnv(
            image_uri="rayproject/ray:2.39.0-py312-cu123")

    Args:
        py_modules: List of local paths or remote URIs (either in the GCS or external
            storage), each of which is a zip file that Ray unpacks and
            inserts into the PYTHONPATH of the workers.
        working_dir: Local path or remote URI (either in the GCS or external storage) of a zip
            file that Ray unpacks in the directory of each task/actor.
        pip: Either a list of pip packages, a string
            containing the path to a pip requirements.txt file, or a Python
            dictionary that has three fields: 1) ``packages`` (required, List[str]): a
            list of pip packages, 2) ``pip_check`` (optional, bool): whether enable
            pip check at the end of pip install, defaults to False.
            3) ``pip_version`` (optional, str): the version of pip, Ray prepends
            the package name "pip" in front of the ``pip_version`` to form the final
            requirement string, the syntax of a requirement specifier is defined in
            full in PEP 508.
        uv: Either a list of pip packages, or a Python dictionary that has one field:
            1) ``packages`` (required, List[str]).
        conda: Either the conda YAML config, the name of a
            local conda env (e.g., "pytorch_p36"), or the path to a conda
            environment.yaml file.
            Ray automatically injects the dependency into the conda
            env to ensure compatibility with the cluster Ray. Ray may automatically
            mangle the conda name to avoid conflicts between runtime envs.
            This field can't be specified at the same time as the 'pip' field.
            To use pip with conda, specify your pip dependencies within
            the conda YAML config:
            https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#create-env-file-manually
        container: Require a given (Docker) container image,
            The Ray worker process runs in a container with this image.
            This parameter only works alone, or with the ``config`` or
            ``env_vars`` parameters.
            The `run_options` list spec is here:
            https://docs.docker.com/engine/reference/run/
        env_vars: Environment variables to set.
        worker_process_setup_hook: (Experimental) The setup hook that's
            called after workers start and before Tasks and Actors are scheduled.
            A module name (string type) or callable (function) can be passed.
            When a module name is passed, Ray worker should be able to access the
            module name. When a callable is passed, callable should be serializable.
            When a runtime env is specified by job submission API,
            only a module name (string) is allowed.
        nsight: Dictionary mapping nsight profile option name to it's value.
        rocprof_sys: Dictionary mapping rocprof-sys profile option name and environment
                   variables to it's value.
        config: config for runtime environment. Either
            a dict or a RuntimeEnvConfig. Field: (1) setup_timeout_seconds, the
            timeout of runtime environment creation,  timeout is in seconds.
        image_uri: URI to a container image. The Ray worker process runs
            in a container with this image. This parameter only works alone,
            or with the ``config`` or ``env_vars`` parameters.
    >   uvpipcondar2   _nsightenv_varsexcludes	container	image_uri	java_jars
py_modules_ray_commitworking_dir_ray_release_rocprof_syspy_executable_inject_current_rayworker_process_setup_hookr   >   rc   re   rh   extensions_fieldsNT)rb   rg   rd   rZ   r[   r_   r]   ri   nsightrocprof_sysr2   	_validater`   rY   rb   rg   rd   rZ   r[   r_   r]   ri   rk   rl   r2   rm   r`   rY   c          
         t                                                       |}|||d<   |||d<   |||d<   |||d<   |||d<   |||d<   |	|	|d<   |
|
|d<   |||d	<   |||d
<   |||d<   |||d<   |||d<   |                     |           |sd S |                     d          d u|                     d          d uz   |                     d          d uz   dk    rRt	          d|                     d           d|                     d           d|                     d           d          |                     d	          rat          |                                          h dz
  }t          |          rt	          d|           t          	                    d           |                     d          ret                      }t          |                                          |                                z
  }t          |          rt	          d|           t          j                    D ]$\  }}|                     |          }|| |= || |<   %d| vr9|                     d          s|                     d          rt          j        | d<   d| vrdt           j        v rd| d<   t%          d |                                 D                       r|                                  d S d S )Nrb   rg   rd   rZ   rY   r[   r\   rf   r_   r]   r2   ri   r`      zyThe 'pip' field, 'uv' field, and 'conda' field of runtime_env cannot be specified at the same time.
specified pip field: z
specified conda field: z
specified uv field: z
To use pip with conda, please only set the 'conda'field, and specify your pip dependencies within the conda YAML config dict: see https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#create-env-file-manually>   r2   r]   r_   zlThe 'container' field currently cannot be used together with other fields of runtime_env. Specified fields: zThe `container` runtime environment field is DEPRECATED and will be removed after July 31, 2025. Use `image_uri` instead. See https://docs.ray.io/en/latest/serve/advanced-guides/multi-app-container.html.zlThe 'image_uri' field currently cannot be used together with other fields of runtime_env. Specified fields: rc   rh   RAY_RUNTIME_ENV_LOCAL_DEV_MODETc              3      K   | ]}|d u V  	d S rK   r5   ).0vals     r0   	<genexpr>z&RuntimeEnv.__init__.<locals>.<genexpr>  s&      44ssd{444444r1   )r#   r$   updategetr)   r6   r7   r8   r9   r:   r   get_compatible_keysr   itemsray
__commit__osenvironallvaluesclear)r-   rb   rg   rd   rZ   r[   r_   r]   ri   rk   rl   r2   rm   r`   rY   kwargsruntime_envinvalid_keysimage_uri_plugin_clsoptionvalidate_fn
option_valr/   s                         r0   r$   zRuntimeEnv.__init__8  s   & 	!(2K%$+8K(")4K&?!$K> "K#(K %+K	""*5K' '0K$&.K
#$*K!$07PK34 '0K$K   
  	FHHWT)dhhuooT.IJHHTNN$&
  	,(,	, 	, +/((7*;*;	, 	, (,xx~~		, 	, 	,   88K   	{//11225X5X5XXL<    8)58 8   NN`   88K   
	#;#=#= K$$&&''*>*R*R*T*TT  <    8)58 8   $;#@#B#B 	* 	*FK&))J%L)V$$xx 5$((7"3"3 5&)n]#
 !,,/2:==.2*+
 44dkkmm44444 	JJLLLLL	 	r1   keyvaluer3   c                    t          |          rt          |          }n|}t          j        ||           |}|t          j        v r"|t          v rt          |         |          }|d S t                                          ||          S rK   )	r   r   r   validaterX   r   r   r#   __setitem__)r-   r   r   jsonable_type	res_valuer/   s        r0   r   zRuntimeEnv.__setitem__  s     	""5MMMM!M%.sMBBB!	*)))c5L.L.L/4]CCI ww""3	222r1   namec                 2    |                      ||           d S rK   )r   )r-   r   r   s      r0   r6   zRuntimeEnv.set  s    u%%%%%r1   c                     || vr|S |s|                      |          S t          ||                      |                    S )N)
data_classdata)__getitem__r   )r-   r   defaultr   s       r0   rv   zRuntimeEnv.get  sP    tN 	Q##D)))
9I9I$9O9OPPPPr1   serialized_runtime_envc                 :     | dddit          j        |          S )Nrm   Fr5   )jsonloads)rA   r   s     r0   deserializezRuntimeEnv.deserialize  s(    sIIUIdj1G&H&HIIIr1   c                 \     t          |           dddi| }t          j        |d          S )Nrm   T	sort_keysr5   )r(   r   dumps)r-   r   s     r0   	serializezRuntimeEnv.serialize  sC     !d4jj8848488z
 
 
 	
r1   c                     t          t          |                     }|                    d          r|d                                         |d<   |S )Nr2   )r;   r   rv   rM   )r-   runtime_env_dicts     r0   rM   zRuntimeEnv.to_dict  sQ    // )) 	N)9()C)K)K)M)MX&r1   c                 0    |                      d          d uS Nrd   rv   rL   s    r0   has_working_dirzRuntimeEnv.has_working_dir  s    xx&&d22r1   c                 ,    |                      d          S r   r   rL   s    r0   working_dir_urizRuntimeEnv.working_dir_uri  s    xx&&&r1   c                 8    d| v rt          | d                   S g S Nrb   r+   rL   s    r0   py_modules_uriszRuntimeEnv.py_modules_uris  %    4\*+++	r1   c                 ,    d| v rt          |           S d S Nr[   )get_conda_urirL   s    r0   	conda_urizRuntimeEnv.conda_uri  s    d?? &&&tr1   c                 ,    d| v rt          |           S d S NrZ   )get_pip_urirL   s    r0   pip_urizRuntimeEnv.pip_uri  s    D==t$$$tr1   c                 ,    d| v rt          |           S d S NrY   )
get_uv_urirL   s    r0   uv_urizRuntimeEnv.uv_uri  s    4<<d###tr1   c                     g S )z/Not implemented yet, always return a empty listr5   rL   s    r0   plugin_uriszRuntimeEnv.plugin_uris  s    	r1   c                 .    |                      dd          S )Nrd    r   rL   s    r0   rd   zRuntimeEnv.working_dir   s    xxr***r1   c                 8    d| v rt          | d                   S g S r   r   rL   s    r0   rb   zRuntimeEnv.py_modules  r   r1   c                 .    |                      dd           S )Nrg   r   rL   s    r0   rg   zRuntimeEnv.py_executable  s    xx...r1   c                 8    d| v rt          | d                   S g S )Nra   r   rL   s    r0   ra   zRuntimeEnv.java_jars  s%    $[)***	r1   c                 .    |                      dd           S )Nr\   r   rL   s    r0   rk   zRuntimeEnv.nsight  s    xx	4(((r1   c                 .    |                      dd           S )Nrf   r   rL   s    r0   rl   zRuntimeEnv.rocprof_sys  s    xx---r1   c                 .    |                      di           S )Nr]   r   rL   s    r0   r]   zRuntimeEnv.env_vars  s    xx
B'''r1   c                 4    |                      d          rdS dS )Nr[   TFr   rL   s    r0   	has_condazRuntimeEnv.has_conda  s     88G 	4ur1   c                 t    |                                  rt          | d         t                    sd S | d         S r   )r   r%   r,   rL   s    r0   conda_env_namezRuntimeEnv.conda_env_name  s8    ~~ 	z$w-'E'E 	4G}r1   c                     |                                  rt          | d         t                    sd S t          j        | d         d          S )Nr[   Tr   )r   r%   r;   r   r   rL   s    r0   conda_configzRuntimeEnv.conda_config#  sG    ~~ 	z$w-'F'F 	4z$w-48888r1   c                 4    |                      d          rdS dS )NrZ   TFr   rL   s    r0   has_pipzRuntimeEnv.has_pip(  s    88E?? 	4ur1   c                 4    |                      d          rdS dS )NrY   TFr   rL   s    r0   has_uvzRuntimeEnv.has_uv-  s    88D>> 	4ur1   c                 t    |                                  rt          | d         t                    sd S | d         S r   r   r%   r,   rL   s    r0   virtualenv_namezRuntimeEnv.virtualenv_name2  s6    ||~~ 	ZUS%A%A 	4E{r1   c                     |                                  rt          | d         t                    ri S | d         | d<   | d         S r   r   rL   s    r0   
pip_configzRuntimeEnv.pip_config7  sC    ||~~ 	DK!=!= 	I5kUE{r1   c                     |                                  rt          | d         t                    ri S | d         | d<   | d         S r   )r   r%   r,   rL   s    r0   	uv_configzRuntimeEnv.uv_config>  sC    {{}} 	
4:s ; ; 	I$ZT
Dzr1   c                     |t           j        vrt          dt           j         d|           |                     |          S )NzExtension key must be one of z, got: )rX   rj   r)   rv   )r-   r   s     r0   get_extensionzRuntimeEnv.get_extensionE  sU    j222
0L      xx}}r1   c                 4    |                      d          rdS dS )Nr_   TFr   rL   s    r0   has_py_containerzRuntimeEnv.has_py_containerM  s     88K   	4ur1   c                 f    |                                  sd S | d                             dd          S )Nr_   imager   r   rv   rL   s    r0   py_container_imagezRuntimeEnv.py_container_imageR  s6    $$&& 	4K $$Wb111r1   c                 f    |                                  sd S | d                             dd          S )Nr_   worker_pathr   r   rL   s    r0   py_container_worker_pathz#RuntimeEnv.py_container_worker_pathW  6    $$&& 	4K $$]B777r1   c                 f    |                                  sd S | d                             dg           S )Nr_   run_optionsr   rL   s    r0   py_container_run_optionsz#RuntimeEnv.py_container_run_options\  r   r1   c                 ,    |                      d          S )Nr`   r   rL   s    r0   r`   zRuntimeEnv.image_uria  s    xx$$$r1   c                     t                      }|                                 D ]%\  }}|| j        vr|                    ||f           &|S rK   )r+   rx   r   append)r-   resultr   r   s       r0   pluginszRuntimeEnv.pluginsd  sP    **,, 	, 	,JC$+++sEl+++r1   )NN)8rN   rO   rP   rQ   r   r   r,   rR   rj   r
   r	   r   r   r   r   r*   r$   r   r   r6   rv   rT   r   r   rM   r   r   r   r   r   r   r   rd   rb   rg   ra   rk   rl   r]   r   r   r   r   r   r   r   r   r   r   r   r   r   r`   r   r   rU   rV   s   @r0   rX   rX      s        } }~  L#c(   *# # #s3x    +/'+%)#'6:.2-1DH7;GK:>#'"&!y y y T#Y'y  }	y
 c]y d3i y d38nc123y DcN+y 4S>*y $,E(C-,@#Ay sDcN234y eCc4S>.A)B$BCDy t%5567y y C=y  T#Y!y y y y y yv3s 33 34 3 3 3 3 3 3& &C &D & & & &Q Q Q Q J J J J J [J
3 
 
 
 
         3 3 3 3 3'# ' ' ' 'c    
8C=    
#    
    
T#Y    +S + + + +DI    
/x} / / / /49    
)sDcN':!;< ) ) ) ).XeCc4S>6I1J,J&KL . . . .($ ( ( ( (3    
    
9c 9 9 9 9
    
    
#    
D    4    HSM    $    
2HSM 2 2 2 2
8(3- 8 8 8 8
8$ 8 8 8 8
%8C= % % % %eCHo.        r1   rX   r   c                     t          | t                    s t          dt          |            d          t	          j                    D ]'\  }}|                     |          }|r ||           (dS )zIChecks that options such as working_dir and py_modules only contain URIs.z,Expected type to be RuntimeEnv but received z	 instead.N)r%   rX   r'   r(   r   rx   rv   )r   r   r   r   s       r0   _validate_no_local_pathsr   l  s    k:.. 
W4;L;LWWW
 
 	
  ?DFF $ $ __V,,
 	$K
###$ $r1   Fparentchildoverrider3   c                 d   | i } |i }t          |           } t          |          }|                     di           }|                    di           }|st          |                                                               t          |                                                    rdS t          |                                                              t          |                                                    rdS |                     |           |                    |           |r|| d<   | S )a  Merge the parent and child runtime environments.

    If override = True, the child's runtime env overrides the parent's
    runtime env in the event of a conflict.

    Merging happens per key (i.e., "conda", "pip", ...), but
    "env_vars" are merged per env var key.

    It returns None if Ray fails to merge runtime environments because
    of a conflict and `override = False`.

    Args:
        parent: Parent runtime env.
        child: Child runtime env.
        override: If True, the child's runtime env overrides
            conflicting fields.
    Returns:
        The merged runtime env's if Ray successfully merges them.
        None if the runtime env's conflict. Empty dict if
        parent and child are both None.
    Nr]   )r   popr6   r7   intersectionru   )r   r   r   parent_env_varschild_env_varss        r0   _merge_runtime_envr   x  s   4 ~}fFUOOEjjR00OYYz2..N v{{}}**3uzz||+<+<== 	4##%%&&33C8K8K8M8M4N4NOO 	4
MM%>*** -,zMr1   )F)2r   loggingr{   copyr   dataclassesr   r   typingr   r   r   r	   r
   r   r   r   ry   ray._private.ray_constantsr   ray._private.runtime_env.condar   r   %ray._private.runtime_env.default_implr   ray._private.runtime_env.pipr   .ray._private.runtime_env.plugin_schema_managerr   ray._private.runtime_env.uvr   #ray._private.runtime_env.validationr   r   ray._private.thirdparty.daciter   *ray.core.generated.runtime_environment_pb2r   rD   ray.util.annotationsr   	getLoggerrN   r9   r;   r?   rX   r   r*   r   r5   r1   r0   <module>r     s     				       , , , , , , , , I I I I I I I I I I I I I I I I I I I I 



 J J J J J J C C C C C C J J J J J J ? ? ? ? ? ? X X X X X X = = = = = =        5 4 4 4 4 4      + * * * * *		8	$	$ Xv$ v$ v$ v$ v$t v$ v$ v$x : 
 L L L L L L L L^	$* 	$ 	$ 	$ 	$ / /Z /J/ / j	/ / / / / /r1   