code: def assert_flat_tuple_of_tensors(
      elts: Any, api: str, argname: str
  ) -> None:
      if not isinstance(elts, tuple):
          raise RuntimeError(
              f"{api}: Expected {argname} to be a tuple of Tensors, got {type(elts)}"
          )
      for elt in elts:
          if isinstance(elt, torch.Tensor):
              continue
          raise RuntimeError(
              f"{api}: Expected {argname} to be a tuple of Tensors, got "
              f"a tuple with an element of type {type(elt)}"
          )
      if len(elts) == 0:
          raise RuntimeError(
              f"{api}: Expected {argname} to be a non-empty tuple of Tensors."
          )
  
imports: from typing import Callable, Union, Tuple, List, Any, Optional
  import torch
  from functools import partial, wraps
  import contextlib
  from torch.utils._pytree import tree_flatten, tree_unflatten, tree_map, tree_map_only, tree_map_, treespec_pprint
  from torch.utils import _pytree
  from torch.fx.experimental import const_fold
  from torch.fx.experimental.proxy_tensor import make_fx
  import torch.autograd.forward_ad
  from torch._subclasses.functional_tensor import FunctionalTensor
  from .vmap import doesnt_support_saved_tensors_hooks, get_chunk_sizes
  from .apis import vmap
  from torch._C._functorch import _wrap_for_grad, _unwrap_for_grad, _grad_increment_nesting, _grad_decrement_nesting, _jvp_increment_nesting, _jvp_decrement_nesting, _wrap_functional_tensor, _unwrap_functional_tensor, _func_decrement_nesting, _func_increment_nesting, _assert_wrapped_functional, _propagate_functional_input_mutation, set_inplace_requires_grad_allowed, get_inplace_requires_grad_allowed
  from torch._functorch.utils import exposed_in, argnums_t
label_desc: Use image node_id 24 for calling a global function with example usage: assert_flat_tuple_of_tensors(elts, api, argname) without return types