Source code for metrics_as_scores.cli.KnownDatasets

"""
This module contains the workflow for listing known datasets that are
available online and may be downloaded.
"""

from metrics_as_scores.cli.Workflow import Workflow
from metrics_as_scores.cli.helpers import get_known_datasets, format_file_size, KNOWN_DATASETS_FILE
from metrics_as_scores.distribution.distribution import KnownDataset


[docs]class KnownDatasetsWorkflow(Workflow): __doc__ = f''' This workflow access a curated online list of known datasets that were designed to work with Metrics As Scores. The list accessed is at: {KNOWN_DATASETS_FILE} If you would like to have your own dataset added to this list, open an issue in the Github repository of Metrics As Scores (also, check out the contributing guidelines). '''.strip()
[docs] def __init__(self) -> None: super().__init__() self.q.print('\nFetching available datasets ...\n') self.known_datasets: list[KnownDataset] = None
def _print_json_dataset(self, jsd: KnownDataset) -> None: self.q.print(' Name: ', style=self.style_mas, end='') self.q.print(jsd['name']) self.q.print(' ID: ', style=self.style_mas, end='') self.q.print(jsd['id']) self.q.print(' Author: ', style=self.style_mas, end='') self.q.print(jsd['author']) self.q.print(' Info URL: ', style=self.style_mas, end='') self.q.print(jsd['info_url']) self.q.print(' Download: ', style=self.style_mas, end='') self.q.print(jsd['download']) self.q.print(' Size: ', style=self.style_mas, end='') self.q.print(f'{format_file_size(jsd["size"])} ({format_file_size(jsd["size_extracted"])} extracted)')
[docs] def show_datasets(self) -> None: """Main entry point for this workflow.""" self._print_doc() self._wait_for(what_for='to fetch and list available datasets') self.known_datasets = get_known_datasets(use_local_file=False) for jsd in self.known_datasets: self.q.print('\nDataset:') self.q.print(10*'-') self._print_json_dataset(jsd=jsd) self.q.print(10*'-') self.q.print('\n')