code: def _subclasscheck_tuple(cls, subcls):
      """A basic ``__subclasscheck__`` method for :class:`~typing.Tuple`."""
  
      if not issubclass(get_origin(subcls), get_origin(cls)):
          return False
  
      cls_args, subcls_args = get_args(cls), get_args(subcls)
  
      if not cls_args:  # cls is base Tuple
          return True
  
      if not subcls_args:
          return cls_args[0] is typing.Any
  
      if cls_args[-1] is Ellipsis:  # cls variadic
          if subcls_args[-1] is Ellipsis:  # both variadic
              return deep_issubclass(subcls_args[0], cls_args[0])
          return all(
              deep_issubclass(a, cls_args[0]) for a in subcls_args
          )
  
      if subcls_args[-1] is Ellipsis:  # only subcls variadic
          # issubclass(Tuple[A, ...], Tuple[X, Y]) == False
          return False
  
      # neither variadic
      return len(cls_args) == len(subcls_args) and all(
          deep_issubclass(a, b) for a, b in zip(subcls_args, cls_args)
      )
  
imports: import functools
  import sys
  import typing
  import weakref
  import typing_extensions
  from multipledispatch.variadic import Variadic
  from multipledispatch.variadic import isvariadic
label_desc: Use image node_id 8 for calling a global function with example usage: _subclasscheck_tuple(cls, subcls) and returns: unknown, False, True, unknown, all, False, deep_issubclass