Notebook Utils Layout¶
The notebook tree now distinguishes between reusable helper modules and runnable notebook entrypoints:
notebooks/utils/holds shared Python helpers that multiple notebooks import.notebooks/generic/holds generic notebook entrypoints such as Marimo scripts.- Environment-specific notebooks stay grouped under their existing environment
folders like
notebooks/gridworlds/...andnotebooks/matrix/....
The main goal is to make notebooks/generic/ read like "generic notebooks"
instead of a mixed directory that also contains importable support code. Shared
orchestration moved into notebooks/utils/ includes experiment helpers, timing
helpers, shielding helpers, environment registry helpers, and related graph/JAX
utilities.
notebooks/generic/legend_mo.py also replaced the old
notebooks/generics/legend_mo.py path so there is a single canonical home for
generic notebook entrypoints.
When adding new notebook support code:
- Put reusable, non-UI helpers in
notebooks/utils/. - Put runnable notebooks, visual explorers, and one-off Marimo entrypoints in a
notebook-oriented directory such as
notebooks/generic/or an environment-specific folder. - Prefer importing helpers via
notebooks.utils.*from notebooks, tests, and docs to keep the separation obvious.