Spaces:
Running
Running
| #!/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() | |