def test_include_tasks_exclude_task_none(self) -> None: # We treat falsy values as unspecified, so the full list of task_names should be returned. tasks = resolve_tasks() assert tasks == TASKS tasks = resolve_tasks(include_tasks="") assert tasks == TASKS tasks = resolve_tasks(include_tasks=[]) assert tasks == TASKS
def prepare( filepath: Path = typer.Argument( ..., writable=True, help="Filepath to save prepared benchmark file."), include_tasks: List[str] = typer.Option( None, help= "A task name (or list of task names) to include in the prepared data." ), exclude_tasks: List[str] = typer.Option( None, help= "A task name (or list of task names) to exclude in the prepared data." ), ): tasks = resolve_tasks(include_tasks, exclude_tasks) benchmark = load_benchmark() prepared_benchmark = {task: benchmark[task] for task in tasks} task_specific_genes = list( set([ gene for partition in prepared_benchmark.values() for genes in partition.values() for gene in genes.keys() ])) # Find the subset of genes specific to the `tasks` specified prepared_benchmark["inputs"] = { gene: benchmark["inputs"][gene] for gene in task_specific_genes } prepared_benchmark = orjson.dumps(prepared_benchmark, option=orjson.OPT_INDENT_2) filepath.write_bytes(prepared_benchmark)
def __init__( self, features: pd.DataFrame, include_tasks: Optional[Union[str, List[str]]] = None, exclude_tasks: Optional[Union[str, List[str]]] = None, ) -> None: self._features = features self._tasks = resolve_tasks(include_tasks, exclude_tasks) self.results = {}
def test_value_error_include_and_exclude(self) -> None: with pytest.raises(ValueError): _ = resolve_tasks(include_tasks=["arbitrary"], exclude_tasks=["arbitrary"])
def test_exclude_tasks(self) -> None: task_name = list(TASKS)[0] expected = TASKS - {task_name} actual = resolve_tasks(exclude_tasks=task_name) assert expected == actual
def test_value_error_invalid_task_names(self, tasks: List[str]) -> None: with pytest.raises(ValueError): _ = resolve_tasks(include_tasks=tasks) with pytest.raises(ValueError): _ = resolve_tasks(exclude_tasks=tasks)