wahl-hack / scripts /validate_kb.py
Ani
Add DIP knowledge base and promise tracker functionality
1179155
Raw
History Blame Contribute Delete
782 Bytes
#!/usr/bin/env python3
from __future__ import annotations
import sys
from pathlib import Path
import pandas as pd
ROOT = Path(__file__).resolve().parents[1]
SRC = ROOT / "src"
if str(SRC) not in sys.path:
sys.path.insert(0, str(SRC))
from dip_client import KB_COLUMNS
path = ROOT / "data" / "dip_knowledge_base.csv"
if not path.exists():
raise SystemExit("No data/dip_knowledge_base.csv found. Build the KB first.")
df = pd.read_csv(path, dtype=str).fillna("")
missing = [c for c in KB_COLUMNS if c not in df.columns]
if missing:
raise SystemExit(f"Missing columns: {missing}")
if df.duplicated(subset=["resource_type", "dip_id"]).any():
raise SystemExit("Duplicate resource_type + dip_id rows found.")
print(f"OK: {len(df)} rows, {len(df.columns)} columns.")