Skip to main content
https://img.shields.io/badge/code%20style-black-000000.svg Documentation Status https://badge.fury.io/py/mariopy.svg https://zenodo.org/badge/421900437.svg

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 a few main sections:

  • Setup for installation and first checks;

  • Concepts for MARIO terminology and conventions;

  • User guide for parsers, inspection, transformations, custom databases, and exports;

  • API reference for method-level documentation;

  • Publications for the software paper and related research.

Citation

Citation guidance and the up-to-date list of publications using MARIO are maintained in the Research section of the documentation.

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.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mariopy 1.2.0
File Size Uploaded
mariopy-1.2.0.tar.gz 16.7 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for mariopy 1.2.0
File Interpreter ABI Platform
mariopy-1.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 17.8 MB

Release files / mariopy-1.2.0.tar.gz

Download URL mariopy-1.2.0.tar.gz
Size 16.7 MB
Tags Source
SHA-256 checksum
How to use checksums
181e72acbe7cb5ec4126f54336b2fc4729481579ca40f71b554928660fc7c6e1
BLAKE2b-256 checksum
How to use checksums
b3e84717a69045e746a369c9d87aaf380c63f3bb881220e30eae3fc1c8a22ff5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release files / mariopy-1.2.0-py3-none-any.whl

Download URL mariopy-1.2.0-py3-none-any.whl
Size 1.1 MB
Tags Python 3
SHA-256 checksum
How to use checksums
7d7403bea3efe72aa262ee95d1459ed3d769153ca9d53a9294ae7fd96f74773c
BLAKE2b-256 checksum
How to use checksums
20ca8942c2d92e028eaff677fc56a90ddaca158bd6ba210c0fac6e790fb87f25
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release history Release notifications | RSS feed

1.3.0

2 release files

This release

1.2.0 This release

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

1 release file

0.3.5

2 release files

0.3.4

2 release files

0.3.3

1 release file

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.2

2 release files

0.2.1

1 release file

0.2.0

2 release files

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page