Dev guide#
This section is for contributors, maintainers, and advanced users who want to understand how MARIO is organized internally.
The goal is not only to explain how to change the code, but also to explain how the main subsystems fit together: where parsing stops, where compute logic starts, how scenarios and matrices are stored, and which modules own high-level operations such as plotting, export, aggregation, or shocks.
If you are trying to read the codebase efficiently, start with:
- Architecture Overview for the package layout and the main execution
boundaries;
Parsers for the ingestion path from raw sources to
Database;- Compute Layer for the catalog/resolver/formula model used to build
matrices on demand.
If you already know which slice you need to touch, use this shorter path:
parser work: Parsers, then Real-Data Fixtures and Testing Strategy;
compute semantics or matrix availability: Compute Layer, then Adding New Matrices and Testing Strategy;
documentation or notebook-backed pages: Documentation;
broad repository orientation: Architecture Overview first.