class_docstr: Distributed in memory tf.Variable store based on Reverb.
  
  This is just a client. The server needs to be consructed and held separately.
  
  **Note:** The container stores nests of variables in dedicated tables in a
  Reverb server. It is assumed that the server is running, the tables for
  variable container exist and are configured properly (i.e. it have signature
  defined and the `max_size=1`).
class_docstr_tok: ["Distributed","in","memory","tf.Variable","store","based","on","Reverb",".","This","is","just","a","client",".","The","server","needs","to","be","consructed","and","held","separately",".","*","*","Note",":","*","*","The","container","stores","nests","of","variables","in","dedicated","tables","in","a","Reverb","server",".","It","is","assumed","that","the","server","is","running",",","the","tables","for","variable","container","exist","and","are","configured","properly","(","i.e",".","it","have","signature","defined","and","the","`","max_size=1","`",")","."]
docstr: Initializes the class.
  
  Args:
    server_address: The address of the Reverb server.
    table_names: Table names. By default, it is assumed that only a single
      table is used with the name `variables`. Each table assumed to exist in
      the server, has signature defined, and set the capacity to 1.
  
  Raises:
    KeyError: If a table is not defined in the server, but listed in tables.
    TypeError: If no signature is provided for a table.
    ValueError: If the `max_size` of the table corresponding to table_name(s)
      on the server is not equal to 1.
docstr_tok: ["Initializes","the","class",".","Args",":","server_address",":","The","address","of","the","Reverb","server",".","table_names",":","Table","names",".","By","default",",","it","is","assumed","that","only","a","single","table","is","used","with","the","name","`","variables","`",".","Each","table","assumed","to","exist","in","the","server",",","has","signature","defined",",","and","set","the","capacity","to","1",".","Raises",":","KeyError",":","If","a","table","is","not","defined","in","the","server",",","but","listed","in","tables",".","TypeError",":","If","no","signature","is","provided","for","a","table",".","ValueError",":","If","the","`","max_size","`","of","the","table","corresponding","to","table_name","(","s",")","on","the","server","is","not","equal","to","1","."]
code: def __init__(
      self,
      server_address: Text,
      table_names: Iterable[Text] = (DEFAULT_TABLE,),
  ):
      """Initializes the class.
  
      Args:
        server_address: The address of the Reverb server.
        table_names: Table names. By default, it is assumed that only a single
          table is used with the name `variables`. Each table assumed to exist in
          the server, has signature defined, and set the capacity to 1.
  
      Raises:
        KeyError: If a table is not defined in the server, but listed in tables.
        TypeError: If no signature is provided for a table.
        ValueError: If the `max_size` of the table corresponding to table_name(s)
          on the server is not equal to 1.
      """
      server_info = reverb.Client(server_address).server_info()
      self._dtypes = {}
      for table in table_names:
          table_info = server_info[table]
          if table_info.max_size != 1:
              raise ValueError(
                  "The max_size of the table {} is {} which different from the "
                  "expected capacity 1.".format(
                      table, table_info.max_size
                  )
              )
          if not table_info.signature:
              raise TypeError(
                  "Signature is not defined for table {}.".format(table)
              )
          self._dtypes[table] = tf.nest.map_structure(
              lambda spec: spec.dtype, table_info.signature
          )
      self._tf_client = reverb.TFClient(server_address)
  
file_path: agents/tf_agents/experimental/distributed/reverb_variable_container.py
imports: from typing import Iterable, Text
  import tensorflow
  from tf_agents.typing import types
  from tf_agents.utils import common
  from tf_agents.utils import lazy_loader
  from tf_agents.utils import nest_utils
label_desc: Use image node_id 1 to create a new ReverbVariableContainer object from inherited base classes: object with example: obj = ReverbVariableContainer(server_address, table_names)