MARIO
MARIO stands for Multifunctional Analysis of Regions through Input-Output. It is a Python package for working with Input-Output Tables (IOT) and Supply and Use Tables (SUT). Once parsed, a table becomes a MARIO database that can be inspected, computed, transformed, aggregated, shocked, and exported.
Documentation is available on Read the Docs.
What MARIO Supports
MARIO is designed around a practical IO workflow:
parse a database from supported sources or load a packaged test table;
inspect sets, scenarios, and available matrices;
compute derived matrices and indicators on demand;
transform, aggregate, or shock the database;
export the results for roundtrip or downstream analysis.
The current documentation covers both standard parsers and custom database ingestion. Supported workflows include:
single-region and multi-region systems;
monetary and hybrid tables where the parser supports them;
standard sources such as EXIOBASE, EORA, EUROSTAT, FIGARO, WIOD, OECD, and more;
custom databases from Excel, text, CSV, and pandas-based inputs;
aggregation, SUT-to-IOT conversion, scenario analysis, and exports.
Installation
The package name on PyPI is mariopy, while the import name is mario.
MARIO requires Python 3.11, 3.12 or 3.13 (>=3.11,<3.14). Python 3.14 and later are not supported because the pinned NumPy version (numpy==2.1.1) supports Python only up to 3.13.
Create a clean environment with an explicit supported Python version:
conda create -n mario python=3.12
conda activate mario
Install from PyPI:
pip install mariopy
Parquet import and export support is included in the default installation.
Install from source:
git clone https://github.com/it-is-me-mario/MARIO.git
cd MARIO
pip install -e .
Quickstart
A minimal test database is bundled with MARIO:
import mario
db = mario.load_test("IOT")
print(db)
print(db.get_index("Region"))
db.calc_all()
db.to_excel(path="output_folder")
For SUT workflows:
import mario
sut = mario.load_test("SUT")
iot = sut.to_iot(method="B")
Documentation Map
The published documentation is organized into three sections:
Get started for installation, nomenclature, table formats and scenarios;
Docs for parsers, inspection, transformations, advanced workflows and the API reference;
Resources for the software paper and related research.
Citation
Citation guidance and the up-to-date list of publications using MARIO are maintained in the Resources section of the documentation.
Contributing
Contributions are welcome. To report a bug or suggest a feature, open an issue on GitHub. To contribute code or documentation, open a pull request against main; for larger changes, open an issue first or contact the maintainers so we can agree on the approach.
License
MARIO is distributed under the GNU General Public License v3.0.
Supporting institutions
MARIO grows across two complementary settings.
Metadata
Release files for mariopy 1.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mariopy-1.3.0.tar.gz | 1.0 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mariopy-1.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 2.1 MB
Release files / mariopy-1.3.0.tar.gz
| Download URL | mariopy-1.3.0.tar.gz |
|---|---|
| Size | 1.0 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5b0923436ff7924ab3197e205f131b7b5aa5a5f3dc63a506917e918b3b23e5ed
|
|
BLAKE2b-256 checksum How to use checksums |
f7eb973be37ba06e60c8928b2d8898507307af7f965546ca0c9ed2372c144d7e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.4
|
Release files / mariopy-1.3.0-py3-none-any.whl
| Download URL | mariopy-1.3.0-py3-none-any.whl |
|---|---|
| Size | 1.1 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1b4f28bdef303c4a21f06847a56116716f6d7878d437ee287c0b894344424030
|
|
BLAKE2b-256 checksum How to use checksums |
26e1e4821f7a78d4fa8e054c8ba1da73963ea235fe48714caf4088a3051733de
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.4
|