code: def _find_parser(parser, cmd_cls):
      defaults = parser._defaults
      if not cmd_cls or cmd_cls == defaults.get("func"):
          parser.print_help()
          raise DvcParserError
  
      actions = parser._actions
      for action in actions:
          if not isinstance(action.choices, dict):
              # NOTE: we are only interested in subparsers
              continue
          for subparser in action.choices.values():
              _find_parser(subparser, cmd_cls)
  
file_path: dvc/dvc/cli/parser.py
imports: import argparse
  import os
  from functools import lru_cache
  from dvc import __version__
  from dvc.commands import add, artifacts, cache, check_ignore, checkout, commit, completion, config, daemon, dag, data, data_sync, destroy, diff, du, experiments, freeze, gc, get, get_url, git_hook, imp, imp_db, imp_url, init, install, ls, ls_url, metrics, move, params, plots, queue, remote, remove, repro, root, stage, studio, unprotect, update, version
  from dvc.log import logger
  from .None import DvcParserError, formatter
label_desc: Use image node_id 1 for calling a global function with example usage: _find_parser(parser, cmd_cls) without return types