code: def _fetch_main():
      logging.basicConfig(stream=sys.stderr, level=logging.INFO)
      parser = argparse.ArgumentParser()
      parser.add_argument(
          "name", help="the name of the dataset to fetch"
      )
      parser.add_argument(
          "--data-dir",
          metavar="DIR",
          help="save extracted data to DIR",
          default="data",
      )
      args = parser.parse_args()
  
      name = args.name
      _log.info("fetching data set %s", name)
      dir = Path(args.data_dir)
      _log.info("extracting data to %s", dir)
      if name.startswith("ml-"):
          fetch_ml(name, dir)
      else:
          _log.error("unknown data set %s", name)
          raise ValueError("invalid data set")
  
file_path: lkpy/lenskit/datasets/fetch.py
imports: import sys
  from zipfile import ZipFile
  from urllib.request import urlopen
  import argparse
  from pathlib import Path
  import logging
label_desc: Use image node_id 2 for calling a global function with example usage: _fetch_main() without return types