code: def list_datasets():
      """Get a string representation of all available datasets with descriptions."""
      lines = []
      for name, resource in itertools.chain(
          LOCAL_DATASETS.items(), REMOTE_DATASETS.items()
      ):
          if isinstance(resource, LocalFileMetadata):
              location = f"local: {resource.filename}"
          elif isinstance(resource, RemoteFileMetadata):
              location = f"remote: {resource.url}"
          else:
              location = "unknown"
          lines.append(
              f"{name}\n{'=' * len(name)}\n{resource.description}\n\n{location}"
          )
  
      return f"\n\n{10 * '-'}\n\n".join(lines)
  
file_path: arviz/arviz/data/datasets.py
imports: import hashlib
  import itertools
  import json
  import os
  import shutil
  from collections import namedtuple
  from urllib.request import urlretrieve
  from ..rcparams import rcParams
  from .io_netcdf import from_netcdf
label_desc: Use image node_id 5 for calling a global function with example usage: list_datasets() and returns: str, unknown, str