class_docstr: 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.
class_docstr_tok: ["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","`","can","not","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","."]
code: def from_proto(cls, runtime_env_config: ProtoRuntimeEnvConfig):
      setup_timeout_seconds = runtime_env_config.setup_timeout_seconds
      # Cause python class RuntimeEnvConfig has validate to avoid
      # setup_timeout_seconds equals zero, so setup_timeout_seconds
      # on RuntimeEnvConfig is zero means other Language(except python)
      # dosn't assign value to setup_timeout_seconds. So runtime_env_agent
      # assign the default value to setup_timeout_seconds.
      if setup_timeout_seconds == 0:
          setup_timeout_seconds = cls._default_config[
              "setup_timeout_seconds"
          ]
      return cls(
          setup_timeout_seconds=setup_timeout_seconds,
          eager_install=runtime_env_config.eager_install,
      )
  
imports: import json
  import logging
  import os
  from copy import deepcopy
  from dataclasses import asdict, is_dataclass
  from typing import Any, Callable, Dict, List, Optional, Set, Tuple, Union
  import ray
  from ray._private.ray_constants import DEFAULT_RUNTIME_ENV_TIMEOUT_SECONDS
  from ray._private.runtime_env.conda import get_uri
  from ray._private.runtime_env.pip import get_uri
  from ray._private.runtime_env.plugin_schema_manager import RuntimeEnvPluginSchemaManager
  from ray._private.runtime_env.validation import OPTION_TO_VALIDATION_FN
  from ray._private.thirdparty.dacite import from_dict
  from ray.core.generated.runtime_env_common_pb2 import RuntimeEnvConfig
  from ray.util.annotations import PublicAPI
label_desc: Use image node_id 5 for calling the RuntimeEnvConfig obj's underlying member method code with example usage: obj.from_proto(cls, runtime_env_config) and returns: cls