code: def _manifest_check_download(manifest_path, destination, url, hash_):
      import pooch
  
      with open(manifest_path) as fid:
          names = [name.strip() for name in fid.readlines()]
      manifest_path = op.basename(manifest_path)
      need = list()
      for name in names:
          if not op.isfile(op.join(destination, name)):
              need.append(name)
      logger.info(
          "%d file%s missing from %s in %s"
          % (len(need), _pl(need), manifest_path, destination)
      )
      if len(need) > 0:
          downloader = pooch.HTTPDownloader(**_downloader_params())
          with tempfile.TemporaryDirectory() as path:
              logger.info("Downloading missing files remotely")
  
              fname_path = op.join(path, "temp.zip")
              pooch.retrieve(
                  url=url,
                  known_hash=f"md5:{hash_}",
                  path=path,
                  downloader=downloader,
                  fname=op.basename(fname_path),
              )
  
              logger.info(f"Extracting missing file{_pl(need)}")
              with zipfile.ZipFile(fname_path, "r") as ff:
                  members = set(
                      f for f in ff.namelist() if not f.endswith("/")
                  )
                  missing = sorted(
                      members.symmetric_difference(set(names))
                  )
                  if len(missing):
                      raise RuntimeError(
                          "Zip file did not have correct names:\n{'\n'.join(missing)}"
                      )
                  for name in need:
                      ff.extract(name, path=destination)
          logger.info(
              f"Successfully extracted {len(need)} file{_pl(need)}"
          )
  
imports: import importlib
  import inspect
  import logging
  import os
  import os.path
  import sys
  import tempfile
  import time
  import zipfile
  from collections import OrderedDict
  from pathlib import Path
  import numpy
  from ..label import Label, read_labels_from_annot, write_labels_to_annot
  from ..utils import _pl, _safe_input, _validate_type, get_config, get_subjects_dir, logger, set_config, verbose
  from ..utils.docs import _docformat, docdict
  from .config import MNE_DATASETS, _hcp_mmp_license_text
label_desc: Use image node_id 11 for calling a global function with example usage: _manifest_check_download(manifest_path, destination, url, hash_) without return types