v1.1.0
MARIO v1.1.0
This release centers on scenario-based composition updates — rewriting the
electricity supply and trade mixes of a table while preserving its column
totals — together with a reworked sector disaggregation workflow, RAS
balancing, and richer shock authoring.
Electricity supply & trade mixes
Database.update_supply_mix— rewrite one region's generation mix in
place, preserving every buyer's total: acrossz/Yon IOT andu/Yc
(commodity) or the supply blocks(activity market shares) on SUT. The
"electricity"mode derives the mix from EMBER generation for a chosen
year(aggregating to the compatible fuel groups and redistributing back).
Database.get_mixreads a production mix back.update_supply_mix_iot/
update_mix_iotremain as IOT-only aliases.Database.pool_trade— pool a commodity's trade behind a
"- supply"/"- need"pass-through layer, so its technology mix and trade
mix live in two independent market-share columns.Database.update_trade_mix— the dual of the supply mix: redistribute one
item across its origin regions per destination market. The"electricity"
mode reads the ENTSO-E import mix.- Live data fetch — the
"electricity"modes can fetch EMBER / ENTSO-E
directly with an API key (mario.set_api_keys(...), a<PROVIDER>_API_KEY
env var, ormario/settings/api_keys.yaml); packaged snapshots keep both
methods working offline with no key. - New "Updating the electricity supply and trade mix" user-guide workflow
and API reference.
Sector disaggregation & balancing
Database.add_sectors— newVA_fix(augment missing factor-of-production
rows from parent sectors) andaccept_non_unitary_sumoptions;
read_add_sectors_excelreads grouped inventories from multiple sheets and
acceptssplit=; corrected total-output/flow computations after inserting a
sector.- Sector split (
split=True) — reworked routine: exclusions and
factor-of-production clusters, aresiduethreshold, a faster and better
disaggregation formulation, and no accidental output-folder overwrite. A
complete end-to-end example lives in
MRIO-disaggregation-model. Database.ras— balance theZblock of an IOT scenario to target row
and column margins with the biproportional RAS algorithm.
Shocks
shock_calc(base_scenario=...)— build a shock on top of any existing
scenario, so shocks can be chained.- New
Supply mix NandTrade mix Nshock types in the shock
workbook (IOTz/Y; SUTu/s/Yc), with template picklists — the mix
updates authored without code.
GHG & plotting
calc_ghgnames the aggregated satellite account after its GWP basis when
labelis omitted (e.g."GHG AR6 GWP-100").- Plot helpers always write the figure HTML to disk and no longer fail when the
inline Jupyter backend is unavailable.
Settings & dependencies
- Default
compute.compute_methodchanged fromautotoinverse. - Adds
entsoe-py(live ENTSO-E fetch, raw XML client only — pandas-3 safe) and
nbformatas dependencies.
Full changelog: v1.0.3...v1.1.0