Coverage for narrative_harm_classifier/core/yaml_loader.py: 100%

9 statements  

« prev     ^ index     » next       coverage.py v7.15.2, created at 2026-07-20 13:25 +0000

1""" 

2core/yaml_loader.py — Shared "check path exists, open, yaml.safe_load" helper. 

3 

4Previously duplicated across classifier/taxonomy/loader.py, 

5classifier/validators/benchmark.py, and classifier/rules/patterns_loader.py. 

6""" 

7 

8from pathlib import Path 

9from typing import Union 

10 

11import yaml 

12 

13 

14def load_yaml_file(path: Union[str, Path]) -> dict: 

15 path = Path(path) 

16 if not path.exists(): 

17 raise FileNotFoundError(f"YAML config not found: {path}") 

18 with open(path, encoding="utf-8") as f: 

19 return yaml.safe_load(f)