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: Pushes values into a Reverb table.
  
  Args:
    values: Nested structure of tensors.
    table: The name of the table.
  
  Raises:
    KeyError: If the table name is not provided during construction time.
    tf.errors.InvalidArgumentError: If the nested structure of the variable
      does not match the signature of the table. This includes structural
      differences (excluding the type differences of sequences in nest), and
      type differences.
docstr_tok: ["Pushes","values","into","a","Reverb","table",".","Args",":","values",":","Nested","structure","of","tensors",".","table",":","The","name","of","the","table",".","Raises",":","KeyError",":","If","the","table","name","is","not","provided","during","construction","time",".","tf.errors.InvalidArgumentError",":","If","the","nested","structure","of","the","variable","does","not","match","the","signature","of","the","table",".","This","includes","structural","differences","(","excluding","the","type","differences","of","sequences","in","nest",")",",","and","type","differences","."]
code: def push(
      self, values: types.NestedTensor, table: Text = DEFAULT_TABLE
  ) -> None:
      """Pushes values into a Reverb table.
  
      Args:
        values: Nested structure of tensors.
        table: The name of the table.
  
      Raises:
        KeyError: If the table name is not provided during construction time.
        tf.errors.InvalidArgumentError: If the nested structure of the variable
          does not match the signature of the table. This includes structural
          differences (excluding the type differences of sequences in nest), and
          type differences.
      """
      if table not in self._dtypes:
          raise KeyError(
              "Could not find the table {}. Available tables: {}".format(
                  table, self._dtypes.keys()
              )
          )
  
      # Sequence type check is turned off in Reverb client allowing sequence type
      # differences in the signature. This is required to be able work with
      # policies loaded from file which often change tuple to e.g. `ListWrapper`.
      self._tf_client.insert(
          data=tf.nest.flatten(values),
          tables=tf.constant([table]),
          priorities=tf.constant([1.0], dtype=tf.float64),
      )
  
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 2 for calling the ReverbVariableContainer obj's underlying member method code with example usage: obj.push(values, table) without return types