How-to Recipes#
This section answers prescriptive questions of the form “I want to add X, where does it go and what contract must I honour?”.
Each recipe lists:
the files to create or edit;
the contract to honour (Pydantic model, Protocol, registry);
the registration mechanism (entry point or in-process call);
the test to add and the command to run;
the pitfalls that the layer matrix or the linter would flag.
For a deeper code reading, follow the link to the matching Per-Package Reference entry.
Recipes#
Bind a new (process_type, solver_name) pair to a backend
adapter and an output extractor.
Introduce a new ProcessSpatial runtime alongside Flow
and Transport.
Extend a Pydantic section with a new field, with units and a
Profile annotation.
Wire a new family (next to hydrometry, geology, dem,
etc.) and its manager.
Plug a new public API or local-file source into an existing data variable.
Publish a named figure consumable by Run.plot and the
[display] section.
Compose a static HTML report from reusable blocks, figures, metrics, tables, and artifact links.
Stream catalog rows or per-run payloads into a new file format.
Pick the right test family and the right pytest marker.
Register a new hmp verb under cli/commands/.
Plug a new optimizer into the ask/tell engine.
Consume the JSON Schema and the partial-validator for any UI (Streamlit, Angular, React, Jupyter widget).