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
« 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"
3import copy
4from typing import Mapping
6from maze_dataset.dataset.maze_dataset import MazeDatasetConfig
7from maze_dataset.generation.generators import LatticeMazeGenerators
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}
34class _MazeDatsetConfigsWrapper(Mapping[str, MazeDatasetConfig]):
35 def __init__(self, configs: dict[str, MazeDatasetConfig]):
36 self._configs = configs
38 def __getitem__(self, item: str) -> MazeDatasetConfig:
39 return self._configs[item]
41 def __len__(self) -> int:
42 return len(self._configs)
44 def __iter__(self):
45 return iter(self._configs)
47 def keys(self):
48 return self._configs.keys()
50 def items(self):
51 return [(k, copy.deepcopy(v)) for k, v in self._configs.items()]
53 def values(self):
54 return [copy.deepcopy(v) for v in self._configs.values()]
57MAZE_DATASET_CONFIGS: _MazeDatsetConfigsWrapper = _MazeDatsetConfigsWrapper(
58 _MAZE_DATASET_CONFIGS_SRC
59)