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

1import yaml 

2from pathlib import Path 

3from functools import cache 

4 

5DATA_DIR = Path(__file__).parent / "data" 

6 

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") 

12 

13 if not path.exists(): 

14 return dict() 

15 

16 with open(path, encoding='utf8') as f: 

17 result = yaml.safe_load(f) 

18 return result or dict() 

19 

20 

21def read_data(*filenames) -> dict[str, str]: 

22 result = dict() 

23 for filename in filenames: 

24 result.update(read_data_yaml_cached(filename)) 

25 

26 return result