code: def _reset_hard(repo, _, target, opts=None):
      if repo.dirty:
          yield {
              "action": "update.reset",
              "status": "error",
              "message": "Refusing to reset dirty working tree",
          }
      else:
          yield _try_command(
              {
                  "action": "update.reset",
                  "message": ("Reset to %s", target),
              },
              repo.call_git,
              ["reset", "--hard", target],
          )
  
imports: import logging
  from os.path import lexists
  import itertools
  from datalad.interface.base import Interface
  from datalad.interface.base import build_doc, eval_results
  from datalad.interface.results import get_status_dict, YieldDatasets
  from datalad.support.constraints import EnsureBool, EnsureChoice, EnsureStr, EnsureNone
  from datalad.support.annexrepo import AnnexRepo
  from datalad.support.exceptions import CapturedException, CommandError
  from datalad.support.param import Parameter
  from datalad.interface.common_opts import recursion_flag, recursion_limit
  from datalad.distribution.dataset import require_dataset
  from .dataset import EnsureDataset, datasetmethod
label_desc: Use image node_id 9 for calling a global function with example usage: _reset_hard(repo, _, target, opts) without return types