class_docstr: An immutable register + stack backed by batched TF `Tensor`s.
  
  All state-changing methods return new Variable instances.
  
  The register is used to make reads from and writes to the top of the stack
  cheaper than they would be otherwise, i.e. save slice updates.
  
  As a namedtuple, the variable can be passed through the TF nest library as
  part of the structure handed to/returned from the body of a while_loop, or
  even a Session.run call.
docstr: Pushes each indicated batch member, making room for a new write.
  
  The new top value is the same as the old top value (this is a
  "duplicating push").
  
  Args:
    mask: Boolean array of shape `[batch_size]`. The values at `True`
      indices of `mask` are updated; the others remain.
    name: Optional name for this op.
  
  Returns:
    var: Updated variable. Does not mutate `self`.
docstr_tok: ["Pushes","each","indicated","batch","member",",","making","room","for","a","new","write",".","The","new","top","value","is","the","same","as","the","old","top","value","(","this","is","a","''","duplicating","push","''",")",".","Args",":","mask",":","Boolean","array","of","shape","`","[","batch_size","]","`",".","The","values","at","`","True","`","indices","of","`","mask","`","are","updated",";","the","others","remain",".","name",":","Optional","name","for","this","op",".","Returns",":","var",":","Updated","variable",".","Does","not","mutate","`","self","`","."]
code: def push(self, mask, name=None):
      """Pushes each indicated batch member, making room for a new write.
  
      The new top value is the same as the old top value (this is a
      "duplicating push").
  
      Args:
        mask: Boolean array of shape `[batch_size]`. The values at `True`
          indices of `mask` are updated; the others remain.
        name: Optional name for this op.
  
      Returns:
        var: Updated variable. Does not mutate `self`.
      """
      with tf.name_scope(name or "{}.push".format(self._name())):
          new_stack, asserted_value = self.stack.push(
              self.current, mask
          )
          return type(self)(asserted_value, new_stack)
  
imports: import collections
  import contextlib
  import six
  import tensorflow.compat.v1
  import tensorflow.compat.v2
  from tensorflow_probability.python.experimental.auto_batching import instructions
  from tensorflow_probability.python.experimental.auto_batching import xla
  from tensorflow_probability.python.internal import dtype_util
  from tensorflow.python.ops import control_flow_util
label_desc: Use image node_id 4 for calling the FullTensorFlowVariable obj's underlying member method code with example usage: obj.push(mask, name) and returns: type