code: def inputs_to_ivy_arrays(fn: Callable) -> Callable:
      @functools.wraps(fn)
      def _inputs_to_ivy_arrays_tf(*args, **kwargs):
          """Convert all `TensorFlow.Tensor` instances in both the positional and
          keyword arguments into `ivy.Array` instances, and then call the
          function with the updated arguments.
  
          Parameters
          ----------
          args
              The arguments to be passed to the function.
  
          kwargs
              The keyword arguments to be passed to the function.
  
          Returns
          -------
              The return of the function, with ivy arrays passed in the arguments.
          """
          has_out = False
          out = None
          if "out" in kwargs:
              out = kwargs["out"]
              del kwargs["out"]
              has_out = True
  
          # convert all arrays in the inputs to ivy.Array instances
          ivy_args = ivy.nested_map(
              _to_ivy_array, args, include_derived=True, shallow=False
          )
          ivy_kwargs = ivy.nested_map(
              _to_ivy_array, kwargs, include_derived=True, shallow=False
          )
          if has_out:
              ivy_kwargs["out"] = out
          return fn(*ivy_args, **ivy_kwargs)
  
      _inputs_to_ivy_arrays_tf.inputs_to_ivy_arrays_tf = True
      return _inputs_to_ivy_arrays_tf
  
file_path: ivy/ivy/functional/frontends/tensorflow/func_wrapper.py
imports: import inspect
  from typing import Callable, Dict, Optional
  import functools
  import ivy
  import ivy.functional.frontends.tensorflow
  import ivy.functional.frontends.numpy
label_desc: Use image node_id 7 for calling a global function with example usage: inputs_to_ivy_arrays(fn) and returns: _inputs_to_ivy_arrays_tf, fn