code: def download_path(path=None):
      """Return a path to download data. If `path=None`, then it yields a temporal path that is eventually deleted,
      otherwise the real path of the input.
  
      Args:
          path (str): Path to download data.
  
      Returns:
          str: Real path where the data is stored.
  
      Examples:
          >>> with download_path() as path:
          >>> ... maybe_download(url="http://example.com/file.zip", work_directory=path)
  
      """
      if path is None:
          tmp_dir = TemporaryDirectory()
          try:
              yield tmp_dir.name
          finally:
              tmp_dir.cleanup()
      else:
          path = os.path.realpath(path)
          yield path
  
file_path: recommenders/recommenders/datasets/download_utils.py
imports: import os
  import logging
  import requests
  import math
  import zipfile
  from contextlib import contextmanager
  from tempfile import TemporaryDirectory
  from tqdm import tqdm
  from retrying import retry
label_desc: Use image node_id 2 for calling a global function with example usage: download_path(path) without return types