code: def _drop_files(ds, repo, paths, force=False, jobs=None):
      """Helper to drop content in datasets.
  
      Parameters
      ----------
      repo : AnnexRepo
      paths : list
        for which files to drop content
      check : bool
        whether to instruct annex to perform minimum copy availability
        checks
  
      Yields
      ------
      dict
      """
      assert not (
          repo.dot_git / "annex"
      ).is_symlink(), "Dropping from a symlinked annex is unsupported to prevent data-loss"
      cmd = ["drop"]
      if force:
          cmd.append("--force")
      if jobs:
          cmd.extend(["--jobs", str(jobs)])
  
      respath_by_status = {}
      try:
          yield from (
              _postproc_annexdrop_result(res, respath_by_status, ds)
              for res in repo._call_annex_records_items_(
                  cmd, files=paths
              )
          )
      except CommandError as e:
          # pick up the results captured so far and yield them
          # the error will be amongst them
          yield from (
              _postproc_annexdrop_result(res, respath_by_status, ds)
              for res in e.kwargs.get("stdout_json", [])
          )
      # report on things requested that annex was silent about
      for r in results_from_annex_noinfo(
          ds,
          paths,
          respath_by_status,
          dir_fail_msg="could not drop some content in %s %s",
          noinfo_dir_msg="nothing to drop from %s",
          noinfo_file_msg="no annex'ed content",
      ):
          r["action"] = "drop"
          yield r
  
imports: import logging
  from itertools import chain
  import warnings
  from datalad.core.local.status import get_paths_by_ds
  from datalad.distribution.dataset import Dataset, EnsureDataset, datasetmethod, require_dataset
  from datalad.interface.base import Interface, build_doc, eval_results
  from datalad.interface.common_opts import jobs_opt, recursion_flag, recursion_limit
  from datalad.interface.results import annexjson2result, results_from_annex_noinfo, success_status_map
  from datalad.runner.exception import CommandError
  from datalad.support.annexrepo import AnnexRepo
  from datalad.support.constraints import EnsureChoice, EnsureNone, EnsureStr
  from datalad.support.exceptions import CapturedException
  from datalad.support.param import Parameter
  from datalad.utils import ensure_list, rmtree
label_desc: Use image node_id 9 for calling a global function with example usage: _drop_files(ds, repo, paths, force, jobs) without return types