class_docstr: A wrapper for a function owned by an EagerPyFunc.
class_docstr_tok: ["A","wrapper","for","a","function","owned","by","an","EagerPyFunc","."]
docstr: Calls `self._func` in eager mode, recording the tape if needed.
code: def __call__(self, device, token, args):
      """Calls `self._func` in eager mode, recording the tape if needed."""
      use_tape_cache = (
          self._support_graph_mode_gradient
          or record.could_possibly_record()
      )
  
      if use_tape_cache:
          with backprop.GradientTape() as tape:
              for tensor in args:
                  for t in nest.flatten(tensor):
                      if backprop_util.IsTrainable(t):
                          tape.watch(t)
              outputs = self._call(device, args)
          tape_cache[compat.as_bytes(token)] = (tape, args, outputs)
      else:
          outputs = self._call(device, args)
  
      return outputs
  
imports: import functools
  import threading
  import traceback
  import weakref
  import numpy
  from tensorflow.python.autograph.impl import api
  from tensorflow.python.eager import backprop
  from tensorflow.python.eager import backprop_util
  from tensorflow.python.eager import context
  from tensorflow.python.eager import record
  from tensorflow.python.framework import composite_tensor
  from tensorflow.python.framework import constant_op
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework import func_graph
  from tensorflow.python.framework import function
  from tensorflow.python.framework import ops
  from tensorflow.python.framework import tensor_spec
  from tensorflow.python.framework import type_spec
  from tensorflow.python.lib.core import _pywrap_py_func
  from tensorflow.python.ops import autograph_ops
  from tensorflow.python.ops import gen_script_ops
  from tensorflow.python.ops import resource_variable_ops
  from tensorflow.python.util import compat
  from tensorflow.python.util import deprecation
  from tensorflow.python.util import dispatch
  from tensorflow.python.util import nest
  from tensorflow.python.util import tf_inspect
  from tensorflow.python.util import variable_utils
  from tensorflow.python.util.tf_export import tf_export
label_desc: Use image node_id 4 for calling the EagerFunc obj's underlying member method code with example usage: obj.__call__(device, token, args) and returns: outputs