code: def get_interface_groups(include_plugins=False):
      """Return a list of command groups.
  
      Returns
      -------
      A list of tuples with the form (GROUP_NAME, GROUP_DESCRIPTION, COMMANDS).
      """
      if include_plugins:
          warnings.warn(
              "Plugins are no longer supported.", DeprecationWarning
          )
  
      from .. import interface as _interfaces
  
      grps = []
      # auto detect all available interfaces and generate a function-based
      # API from them
      for _item in _interfaces.__dict__:
          if not _item.startswith("_group_"):
              continue
          grp_name = _item[7:]
          grp = getattr(_interfaces, _item)
          grps.append((grp_name,) + grp)
      return grps
  
imports: import inspect
  import logging
  import os
  import re
  import textwrap
  import warnings
  from abc import ABC, abstractmethod
  from functools import wraps
  from importlib import import_module
  from typing import Callable, Dict, Generator, TypeVar, TYPE_CHECKING
  import datalad
  from datalad import cfg
  from datalad.core.local.resulthooks import get_jsonhooks_from_config, match_jsonhook2result, run_jsonhook
  from datalad.distribution.dataset import Dataset, resolve_path
  from datalad.interface.common_opts import eval_params
  from datalad.interface.results import known_result_xfms
  from datalad.interface.utils import get_result_filter, keep_result, render_action_summary, xfm_result, _process_results
  from datalad.support.exceptions import CapturedException, IncompleteResultsError
  from datalad.utils import get_wrapped_class
label_desc: Use image node_id 2 for calling a global function with example usage: get_interface_groups(include_plugins) and returns: grps