#!/usr/bin/env python3
"""Build APLD capex/HPC revenue series from financial conversion rows."""

from __future__ import annotations

import csv
from pathlib import Path

BASE = Path(__file__).resolve().parent
FIN = BASE / "apld_financial_conversion_rows.csv"
OUT = BASE / "apld_capex_revenue_series.csv"


def main() -> None:
    rows = list(csv.DictReader(FIN.open(newline="", encoding="utf-8")))
    keep = {"hpc_hosting_revenue", "hpc_tenant_fitout_revenue", "property_equipment_investment_increase", "cash_restricted_cash", "total_debt"}
    out = []
    for row in rows:
        if row["metric"] in keep:
            out.append(
                {
                    "period_reported": row["period_reported"],
                    "metric": row["metric"],
                    "value_usd_m": row["normalized_value"],
                    "source_date": row["source_date"],
                    "source_url": row["source_url"],
                    "source_snippet": row["source_snippet"],
                    "caveat": row["caveat"],
                }
            )
    if not out:
        raise SystemExit("no capex/revenue rows")
    with OUT.open("w", newline="", encoding="utf-8") as f:
        writer = csv.DictWriter(f, fieldnames=list(out[0]))
        writer.writeheader()
        writer.writerows(out)
    print(f"wrote {len(out)} capex/revenue/liquidity rows")


if __name__ == "__main__":
    main()
