Coverage for potnia/data.py: 100.00%
19 statements
« prev ^ index » next coverage.py v7.6.3, created at 2025-04-03 23:35 +0000
« prev ^ index » next coverage.py v7.6.3, created at 2025-04-03 23:35 +0000
1import yaml
2from pathlib import Path
3from functools import cache
5DATA_DIR = Path(__file__).parent / "data"
7@cache
8def read_data_yaml_cached(filename: str) -> dict[str, str]:
9 path = DATA_DIR / filename
10 if not path.suffix:
11 path = path.with_suffix(".yaml")
13 if not path.exists():
14 return dict()
16 with open(path, encoding='utf8') as f:
17 result = yaml.safe_load(f)
18 return result or dict()
21def read_data(*filenames) -> dict[str, str]:
22 result = dict()
23 for filename in filenames:
24 result.update(read_data_yaml_cached(filename))
26 return result