class_docstr: A Python callable for functions in the TF Runtime.
  
  Provides core functionality for tf.function including:
    - automatic lifecycle management of runtime functions
    - structured inputs (including captures) and structured outputs
    - calls from both eager and graph mode
    - dependency tracking of children functions
    - runtime error interpolation to identify user code stack traces
    - control dependencies (including automatic)
class_docstr_tok: ["A","Python","callable","for","functions","in","the","TF","Runtime",".","Provides","core","functionality","for","tf.function","including",":","-","automatic","lifecycle","management","of","runtime","functions","-","structured","inputs","(","including","captures",")","and","structured","outputs","-","calls","from","both","eager","and","graph","mode","-","dependency","tracking","of","children","functions","-","runtime","error","interpolation","to","identify","user","code","stack","traces","-","control","dependencies","(","including","automatic",")"]
docstr: Calls with flat tensor inputs and returns flat tensor outputs.
  
  Args:
    *args: arguments to call this function with.
  
  Returns:
    The outputs of the function call.
  
  Raises:
    ValueError: if the number of arguments is incorrect.
    FunctionAlreadyGarbageCollectedError: if the function is no longer
      available to be called because it has been garbage collected.
docstr_tok: ["Calls","with","flat","tensor","inputs","and","returns","flat","tensor","outputs",".","Args",":","*","args",":","arguments","to","call","this","function","with",".","Returns",":","The","outputs","of","the","function","call",".","Raises",":","ValueError",":","if","the","number","of","arguments","is","incorrect",".","FunctionAlreadyGarbageCollectedError",":","if","the","function","is","no","longer","available","to","be","called","because","it","has","been","garbage","collected","."]
code: def call_flat(self, *args: core.Tensor) -> Sequence[core.Tensor]:
      """Calls with flat tensor inputs and returns flat tensor outputs.
  
      Args:
        *args: arguments to call this function with.
  
      Returns:
        The outputs of the function call.
  
      Raises:
        ValueError: if the number of arguments is incorrect.
        FunctionAlreadyGarbageCollectedError: if the function is no longer
          available to be called because it has been garbage collected.
      """
      expected_len = len(self.cached_definition.signature.input_arg)
      if len(args) != expected_len:
          raise ValueError(
              f"Signature specifies {expected_len} arguments, got: {len(args)}."
              f" Expected inputs: {self.cached_definition.signature.input_arg}."
              f" Received inputs: {args}."
              f" Function Type: {self.function_type!r}"
          )
  
      with InterpolateRuntimeError(self):
          with ops.control_dependencies(
              self._call_options.control_captures
          ):
              # The caller must use record_operation to record this operation in the
              # eager case, so we enforce the same requirement for the non-eager
              # case by explicitly pausing recording. We don't have a gradient
              # registered for PartitionedCall, so recording this operation confuses
              # forwardprop code (GradientTape manages to ignore it).
              with record.stop_recording():
                  if self._bound_context.executing_eagerly():
                      outputs = self._bound_context.call_function(
                          self.name,
                          list(args),
                          len(self.function_type.flat_outputs),
                      )
                  else:
                      outputs = make_call_op_in_graph(
                          self,
                          list(args),
                          self._bound_context.function_call_options.as_attrs(),
                      )
  
      for i, output_type in enumerate(self.function_type.flat_outputs):
          handle_data = (
              output_type.dtype._handle_data
          )  # pylint: disable=protected-access
          if handle_data:
              handle_data_util.set_handle_data(
                  outputs[i], handle_data.shape_inference
              )
  
      # TODO(fmuham): Use FunctionType cast here for all cases.
      if not self._bound_context.executing_eagerly():
          for i, output_type in enumerate(
              self.function_type.flat_outputs
          ):
              outputs[i].set_shape(output_type.shape)
  
      return outputs
  
imports: import dataclasses
  import traceback
  import typing
  from typing import Any, Dict, List, Optional, Sequence, Union
  from tensorflow.core.framework import attr_value_pb2
  from tensorflow.core.framework import function_pb2
  from tensorflow.core.framework import graph_debug_info_pb2
  from tensorflow.core.function.polymorphism import function_type
  from tensorflow.python.client import pywrap_tf_session
  from tensorflow.python.eager import context
  from tensorflow.python.eager import record
  from tensorflow.python.eager.polymorphic_function import attributes
  from tensorflow.python.eager.polymorphic_function import function_type_utils
  from tensorflow.python.framework import auto_control_deps_utils
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework import error_interpolation
  from tensorflow.python.framework import errors
  from tensorflow.python.framework import func_graph
  from tensorflow.python.framework import function_def_to_graph
  from tensorflow.python.framework import ops
  from tensorflow.python.ops import handle_data_util
  from tensorflow.python.types import core
  from tensorflow.python.util import compat
  from tensorflow.python.util import function_utils
  from tensorflow.python.util import tf_stack
label_desc: Use image node_id 15 for calling the AtomicFunction obj's underlying member method code with example usage: obj.call_flat() and returns: outputs