Repository navigation
views-reporting v0.3.0
views-reporting v0.3.0
160 commits since v0.2.0. Contains one breaking change (0.x convention: breaking-in-minor).
Breaking
EvaluationReportTemplate.generate(source=, target=)(#173, ADR-018/C-108): the evaluation report now renders from an injectedEvaluationSource— pipeline-core's reporting stage constructs aMetricFrameFileSourceover the persisted evaluation-of-record MetricFrame and passes it in. The render-time WandB scrape (get_latest_runand the wrong-run failure class it carried) is retired. Requires views-pipeline-core ≥ 3.0.0 (their reporting stage on the new API; a fail-loud preflight on their side names the needed upgrade). The on-disk frame layoutroot/<model>/<run_type>/metricframe_<target>is a locked cross-repo contract, pinned by executable tests on both sides.
Global-PGM forecast product (epic #230, ADR-021)
- Global coverage: bundled offline entity metadata for the full PRIO-GRID (66,205 land cells in the forecast region, 99.50% crosswalked) via a declared-interim GAUL→ISO3→VIEWS crosswalk. The interim status, its unmapped sets (Western Sahara, Kashmir, Abyei…, 322 cells), and the Kosovo→Serbia absorption are declared per-artifact in the bundle's
stamp.json— see register C-211; the platform coding decision is tracked cross-repo (views-datafactory#341 / views-postprocessing#123) and this release does not wait for it. - Four summary layers per sample target: MAP point estimate, P(any violence) (posterior share of draws above zero — the layer a zero-inflated posterior's mode hides), and upper 90%/95% HDI bounds. CM renders MAP (its line graph already carries HDI).
- Horizon-step maps: steps +1/+6/+12/+24/+36 as PNGs plus an interactive hover heatmap at step +1; human-readable headings ("sb — MAP point estimate — Jun 2029 (step +1)").
- Layer-typed colour scales (log for counts, linear unit-interval for probabilities), grey no-data rendering, SVG country borders above cells, no dead animation chrome, one shared plotly.js per report (~37 MB global reports).
Frames-native rendering (epics #137/#138/#204, ADR-019/020)
PredictionFramein; posterior samples stay numpy-bound; pandas only at declared seams (S>1 frames are refused at the mapping/line seams). Point/interval summaries come from the views-frames tower.- Offline/air-gapped rendering: bundled entity metadata (no viewser at render time), vendored CSS + inlined plotly.js, machine-readable provenance block in every artifact (incl. bundle snapshot date and plotly/plotly.js versions).
Scale & robustness
- S=1000 global feasible: streamed per-target loading and a float32-preserving collapse (measured collapse overhead ≈ 0 over the resident source; ~12 GB projected peak for a full global S=1000 target set).
- Ingestion guards: structural conformance + NaN policy + coverage checks (an interior month gap fails loud; ragged entity coverage warns once, visibly).
- Cross-repo assurance: executable contract tests against the real pipeline-core reporting stage (call shape, constructor contract, path layout); canonical vpc import surface with a permanent no-shim guard; plotly bump canary.
- Label rendering −31% (one cell→country resolution per render, memoized lookup series).
Governance
ADR-016..021 added/updated; CICs current; technical risk register at 78 concerns (66 resolved) with full resolution trails. Suite: 429 tests.
Install note: views-reporting 0.3.0 requires views-pipeline-core >= 3.0.0 — resolvable from PyPI once vpc's 3.x is published (coordinated platform release).