code: def command_tuples():
      root: Tuple[str, ...] = ()
      commands = [root]
  
      def recurse_parser(
          parser: ArgumentParser, parents: Tuple[str, ...] = root
      ) -> None:
          for positional in parser._get_positional_actions():
              if positional.help != SUPPRESS and isinstance(
                  positional.choices, dict
              ):
                  public_cmds = shtab.get_public_subcommands(positional)
                  for subcmd, subparser in positional.choices.items():
                      cmd = (*parents, subcmd)
                      if subcmd in public_cmds:
                          commands.append(cmd)
                      recurse_parser(subparser, cmd)
  
      main_parser = get_main_parser()
      recurse_parser(main_parser)
  
      # the no. of commands will usually go up,
      # but if we ever remove commands and drop below, adjust the magic number accordingly
      assert len(commands) >= 112
      return sorted(commands)
  
file_path: dvc/tests/unit/command/test_help.py
imports: import logging
  import re
  from argparse import SUPPRESS, ArgumentParser
  from itertools import takewhile
  from typing import Tuple
  import pytest
  import shtab
  from dvc.cli import main
  from dvc.cli.parser import get_main_parser
label_desc: Use image node_id 1 for calling a global function with example usage: command_tuples() and returns: sorted