Coverage for maze_dataset\dataset\configs.py: 95%

21 statements  

« prev     ^ index     » next       coverage.py v7.6.12, created at 2025-02-23 12:49 -0700

1"`MAZE_DATASET_CONFIGS` contains some default configs for tests and demos" 

2 

3import copy 

4from typing import Mapping 

5 

6from maze_dataset.dataset.maze_dataset import MazeDatasetConfig 

7from maze_dataset.generation.generators import LatticeMazeGenerators 

8 

9_MAZE_DATASET_CONFIGS_SRC: dict[str, MazeDatasetConfig] = { 

10 cfg.to_fname(): cfg 

11 for cfg in [ 

12 MazeDatasetConfig( 

13 name="test", 

14 grid_n=3, 

15 n_mazes=5, 

16 maze_ctor=LatticeMazeGenerators.gen_dfs, 

17 ), 

18 MazeDatasetConfig( 

19 name="demo_small", 

20 grid_n=3, 

21 n_mazes=100, 

22 maze_ctor=LatticeMazeGenerators.gen_dfs, 

23 ), 

24 MazeDatasetConfig( 

25 name="demo", 

26 grid_n=6, 

27 n_mazes=10000, 

28 maze_ctor=LatticeMazeGenerators.gen_dfs, 

29 ), 

30 ] 

31} 

32 

33 

34class _MazeDatsetConfigsWrapper(Mapping[str, MazeDatasetConfig]): 

35 def __init__(self, configs: dict[str, MazeDatasetConfig]): 

36 self._configs = configs 

37 

38 def __getitem__(self, item: str) -> MazeDatasetConfig: 

39 return self._configs[item] 

40 

41 def __len__(self) -> int: 

42 return len(self._configs) 

43 

44 def __iter__(self): 

45 return iter(self._configs) 

46 

47 def keys(self): 

48 return self._configs.keys() 

49 

50 def items(self): 

51 return [(k, copy.deepcopy(v)) for k, v in self._configs.items()] 

52 

53 def values(self): 

54 return [copy.deepcopy(v) for v in self._configs.values()] 

55 

56 

57MAZE_DATASET_CONFIGS: _MazeDatsetConfigsWrapper = _MazeDatsetConfigsWrapper( 

58 _MAZE_DATASET_CONFIGS_SRC 

59)