crv.viz
Experimental API
Visualization APIs and dashboards are subject to change. Since: 2025-09-25.
crv.viz
crv.viz — Read‑only transforms and dashboards over IO datasets.
Responsibilities
- Provide composable, Polars‑first transforms for analysis of canonical tables.
- Offer chart/layer primitives and dashboards for common exploratory views.
- Never mutate canonical IO; read‑only by contract.
Public API
- transforms — Helpers to assemble analysis frames from crv.io tables.
- layers — Altair layer primitives and encodings.
- dashboards — Ready‑to‑use dashboards that wire transforms and layers.
- networks — Network views for identity edges.
- timeseries — Time‑based views (e.g., value trajectories).
- distributions — Distribution plots over canonical metrics.
Import DAG discipline
- Depends on: crv.io (Dataset scans), polars, altair (and stdlib).
- Must not write to IO or modify manifests.
- Must not import crv.world or crv.lab at runtime (only their artifacts via IO).
Examples
# Build a lightweight identity-edges view for a dashboard # doctest: +SKIP
from crv.io import IoSettings, Dataset
import polars as pl
ds = Dataset(IoSettings(root_dir="runs/out"), run_id="demo_abcdef")
lf = (
ds.scan("identity_edges", columns=["tick","observer_agent_id","edge_kind","token_id","edge_weight"])
.filter(pl.col("edge_kind") == "self_to_object")
.select(
pl.col("tick").alias("t"),
pl.col("observer_agent_id").alias("agent_id"),
pl.col("token_id"),
pl.col("edge_weight").alias("self_to_object_strength"),
)
) # doctest: +SKIP
df = lf.collect() # doctest: +SKIP