예제 #1
0
 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
예제 #2
0
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)
예제 #3
0
파일: engine.py 프로젝트: BaderLab/GeneEval
 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 = {}
예제 #4
0
 def test_value_error_include_and_exclude(self) -> None:
     with pytest.raises(ValueError):
         _ = resolve_tasks(include_tasks=["arbitrary"],
                           exclude_tasks=["arbitrary"])
예제 #5
0
    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
예제 #6
0
 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)