#!/usr/bin/env python3 """Build local drug knowledge artifact.""" from __future__ import annotations import json from pathlib import Path from app.knowledge.ddi_knowledge import top_risky_pairs from app.knowledge.drug_catalog import DRUG_CLASSES from app.knowledge.hepatic_rules import is_hepatic_unsafe from app.knowledge.renal_rules import is_renal_unsafe from app.knowledge.side_effect_ontology import SIDE_EFFECT_TAGS from app.knowledge.substitution_rules import SUBSTITUTIONS from app.knowledge.taper_rules import requires_taper def main() -> None: root = Path(__file__).resolve().parents[1] out_dir = root / "data" / "raw" / "knowledge" out_dir.mkdir(parents=True, exist_ok=True) payload = { "drug_classes": DRUG_CLASSES, "example_top_pairs": top_risky_pairs(list(DRUG_CLASSES.keys())), "side_effect_tags": SIDE_EFFECT_TAGS, "substitutions": SUBSTITUTIONS, "taper_required": {drug: requires_taper(drug) for drug in DRUG_CLASSES}, "renal_flags": {drug: is_renal_unsafe(drug, 25.0) for drug in DRUG_CLASSES}, "hepatic_flags": {drug: is_hepatic_unsafe(drug, 120.0, 90.0) for drug in DRUG_CLASSES}, } (out_dir / "drug_knowledge.json").write_text(json.dumps(payload, ensure_ascii=True, indent=2), encoding="utf-8") print("wrote drug_knowledge.json") if __name__ == "__main__": main()