Coverage for langbrainscore/benchmarks/__init__.py: 60%
10 statements
« prev ^ index » next coverage.py v6.4, created at 2022-06-07 21:22 +0000
« prev ^ index » next coverage.py v6.4, created at 2022-06-07 21:22 +0000
1import typing
2from pathlib import Path
3from functools import partial
5from langbrainscore.benchmarks.pereira2018 import pereira2018_mean_froi
8supported_benchmarks: typing.Mapping[str, typing.Callable] = {
9 "pereira2018_mean_froi_Lang": partial(pereira2018_mean_froi, network="Lang"),
10 "pereira2018_mean_froi_MD": partial(pereira2018_mean_froi, network="MD"),
11 "pereira2018_mean_froi": pereira2018_mean_froi,
12 "pereira2018_ind_voxels": NotImplemented,
13}
16def load_benchmark(
17 benchmark_name_or_path: typing.Union[str, Path],
18 *loading_args,
19 load_cache=True,
20 **loading_kwargs,
21) -> "langbrainscore.dataset.Dataset":
22 """A method that, given a name or a path to a benchmark, loads it and returns
23 a dataset object.
25 Args:
26 benchmark_name_or_path (typing.Union[str, Path]): name of a pre-packaged/officially supported benchmark
27 or a path to a benchmark with valid formatting
29 Returns:
30 langbrainscore.dataset.Dataset: a langbrainscore Dataset object
31 """
32 if benchmark_name_or_path in supported_benchmarks:
33 loader = supported_benchmarks[benchmark_name_or_path]
34 return loader(*loading_args, load_cache=load_cache, **loading_kwargs)
35 raise NotImplementedError(
36 f"Benchmark identified by `{benchmark_name_or_path}` currently not supported."
37 )