from __future__ import annotations import json from datetime import timedelta from gibil.classes.oracle.store import OracleStore class OracleQualityDisplay: """Renders oracle prediction quality tables.""" def render(self) -> str: return """

Oracle Quality

Prediction error by model and horizon

Kind Model Horizon Samples Bias MAE Median AE MAPE Coverage
""" def data_payload(self, lookback_hours: float = 168) -> str: try: rows = OracleStore.from_env().load_evaluation_summary( lookback=timedelta(hours=lookback_hours) ) except Exception: rows = [] return json.dumps( { "lookback_hours": lookback_hours, "rows": [self._row(row) for row in rows], } ) def _row(self, row: dict[str, object]) -> dict[str, object]: return { key: self._json_value(value) for key, value in row.items() } def _json_value(self, value: object) -> object: if value is None or isinstance(value, (str, int, float, bool)): return value try: return float(value) except (TypeError, ValueError): return str(value)