code: def _download_labels_if_necessary(dataset_dir, scratch_dir):
      if _is_missing_labels(dataset_dir):
          zip_path = os.path.join(scratch_dir, "lists.zip")
          if not os.path.exists(zip_path):
              logger.info("Downloading labels to '%s'", zip_path)
              etaw.download_google_drive_file(
                  _LISTS_DOWNLOAD_LINK, path=zip_path
              )
  
          logger.info("Unpacking labels...")
          etau.extract_zip(
              zip_path, outdir=scratch_dir, delete_zip=False
          )
          _organize_labels(scratch_dir, dataset_dir)
  
imports: import logging
  import os
  from collections import defaultdict
  import eta.core.utils
  import eta.core.web
  import pandas
  import fiftyone
  import fiftyone.core.utils
  import fiftyone.utils.data
  from fiftyone.core.expressions import ViewField
  from fiftyone.core.expressions import VALUE
label_desc: Use image node_id 18 for calling a global function with example usage: _download_labels_if_necessary(dataset_dir, scratch_dir) without return types