parameters: (self, fn, signature, name=None)
return_statement: return self._wrap_function(fn, signature=signature, name=name)
docstring: Wraps a TF 1.X function and returns an eager-compatible function.
  
      All functions wrapped in the same `WrappedGraph` will have access to the
      same graph (`tf.compat.v1.get_default_graph` to get the graph object
      within a function, or `WrappedGraph.graph` to get the graph outside a
      function). Variables created within the function will be added to the
      `variables` list.
  
      Function inputs: All inputs to the function must be tensors (nested ok),
      with their shapes and dtypes defined in the `signature` argument.
  
      Function outputs:
  
        * The 1.X function may return tensors, variables, and ops. The wrapped
          eager-compatible function will always return tensors in the same nested
          structure.
        * Variables are replaced with a tensor containing the latest read values.
        * Returned ops are executed, and replaced with None.
        * The order of op execution and variable reads in the return is
          nondeterministic. For example:
  
          ```
          def update_var(x):
            v = tf.Variable(0)
            op = tf.compat.v1.assign(v, x).op
            return v, op
  
          g = WrappedGraph()
          fn = g.wrap_function(update_var)
          read_value, _ = fn(tf.constant(3))
          print(read_value.numpy())  # could be 0 or 3
          print(g.variables[0].numpy()) # always 3
          ```
  
      To ensure that ops in the function are executed (e.g. ops added to the
      `tf.GraphKeys.UPDATE_OPS` collection), include them in the function returns.
  
      Args:
        fn: a 1.X tensorflow function.
        signature: a possibly nested sequence of `TensorSpecs` specifying the
          shapes and dtypes of the arguments.
        name: an optional string name for the function. The function will be saved
          with key `name` in the `functions` dictionary.
  
      Returns:
        An eager-compatible function.
docstring_summary: Wraps a TF 1.X function and returns an eager-compatible function.
docstring_tokens: Wraps a TF 1 . X function and returns an eager - compatible function .
function: def wrap_function(self, fn, signature, name=None):
      """Wraps a TF 1.X function and returns an eager-compatible function.
  
      All functions wrapped in the same `WrappedGraph` will have access to the
      same graph (`tf.compat.v1.get_default_graph` to get the graph object
      within a function, or `WrappedGraph.graph` to get the graph outside a
      function). Variables created within the function will be added to the
      `variables` list.
  
      Function inputs: All inputs to the function must be tensors (nested ok),
      with their shapes and dtypes defined in the `signature` argument.
  
      Function outputs:
  
        * The 1.X function may return tensors, variables, and ops. The wrapped
          eager-compatible function will always return tensors in the same nested
          structure.
        * Variables are replaced with a tensor containing the latest read values.
        * Returned ops are executed, and replaced with None.
        * The order of op execution and variable reads in the return is
          nondeterministic. For example:
  
          ```
          def update_var(x):
            v = tf.Variable(0)
            op = tf.compat.v1.assign(v, x).op
            return v, op
  
          g = WrappedGraph()
          fn = g.wrap_function(update_var)
          read_value, _ = fn(tf.constant(3))
          print(read_value.numpy())  # could be 0 or 3
          print(g.variables[0].numpy()) # always 3
          ```
  
      To ensure that ops in the function are executed (e.g. ops added to the
      `tf.GraphKeys.UPDATE_OPS` collection), include them in the function returns.
  
      Args:
        fn: a 1.X tensorflow function.
        signature: a possibly nested sequence of `TensorSpecs` specifying the
          shapes and dtypes of the arguments.
        name: an optional string name for the function. The function will be saved
          with key `name` in the `functions` dictionary.
  
      Returns:
        An eager-compatible function.
      """
      return self._wrap_function(fn, signature=signature, name=name)
function_tokens: def wrap_function ( self , fn , signature , name = None ) : return self . _wrap_function ( fn , signature = signature , name = name )