Skip to content

Phase 30: Notebook interface and DataFrame display layer #174

Description

@gparadis

Goal:
Add an optional notebook-facing layer on top of modelwright.wrappers that exposes wrapped generated models as Jupyter-friendly, pandas-backed analyst workflows.

The goal is not a full spreadsheet UI. It is a live-kernel interface where users can inspect inputs, outputs, and tables; mutate scenarios; recalculate; render declared tables as pandas.DataFrame; and compare scenarios without directly handling raw generated source or Sheet!A1 dictionaries in the common path.

Release target: modelwright==0.1.0a5

Branch: feature/p30-notebook-dataframe-interface

Child tasks:

Current evidence:

  • Added modelwright.notebooks with lazy pandas-backed helpers for inputs, outputs, scenarios, tables, reports, and scenario comparisons.
  • Added notebook optional extra with pandas>=2, while keeping pandas out of core dependencies.
  • Added always-on synthetic notebook tests and extended the opt-in FABLE wrapper benchmark.
  • Added a tracked Examples Gallery with synthetic and compressed generated 2020 FABLE model examples.
  • Local verification passed: bootstrap, Ruff, default pytest (163 passed, 1 skipped), Sphinx warning-as-error docs, docs theme verifier, release artifact checks, and opt-in FABLE notebook wrapper benchmark (1 passed in 149.67s).

Acceptance boundary:

  • May claim initial Jupyter/DataFrame-facing helpers for wrapped generated models.
  • May claim optional pandas-backed display helpers.
  • May claim scenario mutation and comparison as notebook-native workflows.
  • May claim synthetic and opt-in FABLE evidence that notebook helpers do not change calculation behavior.
  • May claim tracked examples for synthetic and generated 2020 FABLE notebook-facing wrappers.
  • Must not claim a full spreadsheet UI, dashboard application, widget framework, automatic workbook semantic recovery, stable public API compatibility, or compact runtime IR production readiness.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions