Coverage for langbrainscore/benchmarks/__init__.py: 60%

10 statements  

« 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 

4 

5from langbrainscore.benchmarks.pereira2018 import pereira2018_mean_froi 

6 

7 

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} 

14 

15 

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. 

24 

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 

28 

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 )