Expand description
The DataStore trait and its result types (Phase 21).
These types are the engine’s public contract — the seam the later MCP
adapter (step 21.2) serializes over JSON-RPC and the PyO3 submodule (step
21.6) hands to a notebook. Per
docs/design/centaur-data-scientist.md
the trait is the DuckDB-later seam: swapping the SQLite backend for a
DuckDB one (step 21.8) must never change a single signature here.
Every result type derives serde Serialize / Deserialize so the MCP
adapter can return it as a JSON-RPC tool result with no hand mapping. The
types are deliberately honest (Phase 21 — “the gates must be honest”):
QueryResult carries a truncated flag but never a fabricated total
row count, and NumericDescribe follows pandas .describe() semantics
exactly (sample std, linear-interpolation quartiles) rather than an
approximation.
Modules§
Structs§
- Column
Info - Per-column schema fact reported by
DataStore::ingest_csv. - Column
Summary - Per-column summary returned inside a
TableSummary. - Ingest
Report - What
DataStore::ingest_csvdid: the table it (re)created and the schema it inferred. - Numeric
Describe - pandas
.describe()of a numeric column (Phase 21). - Query
Result - The result of a
DataStore::query— a row set capped atrow_cap. - Table
Info - One entry from
DataStore::list_tables. - Table
Summary - A full
DataStore::summarizeresult: schema + per-column statistics.
Enums§
- Column
Dtype - The SQLite storage class a column is materialized as.
Traits§
- Data
Store - The headless data engine (Phase 21).