class_docstr: The URI reference table which is used for GC.
  When the reference count is decreased to zero,
  the URI should be removed from this table and
  added to cache if needed.
class_docstr_tok: ["The","URI","reference","table","which","is","used","for","GC",".","When","the","reference","count","is","decreased","to","zero",",","the","URI","should","be","removed","from","this","table","and","added","to","cache","if","needed","."]
code: def __init__(
      self,
      uris_parser: Callable[[RuntimeEnv], Tuple[str, UriType]],
      unused_uris_callback: Callable[[List[Tuple[str, UriType]]], None],
      unused_runtime_env_callback: Callable[[str], None],
  ):
      # Runtime Environment reference table. The key is serialized runtime env and
      # the value is reference count.
      self._runtime_env_reference: Dict[str, int] = defaultdict(int)
      # URI reference table. The key is URI parsed from runtime env and the value
      # is reference count.
      self._uri_reference: Dict[str, int] = defaultdict(int)
      self._uris_parser = uris_parser
      self._unused_uris_callback = unused_uris_callback
      self._unused_runtime_env_callback = unused_runtime_env_callback
      # send the `DeleteRuntimeEnvIfPossible` RPC when the client exits. The URI won't
      # be leaked now because the reference count will be reset to zero when the job
      # finished.
      self._reference_exclude_sources: Set[str] = {
          "client_server",
      }
  
imports: import asyncio
  import json
  import logging
  import os
  import time
  import traceback
  from collections import defaultdict
  from dataclasses import dataclass
  from typing import Callable, Dict, List, Set, Tuple
  from ray._private.ray_constants import DEFAULT_RUNTIME_ENV_TIMEOUT_SECONDS
  import ray._private.runtime_env.agent.runtime_env_consts
  from ray._private.ray_logging import setup_component_logger
  from ray._private.runtime_env.conda import CondaPlugin
  from ray._private.runtime_env.container import ContainerManager
  from ray._private.runtime_env.context import RuntimeEnvContext
  from ray._private.runtime_env.java_jars import JavaJarsPlugin
  from ray._private.runtime_env.pip import PipPlugin
  from ray._private.gcs_utils import GcsAioClient
  from ray._private.runtime_env.plugin import RuntimeEnvPlugin, create_for_plugin_if_needed
  from ray._private.utils import get_or_create_event_loop
  from ray._private.runtime_env.plugin import RuntimeEnvPluginManager
  from ray._private.runtime_env.py_modules import PyModulesPlugin
  from ray._private.runtime_env.working_dir import WorkingDirPlugin
  from ray._private.runtime_env.nsight import NsightPlugin
  from ray._private.runtime_env.mpi import MPIPlugin
  from ray.core.generated import runtime_env_agent_pb2, agent_manager_pb2
  from ray.core.generated.runtime_env_common_pb2 import RuntimeEnvState
  from ray.runtime_env import RuntimeEnv, RuntimeEnvConfig
label_desc: Use image node_id 1 to create a new ReferenceTable object  with example: obj = ReferenceTable(uris_parser, unused_uris_callback, unused_runtime_env_callback)