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
« 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.
4Previously duplicated across classifier/taxonomy/loader.py,
5classifier/validators/benchmark.py, and classifier/rules/patterns_loader.py.
6"""
8from pathlib import Path
9from typing import Union
11import yaml
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)