code: def download_source_gafs(group_metadata, target_dir, exclusions=[], base_download_url=None):
      
      gaf_urls = [ (data, data["source"]) for data in group_metadata["datasets"] if data["type"] == "gaf" and data["dataset"] not in exclusions ]
      # List of dataset metadata to gaf download url
  
      click.echo("Found {}".format(", ".join( [ kv[0]["dataset"] for kv in gaf_urls ] )))
      downloaded_paths = []
      for dataset_metadata, gaf_url in gaf_urls:
          dataset = dataset_metadata["dataset"]
          # Local target download path setup - path and then directories
          path = download_a_dataset_source(group_metadata["id"], dataset_metadata, target_dir, gaf_url, base_download_url=base_download_url)
  
          if dataset_metadata["compression"] == "gzip":
              # Unzip any downloaded file that has gzip, strip of the gzip extension
              unzipped = os.path.splitext(path)[0]
              unzip(path, unzipped)
              path = unzipped
          else:
              # otherwise file is coming in uncompressed. But we want to make sure
              # to zip up the original source also
              zipup(path)
  
          downloaded_paths.append((dataset_metadata, path))
  
      return downloaded_paths
docs: This looks at a group metadata dictionary and downloads each GAF source that is not in the exclusions list.
      For each downloaded file, keep track of the path of the file. If the file is zipped, it will unzip it here.
      This function returns a list of tuples of the dataset dictionary mapped to the downloaded source path.