code: def retrieve(cache_key, pooch_kwargs=None):
      """Download and cache the file associated with the provided ``cache_key``.
  
      Cache location is controlled by the config ``data_dir`` key. See
      :ref:`data_dir_setting` for more information.
  
      Args:
          cache_key (str): Cache key returned by
              :func:`~satpy.aux_download.register_file`.
          pooch_kwargs (dict or None): Extra keyword arguments to pass to
              :meth:`pooch.Pooch.fetch`.
  
      Returns:
          Local path of the cached file.
  
  
      """
      pooch_kwargs = pooch_kwargs or {}
  
      path = satpy.config.get("data_dir")
      if not satpy.config.get("download_aux"):
          return _retrieve_offline(path, cache_key)
      if not _should_download(cache_key):
          raise RuntimeError(
              "Auxiliary data download is not allowed during "
              "tests. Mock the appropriate components of your "
              "tests to not need the 'retrieve' function."
          )
      # reuse data directory as the default URL where files can be downloaded from
      pooch_obj = pooch.create(
          path, path, registry=_FILE_REGISTRY, urls=_FILE_URLS
      )
      return pooch_obj.fetch(cache_key, **pooch_kwargs)
  
imports: import logging
  import os
  import pooch
  import satpy
label_desc: Use image node_id 5 for calling a global function with example usage: retrieve(cache_key, pooch_kwargs) and returns: pooch_obj, _retrieve_offline