Release Notes#

bonsai-api#

Version 0.1.0#

Enhancements

  • Added the initial standalone BONSAI hosted API client package, exposing connectors and hosted API endpoint definitions under bonsai.api.

  • Retry interrupted GET downloads per page with bounded backoff and connection/read timeouts.

bonsai-io#

Version 0.35.0#

Enhancements

  • Make the iLUC workflow task own source-table and classification loading, intermediate exports, and emission exports. Pass parameter DataFrames through calculation helpers, calculate country fertilizer factors once, and map transformation emissions in memory before writing. Retain existing intermediate artifacts for analysis compatibility.

  • Add regression checks for iLUC task-owned IO, single artifact writes, land-market conservation, fertilizer emission values, backend mapping, and country/activity supply alignment.

  • Extend Ipopt and Gurobi balance time limits to 8,000 seconds and rebuild the SUT graph before balancing when running the balance module directly.

  • Remove unused correspondence reads from non-food agricultural allocation and update analysis scripts for the current land-footprint entry point.

  • Retain hemp fibre and seed through the detailed principal-product list and aggregate both to C_Hempd through the existing SUT mapping, preserving seed-only WM production without crop-specific Python logic.

  • Require production and market activities to have a connected reference-product output with a positive finite value in its characteristic unit. Keep node validation local; graph validation and fixed-point pruning own the reference checks, while retaining input-only final demand.

  • Use unique backend FAOSTAT activity correspondences for iLUC land allocation instead of the obsolete animal-mapping workbook; add a preview-first uploader for the seven pasture labels. Align b2 land inputs to after-balanced and iLUC supply activities, export excluded rows for audit, and validate retained inputs.

  • Retain waste-stock treatment services in capital formation and supply while excluding them from allocated capital use; carry their full capital-good output into stock-addition final demand.

  • Sum merged elementary flows by UUID, country, activity, compartment, and unit after conversion, including resource flows with missing compartments.

  • Resolve emission coefficients under collect/Emissions_coeffs and use the relocated GWPs/lcia.xlsx workbook.

  • Include harvested-crop and used-residue CO2 uptake in the merged elementary-flow account, mapping both current and legacy resource labels to the uptake flow.

  • Add a sparse consumption-driven value-added analysis that splits balanced fec_B1G contributions between domestic and foreign production.

  • Keep HIOT diagonal and zero-column checks sparse to avoid allocating dense square matrices during assembly.

  • Write augmented b2 final demand to final_demand.b2 without overwriting the balanced b1 final_demand_AB artifact, and read the b2 artifact in downstream exports and analyses.

  • Write the b1 GHG footprint CSV and its report entry to check_data instead of HIOT, and read it there in downstream analyses.

  • Apply product-balance constraints to the previously exempt market products, subject to the existing unit and initial-imbalance skips.

  • Name Brightway export directories by BONSAI data version instead of export date.

  • Keep both iLUC comparison years in the revised land-use account; split permanent and temporary pasture by eligible livestock revenue using fixed 2016 prices instead of CONCITO pasture weights, then allocate annual arable and grassland market additions using positive weighted-area changes for expansion and current occupied area for intensification.

  • Match forestry’s global forest-land input to annual managed-forest additions supplied by the iLUC market.

  • Validate b2 world-demand supply gaps when assembling the HIOT and export a product-level audit table before inversion.

  • Upload the complete tier-one contribution table instead of a fixed row slice that omitted recipes and land-market inputs.

  • Sum duplicate elementary-flow rows in tier-one direct contributions to match footprint totals, and exclude contributions with missing emissions.

  • Apply matched UN physical-to-tonne factors to units without scale words, and correct the hecto prefix from 1000 to 100.

  • Combine magnitude and metric prefixes when converting UN volume units, correcting hundred/thousand hectolitres and thousand kilolitres to their litre-based quantities.

  • Preserve UN rows in their original units when no physical-to-tonne conversion factor is available.

  • Integrate FIGARO monetary supply, use, final demand, and value added with OECD fallback in the monetary SUT workflow; use the merged tables for technical and distribution coefficients.

  • Add UNSTAT macro-category value-added loading for the monetary SUT workflow.

  • Add provisional product-level capital lifetimes and use 90% lifetime coverage as a transition proxy for capital use until historical capital accounts are available; allocate this target by CFC shares and carry the remainder into an auditable stock-addition account and b2 GFCF final demand.

  • Derive GFCF formation and capital eligibility from balanced characteristic-unit use, so pruned or adjusted pre-balance demand does not enter capital accounts.

  • Raise Gurobi’s failed numerical status before loading a solution, and use higher numerical focus for balance solves.

  • Log failed workflow tasks with their traceback and propagate the original exception to callers.

  • Resolve workflow data paths directly under _b Next version after removal of the Exiobase_4 directory layer.

  • Build the release wheel directly from the monorepo source tree so CI does not rebuild it from an incomplete source archive.

  • Expand each allocated capital product into its own capital-forming activity and capital-good product, with formation and industry-use accounts in Use and reference supply in Supply for the b2 HIOT; print the reconciliation summary without exporting the intermediate allocation or an audit JSON file.

  • Strip each M_ prefix when naming capital goods and forming activities, including every member of concatenated product codes.

  • Add a preview-first script to upload generated capital goods and forming activities to the product and activity classification APIs, naming products with a (capital goods) suffix and linking each activity to its capital product.

  • Keep gross value added (fec_B1G) in the balance account without subtracting consumption of fixed capital; the provisional capital-use fraction applies only in the b2 accounts.

Known limitations

  • Nuclear-fuel market supply can greatly exceed modeled use: UN uranium production is converted with an enriched-fuel energy factor, recorded trade removes little of that production from some domestic markets, and energy-product balance is not constrained. The b2 product-imbalance audit reports the resulting gaps; this release does not reconcile them.

Version 0.34.1#

Enhancements

  • Bumped BONSAI version to v2.4.1.

  • Estimate packaging-waste treatment and industrial metal reuse, and keep these flows distinct from ordinary waste-treatment markets.

  • Rework waste-market supply, imported waste-service allocation, and treatment mixes, including residual waste fractions and sorting flows.

  • Split fertilizer-market construction into registered workflow tasks for nutrient content, availability, input mixes, supply, and by-products.

  • Add iron-ore production from USGS data and estimate missing mineral and non-ferrous-metal supply.

  • Estimate missing monetary-SUT distribution coefficients and correct their downstream path and product mappings.

  • Generate the hybrid capital use table after balancing and include it with iLUC in the b2 HIOT; the pre-balance hybrid SUT no longer includes capital use.

  • Export the b1 extended HIOT matrix again and run the elementary-flow and footprint stages when their modules are executed directly.

  • Scale transport margins for stone by-product markets to the remaining market supply after by-product supply is moved outside the market.

  • Apply activity-balance bounds to fertilizer markets and include phosphorus and PK fertilizer products in price balancing.

  • Reject missing or non-boolean relation_plausible responses instead of treating them as implausible relations.

  • Resolve bonsai-api and bonsai-export from their Git package subdirectories pinned to bonsai-io-v0.34.0, allowing installation without separately publishing these sibling packages to a package index.

  • Normalized IO-ratio constraint coefficients by initial reference supply and enabled Gurobi constraint-matrix scaling (ScaleFlag=2).

  • Set the extreme initial product-imbalance skip threshold to 10 and the near-zero tolerance for product and lower activity balances to 1e-7.

  • Added Pint definitions for m3 and Sm3 and separate cubic-metre and standard-cubic-metre export labels in the post-balance elementary-flow merge; density-based conversion remains selected by differing dimensionalities.

  • Updated area-time unit handling in the elementary-flow merge for square-metre-year export labels.

  • Connected manually revised use tables to downstream transfer-coefficient, metabolism, packaging, and waste tasks so workflow reruns propagate corrected inputs.

  • Removed deprecated global-market missing-production helpers.

  • Mapped elementary-flow emissions to each activity’s diagonal reference product in tier-one footprint contributions, preventing cow-milk emissions from being assigned to cattle products.

Version 0.34.0#

Enhancements

  • Added a transferable, code-independent price-model trainer using supply locations and product/activity names.

  • Bumped the default BONSAI data version to v2.4.0.

  • Added source docstrings for every registered workflow task and a script that exports them in deterministic dependency order.

  • Grounded local-LLM technical-constraint reviews in validated cross-country peer statistics, explicitly considered capital inputs during relation review, and added deterministic decision reasons and approval-score caps for single-observation or incomplete evidence.

  • Converted implausible product/activity relation reviews directly into approved numerical-zero technical constraints with bounds [0, 1e-5].

  • Added capped technical coefficients for value added and applied them through the standard IO-ratio constraints.

  • Replaced initialization-point infeasibility dumps with Gurobi IIS reports and stopped balance exports when the solver does not return an acceptable solution.

  • Adjusted the default correspndence for water release from “release to air” to “release to water”.

  • Updated the water-cooling methodology to describe the thermal-power cooling dataset and plant-capacity based coefficient calculation.

  • Simplified monetary SUT gapfilling by removing the legacy gapfill implementation and using the configured workflow year for similar-country proxy selection.

  • Moved the land-footprint final-demand selector into the land-footprint module that consumes it.

  • Ordered concatenated Bonsut monetary activity codes before writing them, preventing string-order mismatches between monetary supply and use tables.

  • Updated monetary SUT country gapfilling to use GDP weighting for similar-country proxies.

  • Improved monetary SUT similar-country gapfilling with deterministic ISO3-based metadata mapping, regional and income-group donor selection, GDP-per-capita and population similarity scoring, and similarity-weighted GDP scaling without a China fallback.

  • Reworked monetary SUT gapfilling to estimate principal supply first from GDP-scaled, similarity-weighted donors, then derive intermediate-input and value-added ratios from activity output and final-demand ratios from product supply.

  • Corrected missing-country intermediate-use gapfilling to preserve every donor input product by calculating its ratio against activity output instead of requiring a matching product supply row.

  • Removed gapfilled supply activity-country pairs without corresponding nonzero use, preventing donor-only activities from remaining in the monetary SUT supply output.

  • Deferred BONSUT regional location aggregation until all monetary SUT accounts are gapfilled, then harmonized every account to the shared BONSUT location domain, including mapping BONSAI-only locations such as SG into WA.

  • Split service-trade values equally when one product matches multiple destination markets instead of assigning the full value to the first market.

  • Added direct OECD monetary SUT loading from the configured clean CSV files, with explicit CPA product and ISIC activity concordance mapping and workflow registration before MSUT building.

  • Refactored OECD monetary SUT ingestion into dedicated split, load, and build utilities.

  • Corrected the OECD monetary workflow to use the intended value-added account and updated its reconciliation.

  • Updated average-market construction to consume the consolidated bilateral trade artifact, including aggregated service exports, without reloading raw service trade or double-counting currency trade.

  • Aligned multiregional-trade task dependencies with the artifacts consumed directly by the task, removing obsolete monetary-trade and total-trade dependencies.

  • Excluded Comtrade World, Free Zones, and Areas NES aggregates from bilateral service trade, and corrected Namibia’s fallback to the African rest-of-world region.

  • Added a script-generated cfc_coefficient_by_activity.csv capital data-collection evidence ledger for activity-level CFC per monetary unit of industry output.

  • Updated capital investment allocation to calculate current activity-level CFC coefficients on the fly from prior and observation rows, then multiply them by current monetary output.

  • Renamed the generated capital-use artifact from hybrid_capital_investment_table.csv to hybrid_capital_use_table.csv.

  • Added a pre-balance elementary-flow merge task so the hybrid SUT build consumes one merged elementary-flow artifact instead of assembling natural-resource rows inline.

  • Split combustion-emission scaling from the final emissions merge so scaled combustion rows are produced separately and merged by merge_all_emissions().

  • Moved value-added processing into the disaggregation task and now use net value added (fec_B1G - fec_COFC) as the elementary inflow, avoiding double counting while keeping capital consumption in its separate account.

  • Corrected value-added task dependencies so the dedicated disaggregation artifact is consumed by graph conversion without creating a cycle through price and hybrid-SUT construction.

  • Merged the standalone emission-account merge module into the elementary-flow merge module.

  • Added disaggregated value-added rows to the hybrid SUT builder as elementary inflows.

  • Refactored pre-balance elementary flows to use one elementary_flow account type with flow_direction distinguishing activity outflows from activity inflows.

  • Allowed signed initial use values in the balance model so negative value-added accounts can participate in monetary accounting while optimization variables remain non-negative.

  • Added bounded substance-to-reference-flow ratio constraints in the balance model, preventing value-added and other substance inflows from becoming unrestricted balancing variables.

  • Updated graph conversion and IO-ratio constraints to handle elementary-flow rows without product classification or product-only constraints.

Backward Incompatible Changes

  • Removed the estimate_value_added task.

  • Removed separate emission and resource account types from AccountType; pre-balance elementary flows now use elementary_flow with flow_direction.

Version 0.33.1#

Enhancements

  • Restructured water accounts from broad Water, no specific origin and Water, green flows into origin-specific elementary flows for unspecific, cooling, air, surface, ground, and green water across municipal services, livestock cleaning/feed, power generation, and crops.

  • Split crop and livestock irrigation water coefficients into groundwater and surface-water substances, and mapped capillary-rise blue water to groundwater before post-balance recalculation.

  • Merged crop and forage-derived livestock water coefficients into water_use_coeff_for_crops_n_forages.csv with a water_use_source marker.

  • Moved water-coefficient generation into a dedicated elementary_flows.water_def module and aligned crop/forage water coefficient exports on REF_PROD_CODE, elementary-flow UUID substances, volume units, stable coefficient columns, and water_use_source provenance.

  • Added refinery products to the selected price-balance constraint set.

  • Tuned balance constraints by expanding selected price-balance products, skipping product balance for energy flows, tightening extreme-imbalance skips, and narrowing selected activity, waste-service, and item-count price bounds.

  • Updated methodology documentation and diagrams for capital endogenization, water-use coefficient artifacts, and the basic-to-extended input-output transformation.

  • Streamed approved local-LLM technical-constraint reviews into technical_constraints.csv, storing the review rationale in the constraint comment field.

  • Added a helper script to populate Exio ref. prod code in technical_constraints.csv from activity reference products.

  • Added bonsai-api as a runtime dependency, migrating API endpoint definitions into the standalone API client package instead of keeping them as a bonsai-io utility, while preserving compatibility imports for bonsai.io.util.connectors and APIEndpoints.

  • Expanded the maintained technical_constraints.csv dataset and cleaned up product price data.

  • Split local-LLM technical-constraint review into relation and bounds stages, keeping impossible relations as needs_review instead of approving zero-bound constraints.

  • Mapped PPF and own-consumed fuel inputs through combustion-process heat-market correspondences while keeping unmatched fuels on their original product code.

  • Wrote combustion-process emission coefficients to the active versioned emissions account and read the CSV source table directly.

  • Renamed technical-constraint candidate flow amounts from candidate_value to source_value and clarified the local-review prompt semantics.

Backward Incompatible Changes

  • Removed unused IndexNames members for aggregation, substitution factor, and parent class metadata.

  • Moved water coefficient task functions out of bonsai.io.elementary_flows.natural_resource_elab; import them from bonsai.io.elementary_flows.water_def.

  • Renamed the technical-constraint candidate CSV amount column from candidate_value to source_value.

  • Removed the split water_use_coeff_for_crops.csv and water_use_coeff_for_livestock.csv water-coefficient outputs.

Version 0.33.0#

Enhancements

  • Bumped the default BONSAI data version to v2.3.0.

  • Moved ingestion of hybrid_capital_investment_table.csv into build_hybrid_sut() so capital participates in graph conversion and balancing, while keeping iLUC land-use HIOT b2 construction in the HIOT assembly layer.

  • Switched capital endogenization eligibility from country-specific intermediate-use links to a shared global use-derived product-by-industry matrix, while keeping GFCF amounts, CFC weights, output exclusions, and fallback allocation country-specific.

  • Updated capital endogenization eligibility and allocation to use the pre-balance use table, preserve raw intermediate-use activity codes, including concatenated A|B codes, and project CFC from matching BONSAI member industries onto that raw activity axis.

  • Added IEA-derived coal-product shares to disaggregate aggregated hard-coal and brown-coal entries in UN energy supply, electricity and heat use, own consumption, trade, final consumption, transformation, and non-energy use accounts.

  • Updated UN energy heat handling to use hot-water heat activity coding, validate duplicate electricity and heat supply rows, and convert biogasification-derived manure and waste energy outputs to mass units before exporting supply rows.

  • Updated balance optimization to use sublinearly weighted relative squared deviation, revised selected product price-balance sets, tightened or relaxed selected activity and price variation bounds, and aligned HIOT use columns to supply columns so supply-only activities remain valid structural-zero use columns.

  • Fixed an issue with unit conversion for wood and forest natural resources.

  • Fixed capital investment table unit assignment so excluded GFCF products no longer shift units onto later capital products.

  • Improved capital account mapping for activities.

  • Expanded balance price constraints to every priced product, including mass-unit products, so physical product flows are constrained by their monetary price relationships during balancing.

  • Removed the legacy Excel-based iLUC substance-name normalization before elementary-flow UUID mapping, so iLUC emissions now rely on the backend elementary-flow correspondence as the source of truth after the explicit NO3 to N rule.

  • Moved iLUC land-use product/activity-code normalization into the iLUC account build, with the task consolidating technosphere rows into iluc_use.csv and iluc_supply.csv, mapping product columns against product classifications and activity columns against activity classifications, and failing fast on unmapped labels so downstream HIOT tasks consume validated iLUC rows.

  • Moved remaining active helpers out of broad utility modules into their consuming modules and removed obsolete HIOT/iLUC/IOT helper code and the old iLUC comparison script.

Backward Incompatible Changes

  • Removed the footprint_def.add_b2_account_to_hiot() wrapper; call hiot.assemble_df_for_hiot.generate_hiot_b2_tables() for b2 HIOT construction.

Version 0.32.0#

Enhancements

  • Added UN energy data ingestion and comparison tasks, including cleaned use-account inputs, electricity and heat supply estimates, refinery feedstock extraction, energy-flow trade, own consumption, final consumption, and stock-change accounts.

  • Added UN-derived production estimates for electricity, heat, refinery feedstock, chemicals, virgin plastics, waste incineration, and biogas-related energy flows, with task-registration updates to wire them into the supply and use workflow.

  • Added water-use and natural-resource coefficient workflows for crops, forages, livestock cleaning, thermoelectric plants, aquaculture, fertilisers, and post-balance water-footprint recalculation, with matching methodology documentation.

  • Updated BACI, Comtrade, and forestry trade handling, including collected-data path cleanup, refined BACI trade treatment, and conversion-factor support for forestry products.

  • Updated market and waste integration so market supplies without margins, waste-market mixes, sorting activities, secondary-material estimates, and reclassified energy products are integrated consistently in supply/use tables.

  • Added backend ingestion support for BONSAI-to-CN/CPA/CPC/BONSAI product correspondence data.

  • Aligned Stone-market HIOT generation, footprint, contribution, aggregate-footprint, final-demand footprint, household-use, post-balance checks, SimaPro export, and Brightway export readers on the versioned HIOT working directory.

  • Moved current emission-generation and recalculated elementary-flow inputs/outputs onto versioned emissions and Balanced account directories, keeping post-balance elementary-flow merging on the active workflow date.

  • Folded final-demand vector extraction into balance_sut(), writing final_demand_AB alongside the generated HIOT artifacts instead of relying on a separate downstream task.

  • Fixed secondary-material estimate helpers so collected-waste rows append the per-country estimate frame and missing rows are concatenated with valid pandas inputs.

  • Fixed API pagination handling so HTTPS endpoints keep using HTTPS when backend next links are emitted as HTTP, and non-JSON API responses now report status, content type, and a body preview.

  • Updated price gapfilling to read and write versioned prices account artifacts and fail fast when product descriptions are missing.

  • Updated the default workflow configuration date to 2026-06-15.

Backward Incompatible Changes

  • Removed the legacy SQLiteResourceRepository implementation; resource tracking now stays on the CSV-backed repository path.

  • Removed legacy PathBuilder accessors for old HIOT raw, b2, and investment-matrix folders; callers should use versioned account paths instead.

  • Removed the in-package bonsai.io.agriculture helper package after moving the legacy agriculture helpers out of the package runtime surface.

  • Removed the standalone select_fd_vector_after_the_balance workflow task because final-demand extraction now happens during balancing.

  • Removed obsolete footprint heat-market decomposition scripts and helper modules after dropping the remaining checked-in script imports.

  • Cleaned up old final-SUT disaggregation code, stale imports, deprecated global-market task comments, and unused rough-analysis variables.

Version 0.31.2#

Enhancements

  • Moved heat-market supply and input artifacts into the versioned Supply and Use account folders, and renamed the energy-market module to energy_market_def.

  • Reallocated passenger-car fuel use from land-transport fuel markets into M_fuel_Passenger using cleaned JRC road-transport fuel shares.

  • Aligned energy, PPF, price, market, and emission readers with versioned account paths so task outputs are read from the active workflow date.

  • Kept packaging-manufacturing use estimation compatible with the versioned heat-market account outputs.

  • Added household country-recipe validation against the latest backend recipe download, including inflow and emission value comparisons.

Backward Incompatible Changes

  • Removed obsolete EXIO data-check notebooks/scripts and the unused legacy HIOT SimaPro helper module.

Version 0.31.1#

Enhancements

  • Release of BONSAI v2.2.0.

  • Added an optional local Ollama review workflow for technical-constraint candidates, writing review CSV and JSONL history artifacts without mutating authoritative constraints.

  • Included raw water-use rows in the recalculated elementary-flow merge and normalized current-unit aliases before dimensional unit conversion.

  • Centralized elementary-flow UUID mapping in the recalculated elementary-flow merge/finalization task, so upstream recalculation artifacts can keep raw labels while the final merged output remains UUID-keyed with substance_name.

  • Updated footprint validation to fetch benchmark rows through the authenticated footprint CSV download API, avoiding paginated JSON limits while preserving the comparison output schema.

  • Changed the default balance solver from IPOPT to Gurobi and kept solver-status validation for failed or unusable solves.

  • Exposed Property.is_characteristic in pandas account exports and used it directly when extracting characteristic supply and use rows after balancing.

  • Set Property.is_characteristic when graph flows are inserted, keeping account exports side-effect-free and using the stored characteristic layer for IO-ratio constraints.

  • Made exporter classification inputs explicit on the SimaPro and Brightway input models instead of wrapping them in a dedicated classification aggregate.

  • Renamed the exporter data object’s elementary-flow classification attribute to distinguish source classification metadata from runtime elementary-flow tables passed through bonsai-io export tasks.

  • Fixed SimaPro export task.

  • Simplified the legacy carbon-footprint benchmarking scripts by removing unused outlier-analysis helpers and unused imports.

  • FIxed an issue with the unit of nuclear fuels.

Backward Incompatible Changes

  • Cleaned up un-used scripts and tasks related to waste.

  • Removed stale standalone scripts for connector examples, empty household-energy analysis, legacy EXIOBASE v3 waste-use import, and bottled-water production experiments.

Version 0.31.0#

Enhancements

  • Consolidated capital-investment calculation into the capital module

  • Derived country-specific GFCF eligibility from positive intermediate-use links, with CFC fallback allocation and row-total validation.

  • Simplified country and product aggregation with vectorized pandas operations

  • Switched monetary-output calculation to the gap-filled product-price dataset.

  • Added balance-solver status validation and Gurobi solver support, and expanded product-balance coverage for market products.

  • Deprecated _retry mechanism as it intricically cannot overcome local optimum.

Version 0.30.4#

Enhancements

  • Release of version 2.1.7.

  • Standardized elementary-flow substance handling on IndexNames.SUBSTANCE, replacing the emission-specific substance enum across emission generation, recalculation, iLUC, HIOT, and footprint readers.

  • Added harvested crop land-use rows to the recalculated elementary-flow merge, mapping crop occupation to the elementary-flow UUID and converting harvested area to square-meter units.

  • Included recalculated crop CO2 absorption as an upstream input to the merged elementary-flow workflow.

  • Cleaned up obsolete emission-generation helpers and aligned the remaining emission coefficient outputs with the unified elementary-flow substance schema.

  • Updated final-demand footprint selection so gross fixed capital formation is included with other final consumers.

  • Added pasture/meadow land-use recalculation to the post-balance elementary-flow merge, mapping FAOSTAT pasture resources to elementary-flow identifiers and exporting them with the recalculated elementary flows.

  • Moved PPF proportional-output emission coefficient generation into the initial emission-generation stage and wired it before the post-balance PPF emission recalculation task.

  • Renamed the iLUC-augmented elementary-flow artifact from total_abs_emissions_with_iLUC to total_elementary_flow_w_iLUC across footprint, contribution, aggregation, and export readers.

  • Renamed Brightway export metadata output from metadata.json to io_metadata.json.

  • Fixed pasture-land recalculation workflow registration to use the elementary-flow module that owns recalc_pasture_land_use.

  • Removed obsolete IndexNames enum entries that are no longer used by the workflow.

Version 0.30.3#

Enhancements

  • Added the simple PPF generation task, including production-volume and coefficient uncertainty sampling, best-fit distribution metadata, and optional property balancing for generated use, supply, emission, resource, and product-property outputs.

  • Added PPF utility helpers for BONSAI/IPCC schema conversion, code and unit normalization, trade-share aggregation, missing production-volume completion, and constrained property balancing.

  • Ensured PPF product-property outputs are exported whenever available, including datasets without resource outputs, and consolidated the PPF task export path handling.

  • Skipped simple PPF task execution when production-volume or coefficient inputs are empty, and removed the unused shares_df argument from ppf_simple().

  • Updated PPF supply, use, and emission loaders to read the CSV outputs written by the simple PPF task from the clean PPF directory instead of the legacy _BONSAI_data_test resources.

  • Moved simple PPF country iteration into build_simple_ppf(), so task configs no longer need to provide a single country.

  • Switched the bonsai-classifications dependency to install directly from the BONSAI classifications source repository.

  • Documented the remaining hard-coded _BONSAI_data_test Comtrade services input path as pending migration to the bonsai-io resource repository structure.

  • Added a minimal passenger-car share allocation that moves matching A_TLND fuel use into F_HOUS based on available JRC road-transport use by country and fuel.

  • Added a skip_tasks option to workflow multi-task execution so selected tasks can be omitted from run_tasks() and execute() runs.

  • Wired heat-market separation to the cleaned JRC transport fuel-use task so passenger-car fuel allocation uses the workflow-generated BONSUT transport input.

Version 0.30.2#

Enhancements

  • Aligned total_abs_emissions_with_iLUC reads and writes on the shared paths.hiot_interm artifact path across footprint post-processing, contribution analysis, export tasks, and aggregated-account helpers.

  • Kept HIOT final-demand assembly aligned with the hybrid post-balance tables while moving the standalone selection helper into the updated HIOT assembly flow, so direct balanced final-demand exports stay available to downstream export steps.

  • Extended src/bonsai/io/elementary_flows/recalc_elementary_flows.py so the final merge now includes backend property-aware unit conversion for balanced elementary flows and appends a readable substance_name column derived from the BONSAI elementary-flow classification.

  • Updated the direct recalc_elementary_flows.py module entrypoint to run the full balanced elementary-flow regeneration sequence, including fuel-and-wood extraction, before merging outputs.

  • Renamed the iLUC post-processing workflow task from activity-emissions wording to elementary-flow wording.

  • Marked src/bonsai/io/hiot/generate_hiot_for_simapro.py as a legacy path pending replacement by the shared exporter pipeline, and cleaned up unused imports and dead test helpers around version/config fixtures.

Backward Incompatible Changes

  • Changed tier-1 direct elementary-flow contribution rows to use the activity country in contrib code instead of the historical direct marker, aligning direct contribution rows with the regional contribution code shape.

  • Switched src/bonsai/io/monetary_sut/gap_fill_table.py to use bonsai.io.Config instead of the legacy dataio.config.Config, keeping the standalone MSUT gap-filling entrypoint on the package-local configuration API.

  • Removed obsolete test-only config/version fixtures and the legacy _terminated.ipynb helper from the repository as part of the ongoing exporter and workflow cleanup.

Version 0.30.1#

Enhancements

  • Merged balanced resource extraction into the final elementary-flow finalization step while keeping extraction_of_resources_AB as a standalone intermediate export, and now publish the unified balanced elementary-flow artifact as all_elementary_flows_AB_and_BB.

  • Mapped balanced fodder CO2 capture through the BONSAI elementary-flow classification in recalc_elementary_flows, rewired the workflow to use that mapped implementation, and included co2_capture_grass_fodder_AB in the merged all_elementary_flows_AB_and_BB output.

  • Fixed MSUT file discovery so build_msut() matches staged supply files by filename and the downstream monetary SUT import path remains compatible with staged load artifacts.

  • Renamed the Brightway export task input from emissions to elementary_flows in src/bonsai/io/export_tasks.py, aligning the task-layer contract with the full elementary-flow table it passes into bonsai-export.

Backward Incompatible Changes

  • Removed tqdm from src/bonsai/io/util/validate_ecoinvent_helpers.py to simplify the ecoinvent validation helper runtime path.

  • Renamed the balanced final elementary-flow artifact from all_emiss_AB_and_BB to all_elementary_flows_AB_and_BB; downstream readers now consume the unified emissions-plus-resources dataset under the new name.

  • Removed generate_tidy_io.py module in favor of bonsai-export for Brightway2 format export.

  • Code clean-up for maintainability.

Version 0.30.0#

Enhancements

  • Added elementary-flow classification and correspondence API endpoints to schema_enums, and exposed them through classif_repository and corr_repository.

  • Moved elementary-flow mapping for all_emiss_AB_and_BB into merged_parametric_emissions, so the balanced emissions dataset is written with merged "{substance}, {compartment}" correspondence lookup applied at export time.

  • Switched emissions and footprint runtime identifiers from ecoinvent source_id to BONSAI elementary-flow uuid, while keeping source_id only as external mapper metadata in the elementary-flow classification.

  • Kept Accelerated CO2, Air as a temporary BONSAI-specific elementary-flow alias with a FIXME, while other unresolved merged tokens still fail fast.

  • Switched contribution analysis climate characterization to the UUID-keyed LCIA.xlsx lookup used by calculate_ghg_footprint(), so all_emiss_AB_and_BB and total_abs_emissions_with_iLUC remain characterizable after the runtime identifier change.

  • Hardened contribution-side B-matrix normalization for small dense intermediate results produced during direct-emission characterization.

  • Updated export task inputs to pass elementary-flow classification data through to exporters, so UUID-keyed internal emissions can be resolved back to source elementary-flow metadata during export without reintroducing exporter-side flow subsets.

  • Kept exporter-facing elementary-flow identifiers aligned with the internal Exio substance values, while exposing source_id only as auxiliary metadata for external ecoinvent mapping.

  • Aligned SimaPro-facing terminated-emissions inputs with the same raw Exio substance identifier semantics used for direct emissions, so downstream export no longer depends on compartment-qualified hard-coded BONSAI flow keys.

  • Flattened the former emissions and natural_resources code into src/bonsai/io/elementary_flows/ as the new canonical namespace, without changing task ordering or data contracts.

Version 0.29.2#

Enhancements

  • Prefixed Sphinx auto-generated section labels with document names to avoid duplicate autosectionlabel warnings across documentation pages.

  • Adjusted the export task for SimaPro and removed metadata for basic to purchasers’ price, as it is redundant.

  • Refined the Quality Assurance section in docs/methodology.md to clarify the balancing framework, technical constraints, trade-production cross-validation, emissions validation, anomaly screening, and benchmark-based release checks.

  • Other refinement for methodology documentation.

  • Fixed explicit MyST cross-reference targets in docs/methodology.md for methodology section links.

  • Renamed the SimaPro export metadata field from basic_prices to prices in src/bonsai/io/export_tasks.py and the paired exporter input models so the task layer passes the unified price dataset without implying basic-vs-purchaser price semantics.

Backward Incompatible Changes

  • Removed deprecated scripts for maintainability.

Version 0.29.1#

Enhancements

  • Updated src/bonsai/io/export_tasks.py to build explicit Brightway and SimaPro export input bundles instead of passing a path-driven exporter context.

  • Moved Brightway default output-path selection fully into the bonsai-io task layer so exporter input bundles contain only BONSAI source data.

  • Normalized SimaPro basic_prices in the task layer before constructing exporter metadata inputs, keeping export-time data contracts explicit.

  • Expanded docs/methodology.md with a quality-assurance section under data sources, documenting the main validation controls used in src/bonsai/io to support footprint validity.

Version 0.29.0#

Enhancements

  • Split packaging into packages/bonsai-io (core) and packages/bonsai-export (export layer).

  • Added bonsai-export as a runtime dependency and moved SimaPro/Brightway export task registration into src/bonsai/io/task_registration.py.

  • Added src/bonsai/io/export_tasks.py to build exporter context from Config and invoke export converters.

  • Added symmetric editable install workflow for both packages from the monorepo.

  • Updated installation documentation for two-package development setup.

  • Merged onboarding docs into root README.md and renamed docs page slug from readme to getting-started.

  • Migrated test/lint configuration from root setup.cfg into tox.ini.

  • Fixed editable install metadata for packages/bonsai-io and packages/bonsai-export by configuring setuptools-scm to resolve version from the repository root.

  • Removed cross-directory long_description file references in package metadata to satisfy setuptools editable build constraints.

  • Added package-specific SCM tag parsing and CI release rules for independent versioning:

    • bonsai-io-vX.Y.Z

    • bonsai-export-vX.Y.Z

  • Constrained SCM tag discovery for package builds so bonsai-io parses only bonsai-io-v* tags (avoids editable install failures when unrelated tags are present).

  • Migrated historical release notes from docs/CHANGELOG.md into packages/bonsai-io/CHANGELOG.md.

  • Changed docs release notes landing page to a dropdown selector linking to dedicated per-package changelog pages.

  • Reworked release notes docs navigation to use nested toctree pages so package changelogs can appear as navbar submenu entries.

  • Added Brightway2 exporter bw2 as an optional dependency

  • Removed dependency on bonsai-dataio temporarily as a fix to numpy dependency conflict.

  • Updates on documentation.

Backward Incompatible Changes

  • Moved exporter code namespace from bonsai.io.export to bonsai.export.

  • Removed root package build files (setup.cfg, setup.py); repository root is no longer installable.

Version 0.28.5#

Enhancements

  • Tightened activity balance for energy flows.

  • Bugfix related to recycling activities.

  • Bugfix for correspondence table between BONSAI and BACI HS07.

  • Fixed an error in exporting to SimaPro.

  • Improved documentation.

Backward Incompatible Changes

  • Removed unused scripts and functions.

Version 0.28.4#

Enhancements

  • Fixed bug in task dependency.

  • Fixed a bug in by-product modelling related to trade and transport margins.

  • Improved technical constraints and prices.

  • Improved emission coefficients for PPFs.

  • Added benchmark against EDGAR.

  • Fixed bug related to South Africa’s trade account.

  • Bumped Dependency to Numpy 2.0.x.

  • Merged io module with resources module.

  • Added retry mechanism to API client.

Version 0.28.3#

Enhancements

  • Added regional electricity market.

  • Fixed an error in emissions classification that leads to over-estimate of methane emissions.

  • Pre-calibrated SUTs using technical constraints before balance.

  • Re-introduced product balance.

  • Replaces price before balance with price after balance for calculating monetary footprint.

  • Deprecated file-based reference product identification in favor of data from activity classification API.

  • Added a temporary fix for fuel trade.

  • Fixed correspondences for waste treatment.

  • Added final demand node to graph as a special kind of activity node.

  • Added kwargs for Workflow.run_tasks() to enable force_run for Task.run().

Backward Incompatible Changes

  • Removed unused scripts and functions.

  • Migrated functions for constructing symmetric SUT into the same place.

  • Deprecated gapfill_price_w_recipe in favor of direct gapfilling with ML.

Version 0.28.2#

Enhancements

  • Integrated with technical constraint API and outlier detection to enrich technical constraint dataset.

  • Added technical constraints for multiple activities.

  • Adjusted data priority to favor manually collected data over statistical data for price.

  • Improved the price dataset and tightened price constraint.

  • Deprecated flow constraints in favor of variable upper and lower bounds for faster model construction.

  • Other bugfixes in SUT compilation.

  • Added a demo 3-way graph reconciliation utility at src/bonsai/io/balance/graph_opt.py to merge G_base, G_upstream, and G_opt, syncing upstream structure and propagating upstream numeric deltas.

Version 0.28.1#

Enhancements

  • Added technical constraint data.

  • Adjusted the export directory for SimaPro exporter.

  • Merged the input technical constraint and by-product technical constraint dataset.

  • Adjusted prices estimation algorithm for gapfilling.

  • Added price constraints in balancing.

Backward Incompatible Changes

  • Removed unused scripts and functions.

Version 0.28.0#

Enhancements

  • Release BONSAI v2.1.1.

  • Enhanced balance with bounded technical coefficients.

  • Used set for ActivityNode.inflows and ActivityNode.outflows to replace list. Improve performance and memory efficiency (O(1) add/remove)

  • Improved performance of _remove_node using the node’s adjacency sets instead of scanning all flows.

  • Enforced object↔activity-only flow connections in SUTGraph.add_flow.

  • Removed pandas usage for balance model account construction to reduce model build overhead.

  • Added property-level warm-start persistence and reuse for balance model variables.

  • Unified balance graph persistence into a single sutgraph.pkl with warm-start carryover.

  • Sped up inverse assembly by writing directly to a memory-mapped matrix on disk.

  • Moved data clean for The Big Climate Database to lci module.

  • Moved the transformation of rectangular SUT to square SUT to before balance.

  • Added SimaPro exporter.

  • Fixed an issue with by-product market.

  • Simplified symmetric SUT construction.

  • Adjusted the list of extraction activities.

  • Added and revised technical constraint data.

Backward Incompatible Changes

  • Removed unused scripts and functions.

  • Removed some non-essential data tests in favor of in-line data validation.

Version 0.27.0#

Enhancements

  • Bugfix for contribution analysis.

  • Disaggregated contributions from direct elementary flows.

  • Bugfix for market construction.

  • Bugfix for transport and trade margins.

  • Added new tasks for by-product replacing.

  • Added new task for SimaPro-compliant format.

  • Bugfix for zero-footprint in by-product market.

  • Modified approach for household disaggregated footprint.

  • Added method in Matrix to detect circular dependency error.

  • Fixed PathBuilder.prices.

  • Adjusted by-technology modelling approach from market products to industrial products.

  • Fixed mass balance for fertilizer market.

  • Updated prices for FAOSTAT data.

  • Fixed an issue with technical coefficients for sorting activities.

  • Improved documentation of methodology.

Backward Incompatible Changes

  • Removed unused utilities.

  • Removed unused tasks related to market.

  • Deprecated paths.hiot_with_iluc.

Version 0.26.2#

Enhancements

  • Released V2.0.2.

  • Migrated a component of the household-disaggregation pipeline from R to Python.

  • Introduced an aggregated “average household” profile for all countries/regions where detailed household-level disaggregation is available.

  • Bugfix related to intensification of cropland.

  • Bugfix related to waste treatment services.

  • Bugfix related to fertilizer market.

  • Better technological modelling with more technical coefficients.

  • Updated documentation.

Backward Incompatible Changes

  • Deprecated bugfixing task: revise_coproduction_of_pulp_industry, revise_unit_of_waste_services, determine_direct_emissions, scale_up_combustion_activities.

  • Removed ununsed utilities.

Version 0.26.1#

Enhancements

  • Fixed schema change for final demand footprint.

  • Removed partial aggregation in contribution analysis.

  • Other updates for database connection.

Backward Incompatible Changes

  • Cleaned up configuration parameters.

  • Deprecated unused tasks.

Version 0.26.0#

Enhancements

  • Fixed final demand account in generate_fd_b2.

  • Replaced flow_type from activity classification from product to industry.

  • Adjusted create_average_market for flexible monetary market composition.

  • Improved Connector.put for product correspondence.

  • Changes for flexible market and descriptions.

  • Bugfix for nuclear fuel trade.

  • Added transfer coefficient constraints in balance.

  • Added validation against Ecoinvent data.

  • Adjust technical coefficient constraints in balance.

  • Improved documentation for balance.

Backward Incompatible Changes

  • Deprecated generate_hiot_for_simapro.

  • Other deprecations for unused tasks.

Version 0.25.1#

Enhancements

  • Fixed documentation format for glossary.

  • Expanded methodology documentation for sector modelling, balances, and consequential workflows.

  • Expanded methodology overview with inline table of contents and references.

  • Rewrote documentation getting-started guide for environment setup.

  • Improved Node validation.

  • Added SUTGraph.prune to prune invalid nodes.

  • Added on-page feedback buttons to collect quick GitLab reactions.

  • Added footprint validation before loading into database.

Backward Incompatible Changes

  • Removed un-used functions in capital endogenization.

  • Removed un-used tests.

Version 0.25.0#

Enhancements

  • Added parametric constraints in balancing.

  • Bug fix for the task create_average_markets.

  • Improved code readability.

  • Added description field to Node.

  • Improved monetary SUT workflow.

  • Added agent instructions.

  • Improved functionality of Connector.post.

  • Security update.

Backward Incompatible Changes

  • Removed un-used files in documentation.

Version 0.24.4#

Enhancements

  • Added a single task for building domestic mix.

  • Refactored load PPF tasks for batch ingestion.

  • Integrated gapfilling into the workflow.

  • Added trade of services.

  • Improved documentation of PPF integration.

Backward Incompatible Changes

  • Deprecated domestic mix for each product.

Version 0.24.3#

Enhancements

  • Fixed integration of coke in the waste account.

  • Renamed asses_waste_from_stock to calc_waste_stock_variation.

  • Added all accounts for monetary supply and use tables.

  • Fixed task dependencies for MSUT-related tasks.

  • Minor fix for PPF integration documentation.

  • Added load_ppf_emission as a task.

  • Renamed coke related tasks to ppf tasks.

Backward Incompatible Changes

  • Deprecated a few utility functions.

  • Depreacted a few un-used functions in the agriculture module.

Version 0.24.2#

Enhancements

  • Fixed national mix use of coke.

  • Used emission account after balance for footprint.

  • Excluded EXIOBASE monetary trade.

  • Fixed correspondence for cattle meat from Concito.

  • Fixed aluminum recycling by-product.

Backward Incompatible Changes

  • Deprecated task distribute_remaining_use_with_monet_keys.

  • Bugfix for integrating supply of coke PPF.

  • Deprecated un-used utilities.

Version 0.24.1#

Enhancements

  • Fixed monetary use distribution key.

  • Fixed location mapping from EUROSTAT to BONSAI.

  • Refactored integration of PPF supply.

  • Other bugfix and readability update.

Version 0.24.0#

Enhancements

  • Added internal Monetary SUT.

  • Improved workflow dependency.

  • Separated Leontif inverse and footprint calculation.

  • Fixed task for footprint in monetary unit.

  • Other bugfixes and code structure optimization.

Backward Incompatible Changes

  • Deprecated footprint-related tasks.

Version 0.23.4#

Enhancements

  • Added production and final demand footprint for GTP20.

  • Refactored tasks related to FAOSTAT to align with LCI structure.

  • Fixed tasks related to ILUC.

  • Other documentation and code readability update.

Backward Incompatible Changes

  • Deprecated footprint-related tasks.

Version 0.23.3#

Enhancements

  • Added topological sorting for Workflow to avoid duplicated execution of tasks.

  • Fixed task dependency issue.

  • Fixed ryp2 optional package dependency issue.

  • Refactored contribution analysis for product-by-product IOT.

  • Fixed workflow not stop when task fail.

  • Other documentation update

Backward Incompatible Changes

  • Deprecated Task.is_ready().

  • Deprecated Task.visual_task_dependency().

Version 0.23.2#

Enhancements

  • Improved algorithm for by-production technology modelling.

  • Improved algorithm for reference product identification.

  • Integrated household disaggregation into workflow.

  • Improved use table validation.

  • Other bugfixes and documentation.

Backward Incompatible Changes

  • Deprecated BasePaths class in favor of a single PathBuilder.

  • Deprecated generate_prices_for_hiot.

Version 0.23.1#

Enhancements

  • Added price constraints to the balance.

  • Used dataio.resources.ResourceRepository instead of dataio.config.Config for integration.

  • Refactored energy SUT for better clarification between clean and load.

  • Bugfixes for coal-related activities.

  • Updated correspondence from EXIO3 code.

  • Other readability update.

Backward Incompatible Changes

  • Deprecated merge_emissions_account in favor of merge_all_emissions.

  • Removed DEBUG configuration.

  • Removed clean_loc attribute of Config.

Version 0.23.0#

Enhancements

  • New UI for documentation.

  • Refactored the algorithm for final demand footprint/contribution to calculate per capita footprint/contribution.

  • Integrated the first Parametrized production function.

  • Other documentation and code update.

Version 0.22.1#

Enhancements

  • Enhanced the inverse algorithm for cupy-based inversion.

  • Bugfix for reference/by- product list.

  • Switched from numpy to scipy.sparse for the default matrix inverse algorithm.

  • Tested compatibility of critical tasks with Python3.12.

  • Refactored generate_fd_simapro task and renamed it to generate_fd_b2.

Version 0.22.0#

Enhancements

  • Refactored the algorithm for creating the Stone’s market.

  • Refactored the algorithm for squarizing the supply and use table.

  • Enhanced the algorithm for calculating footprint.

  • Enahced the algorithm for creating the b2 Version for HIOT.

Backward Incompatible Changes

  • Adjusted workflow and deprecated few tasks.

Version 0.21.0#

Enhancements

  • Refactored the routine for FAOSTAT data processing

  • Converted BigClimate data into LCI data format

  • Added USGS data cleaning

  • Enhanced algorithm for balancing.

  • Bugfix for Stone’s market.

  • Added classifications package dependency.

  • Documentation update.

Version 0.20.0#

Enhancements

  • Fixed sourcing of new version file when not available.

  • Refactored to use reference product for constraints in co-production.

  • Added sut_resource_repository to Config.

  • Added task to extract energy efficiencies.

  • Enhanced the balance algorithm.

  • Fixed property update for nodes in graph.

  • Added rdflib as a dependency.

  • Added RDF graph implementation to SUTGraph.

  • Refactored task create_stone_market.

Backward Incompatible Changes

  • Deprecated task_status in Task.run method.

Version 0.19.0#

Enhancements

  • Compatibility update for the Workflow and Task class.

  • Bugfix for allocate_FAO_feed and add_by_products_to_market_feed.

  • Disaggregated several activities to fix by-production.

  • Removed unused scripts.

  • Improved documentation on integration of parametrized production function.

  • Added notebook to do country emission comparison.

Version 0.18.6#

Enhancements

  • Enhanced balance algorithm.

  • Added task dependency and its network visualization function in task class.

  • Documentation update.

Version 0.18.5#

Enhancements

  • Enhanced balance algorithm.

  • Upgraded ipopt solver from 3.11 to 3.14.

  • Bugfix for task registration.

  • Documentation update.

Version 0.18.4#

Enhancements

  • Fixed clean_fao_products_transfer_product_coeff.

  • Associated versions with configuration date.

  • Moved version directory to BONSAI_HOME.

  • Improved documentation on integration of parametrized production function.

  • Refactored tasks reltaed to the emission account.

  • Added calculate_output_proportionality_coeff task to estimate by-production proportion.

  • Other documentation update.

Version 0.18.3#

Enhancements

  • Excluded C_MOTO and C_OTRE from balance.

  • Fixed cyclic task dependency among prices, hybrid SUT, and transport. #365

  • Fixed correspondence issue with distribute_agri_products_used_as_seed. #364

  • Fixed an issue with replace_activities_with_markets.

  • Added deprecation warnings for some utility functions.

  • Other code and documentation update.

Backward Incompatible Changes

  • Deprecated creates_initial_use_accounts.

  • Removed exiogen_data_for_distrib_coeffs.py.

Version 0.18.2#

Enhancements

  • Bugfixs for tasks.

  • Removed global market in SUTs.

  • Added tonnes (service) as a property layer for waste treatment service.

  • Updated documentation on methodology and PPF integration

  • Bugfix for feed use estimate.

  • Adjusted gap-filling procedure for price.

  • Added waste stock estimate.

Version 0.18.1#

Enhancements

  • Updated build_hybrid_sut to new workflow and other simplifications.

  • Fixed an issue in monetary SUT build.

  • Updated Task.info and overide Task.__repr__ to use Task.info.

  • Other bugfix and code readability improvement.

  • Updated documentation.

Version 0.18.0#

Enhancements

  • Added task dependencies for all tasks.

  • Upgraded dependency on the transport module to use Transport.distance.

  • Used https connection to fetch the transport package.

  • Finalized the market account and created the first draft for supply and use table before balancing.

  • Added new algorithms to gapfill prices.

  • Added a version folder for the version file.

  • Refactored algorithms related to trade for readability.

Version 0.17.3#

Enhancements

  • Fixed the aggregate_faostat_accounts task.

  • Updated task sequence related to the B2 version.

  • Added to_database attribute to the Config class.

  • Fixed a correspondence error in estimate_ferts_supply_n_property.

  • Fixed a schema error in calculate_ferts_markets.

  • Added automatic identification of task_name with .get_dataframe_with_task in CSVResourceRepository.

  • Added the collect_fao_exchange_rate task.

  • Fixed path error for clean_exio_3.

Backward Incompatible Changes

  • Deprecated log_level and log_handler instance attributes of Config.

Version 0.17.2#

Enhancements

  • Added list_engines method for Matrix.

  • Added dependency for scikit-learn.

  • Fixed error in clean_land_use.

  • Bugfix and other documentation updates.

Backward Incompatible Changes

  • Deprecated ut.report_task in favor of Task.log.

  • Deprecated auto_api for documentation.

Version 0.17.1#

Enhancements

  • Added parallel argument to allow parallelization of route searching.

  • Added dependency to rpy2 for R scripts integration.

  • Fixed an issue in freight market estimation.

  • Modified the method to derive freight rate and inventory cost.

Version 0.17.0#

Enhancements

  • Fixed wrong mapping in price estimation of market products.

  • Added Route to interact with transport package.

  • Added FreightTranport with logit Choice model to estimate transport modal share.

  • Renamed calc_freight_transport_use to calc_freight_use.

  • Added merge_freight_use.

  • Added package use and trade estimate.

  • Refactored market account estimation.

Version 0.16.2#

Enhancements

  • Fixed token setting with paginated results.

  • Uploaded forestry product correspondence to API.

  • Added passenger transport from OECD.

  • Added gapfill tasks for freight transport.

  • Cleaned UN production data.

Version 0.16.1#

Enhancements

  • Removed task related fuel use by transport due to duplication.

  • Added freight transport API fetch from OECD.

  • Estimated freight and passenger transport supply.

  • Deprecated few PathBuilder instance attributes.

  • Added estimate of package supply.

  • Added estimate of treatment activity.

  • Other bug fixes.

Version 0.16.0#

Enhancements

  • Added dependency on the transport package.

  • Fixed token fetch error in DataReader.

  • Modified a validation check in mapping.

  • Added the transport account.

  • Fixed API request error with no-token access.

Version 0.15.1#

Enhancements

  • Added package and residual agricultural product use.

  • Added package waste supply and use.

  • Added example code for classification disaggregation.

  • Updated documentation.

Version 0.15.0#

Enhancements

  • Added token_use configuration to avoid duplicated token-use prompt. #322

  • Moved token setting related methods from Connector to ConnectorFactory.

  • Created a SingletonMeta class for Config to avoid duplicated initiation of configuration.

  • Removed rough code from src/.

Version 0.14.3#

Enhancements

  • Splitted monetary SUT data into distinct accounts.

  • Improved use of classifications.

  • Removed unused task related to monetary distribution coefficients.

  • Removed trade_route module.

  • Added transport module.

Version 0.14.2#

Enhancements

  • Fixed bugs related to PathBuilder.

  • Added tasks to estimate package use and package waste.

  • Added task to aggregate BONSAI back to EXIOBASE.

Backward Incompatible Changes

  • Deprecated few path attributes of PathBuilder.

Version 0.14.1#

Enhancements

  • Automated env var BONSAI_TOKEN setting through user input. #318

  • Added token caching.

  • Added token creating API endpoint into APIEndpoint enum.

  • Deleted deps on frictionless.

  • Fixed Task.run by giving default parameters.

  • Fixed several path instances.

Version 0.14.0#

Enhancements

  • Separated import_MSUTs_n_generates_distr_coeffs into clean_monetary_supply and clean_monetary_use_n_fd.

  • Modified the behavior of PathBuilder.compose so that account_name is no longer mandatory.

  • Added a task to convert BONSAI classification to EXIOBASE classification.

  • Added OS platform specific marker for pypardiso.

  • Added cupy as an optional engine for matrix inverse.

  • Added the Matrix class.

  • Set Python image as 3.11 in CI pipeline.

Version 0.13.1#

Enhancements

  • Replaced several correspondence files with correspondence API.

  • Added draft code to automatically disaggregate package classification.

Version 0.13.0#

Enhancements

  • Started to use APIs for classifications update.

  • Started to use APIs for correspondence mapping.

  • Created an example of interacting with APIs.

  • Added a new API endpoint for property values.

  • Fixed collect_trade_matrix with parquet file streaming.

  • Created a validate module to aggregate all the data validation utilities.

Backward Incompatible Changes

  • Deprecated DataPackage in favor of Resource.

Version 0.12.6#

Enhancements

  • Code readability update.

  • Documentation update.

Version 0.12.5#

Enhancements

  • Modified the schema of the product property account.

  • Replaced csv-based location correspondence with the location correspondence API.

  • Added put method for Connector to update records in APIs.

  • Replaced csv-based activity classification with the activity classification API.

  • Replaced csv-based product unit classifiction with the product classification API.

  • Updated documentation.

Backward Incompatible Changes

  • Deprecated exio_unit in favor of PropertyEnum.

  • Depreacted the use of unit_for_residual_products.xlsx.

Version 0.12.4#

Enhancements

  • Fixed errors in the estimation of global market supply and use.

  • Created a merged product property account.

  • Excluded the item count layer from balance.

  • Added energy content estimation for market products. #312

  • Added fertilizer LCI and nitrogen aborption estimation.

Version 0.12.3#

Enhancements

  • Fixed task dependencies of balance_sut.

  • Added ore, fuel, and extraction and CO2 absorption into the balancing model.

  • Added energy layer into the balancing model.

  • Rename property_of_products to merge_property_of_products.

  • Added resource heat values and calculated energy supplies of resources.

  • Added the squared difference method for objective function setting.

Backward Incompatible Changes

  • Deprecated IndexNames.RESOURCE_NAME in favor of IndexNames.RESOURCE.

Version 0.12.2#

Enhancements

  • Renamed build_sut_for_balancing to build_hybrid_sut.

  • Added convert_sut_to_graph as a seperate task.

  • Added build_monetary_sut as a task to create supply and use tables in monetary units.

  • Added price-derived monetary supply and use table in the balance model.

  • Added resource extensions to the balance. #302

  • Other code readability improvement.

Version 0.12.1#

Enhancements

  • Added emission flows into graph structure.

  • Added emission flows into balancing.

  • Fixed a duplication error in adding .inflows and .outflows to Node.

  • Added calc_prices_market_products and estimate_prices_other_products to fill missing price information.

Version 0.12.0#

Enhancements

  • Refactored the build_sut_for_balancing task.

  • Fixed the merge_emission_accounts task.

  • Improved the performance of validate_graph_balance method of SUTGraph.

  • Used graph as the data structure required by the balance model.

  • Used uuid for node indexing to avoid index collision.

  • Used PathBuilder.compose for balance files.

Version 0.11.5#

Enhancements

  • Fixed the create_one_supply task.

  • Fixed an unit conversion error in waste treatment price. #292

  • Fixed double units for M_eggsl and M_eggpl for the supply table. #293

  • Fixed an error in reading the correspondence of waste market to waste fraction.

  • Added C_CHAR in other_prod_v3_vs_v4.csv correspondence to fix a correspondence error in distrubuting product use.

  • Fixed a correspondence error that causes missing fertilizer supply from China. #299

Backward Incompatible Changes

  • Deprecated PathBuilder.baci_clean.

Version 0.11.4#

Enhancements

  • Added balance constraints for activities

  • Splitted out each layer for balance validation in the validate_node_balance method.

  • Renamed the determine_heat_markets_cons_elec task to separate_heat_n_elec_consumption.

  • Added task dependencies for the energy module and the LCI module.

  • Fixed the clean_IEA_data task.

Backward Incompatible Changes

  • Deprecated PathBuilder.iea_source_data.

Version 0.11.3#

Enhancements

  • Added methodology documentation for by-product modelling, marginal electricity mix and capital endogenization.

  • Added related tasks to methodology sections.

  • Removed duplicated tasks in task registry.

Version 0.11.2#

Enhancements

  • Introduced property layer in the balance problem formulation.

  • Added tasks for packaging coefficient clean, and packing waste calculation.

  • Renamed clean_eurostat_waste to clean_eurostat_waste_treatment.

  • Added tasks to disaggregate residential waste into industrial waste and municipality waste.

  • Added export_graph method to BalanceModel.

  • Added constraints for activity balance but not used because of not able to find an optimum.

Backward Incompatible Changes

  • Deprecated export_results method of BalanceModel.

Version 0.11.1#

Enhancements

  • Added validate_balance to the SUTGraph class for graph-level balance validation.

  • Renamed node-level balance from validate_balance to validate_balance_node.

  • Fixed missing supply in balancing procedure.

  • Refactored validate_balance method to validate balance on multiple properties layers.

Backward Incompatible Changes

  • Deprecated the validate_graph_balance utility function.

  • Deprecated the balance_node method in SUTGraph.

Version 0.11.0#

Enhancements

  • Added the first working balance model.

  • Added closest match suggestion for Workflow.get_task.

  • Finished product balance model and consolidated the workflow for balance.

  • Added a script to analysze balance results.

Version 0.10.5#

Enhancements

  • Added gitlab url for documentations.

  • Fixed documentation errors and warnings from sphinx.

  • Added contribution guideline for Documentation.

  • Added favicon for the docs.

  • Refactored product supply and use balance validation and optimization.

Version 0.10.4#

Enhancements

  • Added BONSAI color scheme for documentation website

Version 0.10.3#

Enhancements

  • Added documentation on land use accounting.

  • Added CI pipeline for automatic documentation creating. #278

  • Added __version__.py to fix version in documentation.

  • Switched to autoapi for automatic API documentation.

  • Fixed cross reference errors in readme.

Version 0.10.2#

Enhancements

  • Added .log method in the Task class.

  • Started to deprecate report_task function.

  • Removed the use of ut.report_task and ut.write_a_report.

  • Added task dependencies for packaging related tasks.

  • Improved docstring for PathBuilder.compose.

Version 0.10.1#

Enhancements

  • Modified the triggering conditions of tasks related to basic price footprint calculation.

  • Cleaned up hiot code related to footprint hybrid and footprint basic price.

  • Moved LCI clean data into clean directory and modified the paths.lci_cleaned attribute of Paths.

  • Moved account list into a persistent storage instead of in the repository to facilitate concurrent writing.

  • Added task dependency for food waste related tasks.

Version 0.10.0#

Enhancements

  • Cleaned up code related to HIOT manipulation.

  • Added deprecation warning to the exio_unit class.

  • Added generate_tidy_io into the workflow.

  • Miscenaneous code refactoring and documentation update.

  • Added Packaging account and tasks related to calculating package coefficients, and waste from packages.

  • Added human metabolism coefficient to calculate waste coefficient from final consumption.

  • Added a task determine_total_waste_of_products to aggregate waste supply account.

  • Added stock degradation function (waste lifetime).

  • Disaggregated waste into industrial waste and municipality waste.

Backward Incompatible Changes

  • Depreacted the create_compact_io task.

  • Renamed calc_hiot_n_footprint to calc_footprint_b1.

  • Renamed utility_exiobase_3.py to util_others.py.

Version 0.9.3#

Enhancements

  • Introduced pypardiso to solve A matrix inversion.

  • Full matrix inversion for b1, iLUC, marginal electricity and capital endogenization version using pypardiso.

  • Improved the algorithm for updating HIOT with marginal electricity mix data.

Version 0.9.2#

Enhancements

  • Created a unified table for transfer coefficients.

  • Created a unified table for waste coefficients.

  • Created a unified table for emission coefficients.

  • Fixed an unit issue in capital endogenization.

  • Bugfix with the import_lci_alcolic_beverage task.

  • Added byproduction of beverage into the Supply table.

  • Add byproduction of feed into the feed market.

  • Fixed an unit issue with the clean_fao_forestry task.

  • Added PropertyEnum to standardize the use of units across the repository.

  • Downgraded account not found infomation in VersionCollection from warning to info.

  • Added direct activation of tasks within the DEBUG mode.

  • Upgraded faostat api to v1.1.1 because the service URL has changed.

  • Added a first version of tidy IO implementation. (Not included in the workflow yet).

Backward Incompatible Changes

  • Moved default settings to the first level of support.

  • Renamed config_data.py as config.py. The Config class will be used for configuration loading in the future.

  • Replaced exio_unit with PropertyEnum.

Version 0.9.1#

Enhancements

  • Refactored waste price estimation and added into task registration.

  • Refactored electricity price estimation and added into task registration.

  • Added task dependencies for price related tasks.

  • Started to deprecate data packages.

  • Integrated BACI data collection into the workflow.

  • Other documentation updates.

Backward Incompatible Changes

  • Deprecated lci_monet_generic attribute for PathBuilder becuase it is same as lci_prod_generic.

  • Modified the default behavoir of the PathBuilder.compose. Now it defaults to get the latest version of an account (Before it is None). To set a no-version path, version_date has to be set as None explicitly.

Version 0.9.0 (Renaming to BONSAI-IO)#

Version 0.8.3#

Enhancements

  • Bugfix for the import_n_clean_IEA_data task. #289

  • Performance improvement for the import_n_clean_IEA_data task.

  • Bugfix for the import_n_convert_un_data task.

  • Consolidated workflow related to UN data.

  • Added a task clean_prices_recycling that derives prices for product recycling. #290

  • Added a task clean_elec_prices that derives electricity prices from ComTrade.

  • Added reference product to energy-related transfer coeffients. #291

  • Bugfix in the generate_market_of_heat task.

  • Bugfix for the clean_fao_forestry task.

  • Added a task calculate_by_production_of_beverage to calculate by-production of beverage and inserted into workflow.

Known issues

  • Missing activity correspondence between IEA and Base classifications causing error in the clean_IEA_data task.

Version 0.8.2#

Enhancements

  • Fixed a bug in testing zeros in the diagonal of hiot_b2_extend.pkl. #285

  • Converted supply use tables into a graph and do a node balance.

  • Fixed an issue in the import_n_clean_IEA_data task.

Version 0.8.1#

Enhancements

  • Fixed bugs related to unit and column name changes when integrating with FAOSTAT API with iLUC model.

  • Improved FAO clean task to accommodate multiple years.

  • Fixed a bug related to PathBuilder.compose. Account source and version source not synchromized when an account is first created.

  • Fixed bug for the calc_tier1_contrib task and improved performance.

  • Added the aggr_tier1_contrib task to aggregate top contributions and post to the database.

  • Added chunk_size to the post method of Connector for lightweighted post.

Version 0.8.0#

Enhancements

  • Improved memory usage for the generate_hiot_simapro task.

  • Fixed a bug in PathBuilder.compose.

  • Added is_downstream_task method for the Task class.

  • Added the stop arugment for Workflow.execute.

  • Fixed the collect_trade_matrix task for FAOSTAT.

Backward Incompatible Changes

  • Renamed the start_from argument of the Workflow.execute method to start.

  • Deprecated Config.exnames.

Version 0.7.2#

  • Added collect_comtrade_trade task. (Known issue: quota exceeding error)

  • Added concat_footprint and calc_tier1_contrib into the workflow.

  • Fixed a bug in PathBuilder.compose.

  • Refactored the contribution analysis for speed.

  • Improved ReadMe document.

Version 0.7.1#

  • Renamed determine_total_demand_of_manure to clean_concito_manure_total.

  • Added sorting for listed groups and tasks in Workflow().list_tasks().

  • Added clean_baci_price into the workflow.

  • Added collect_baci and collect_baci_unzip tasks. (Still not working with clean tasks)

  • Added scripts related to PV life cycle inventories.

  • Fixed bug in fertiliser market availability.

Version 0.7.0#

  • Fixed a bug in the combine_trade_flow task after integrating with faostat API.

  • Refactored distribution of monetary flows from exio3 into the use table.

  • Fixed a bug in merging LCI.

  • Moved calculation of available physical flow from final use table to inital use table.

  • Fixed a bug in generating FAOSTAT clean accounts that generate unintended nan values.

  • Refactored food distribution for the use table.

  • Refactored seed distribution for the use table.

  • Added extensions (Natural resource and value added) to the SimaPro version.

  • Refactored marginal electricity market insertion logic for SimaPro

  • Added Account and AccountRepository classes for accounts data access.

  • Added VersionRepository interface and TXTVersionRepository and APIVersionRepository class to manage version data access logic.

  • Refactored PathBuilder().create method to .compose so that it can compose a path with a given pattern -> /<stage>/<account>/<version_date>/

  • Added a test for Workflow init.

Version 0.6.0#

  • Fixed a bug in url parse in the Resource class.

  • Fixed a bug in the clean_fao_forestry task.

  • Added dependency to the faostat package.

  • Added colleact_faostat related tasks.

Version 0.5.5#

  • Renamed import_baci_for_exiobase to clean_baci_trade.

  • Added clean_baci_w_trade.py in the trade module to bridge the gap between collect and clean BACI data.

  • Added the aggregate_baci task into task graph.

  • Used schema_enums for the combine_trade_flows task.

  • Added waste and production related tasks into the task graph.

  • Added test for hiot market balance.

Version 0.5.4#

  • Upgraded dependecy to Pandas from 2.0.0 to 2.0.3 to resolve redundant warnings.

  • Renamed elaborate_faostat task to aggregate_faostat_accounts and added upstream task dependencies for it.

  • Renamed fao_foresty_data to clean_fao_forestry and added task dependencies for it.

  • Improved the speed of the clean_fao_fishery task.

  • Miscellaneous code refactor for readability improvement.

Version 0.5.3#

  • Fixed a location parse error in Resource.

  • Modularized the construction of use table for easier decomposition.

  • Added clean_AU_waste, clean_eurostat_waste and clean_waste_exio3 tasks.

Version 0.5.2#

  • Fixed a FileNotFound bug in task elaborate_faostat.

  • Fixed a bug in task land_use_extensions.

  • Fixed a query error bug in ResourceRepository.get_from_dataframe method.

  • Fixed an error in FAOSTAT country correspondence in task elaborate_faostat.

Version 0.5.1#

  • Added .upstream_tasks and .downstream_tasks method in the Task class to create task dependency.

  • Added TaskStatus to track the status of tasks in workflow.

  • Workflow().execute() works now.

  • Added tasks dependencies in task registration.

  • Added task .is_ready() check to check the status of a task.

  • BONSAI_HOME can now be set as /path/to/bonsai/_bonsai/ as well.

  • Updated ReadMe docs.

Version 0.5.0#

  • Added Resource and ResourceRepository classes for data resource management.

  • Added CSVResourceRepository and SQLiteResourceRepository for different implementations of a resource repository.

  • Added .resource_repository property for Config.

  • Deprecated ._set_bonsai_root method in PathBuilder. Now the environmental variable BONSAI_HOME is the only way to initiate the workflow.

  • Improved performance for the clean_sua_crop_lives task.

  • Fixed bugs in the trade_route module.

  • Updated docs on data access and quick examples.

Version 0.4.3#

  • Added distribute_IEA_final_consumption_to_activities task to allocate energy across final consumption activities.

  • Optimized sparse data representation to decrease the size of exported datasets.

  • Fixed mapping of IEA heat markets and base activities classification.

  • Fixed an issue in MSUT unit labelling, changing from “euro” to “Meuro”.

  • Miscellaneous bug fix and docs update.

Version 0.4.2#

  • Deprecated exnames in favor of schema_enums.

  • Register all tasks in workflow_main.py to task_registry.

  • Improved documentation for Task.

  • Added .run_tasks() method to run several tasks.

  • Renamed the workflow_main module to task_registration

  • Updated documentation on setting up environmental variable.

  • Wrapped up all tasks into task_registry.

Version 0.4.1#

  • Updated dependence to pandas==2.0 and related code refactoring.

  • Fixed bugs in clean FAOSTAT data.

  • Deprecated paths_exio property for Config.

  • Added deprecation warning to exnames property.

  • Added schema_enums property to replace exnames in the Config class.

  • Added format for Workflow.list_tasks() method for better usability.

  • Fixed a bug in ferlizer cleaning.

  • Added .get_task_info() method for the Workflow class.

Version 0.4.0#

  • Finished first version of the Workflow class and the Task class.

  • Created a new way to register tasks to workflow.

  • Added templates for contributing.

  • Other bug fixs and documentation update.

  • Bumped BONSAI version to 1.1.0

Version 0.3.3#

  • Fixed path error to b2_simapro_version.

  • Miscellaneous code clean up.

Version 0.3.2#

  • Inserted revised LCI data for fertilisers

  • Removed unexpected input of fertilisers into energy/electricity processes

  • Corrected null margins for outputs from multi-functional activities

  • Renamed the exio_names module as schema_enums and decoupled from tasks

  • Added a database level versioning variable DB_VERSION

Version 0.3.1#

  • Added .list_path_attributes method to PathBuilder.

  • Cleaned up utilities from exiobase3.

  • Updated documentation on installation and quick start in Readme.md.

  • Renames capital_invest_mat_rev2.py as capital_invest_mat.py.

  • Added a logging utility: deprecated decorator.

  • Added deprecation warning to Config.paths_exio, ready to replace .paths_exio with .path_repository.

  • Moved report_change_in_versions function to loggings.py for better logging management.

  • Created methodology.md and moved detailed methodology descriptions.

Version 0.3.0#

  • The ExioPaths class is renamed as PathBuilder for generalization of naming.

  • ._path_exio property of the Config class is renamed as _path.

  • version_file argument is deprecated in the PathManager class.

  • .list_parameters() method is added for the Config class for better exploration of the configuration by users.

  • Added task decorator to register tasks to a global register for workflow to find.

  • Added list_tasks and discover_tasks to the Workflow class.

  • Incorporated path creating logic into PathBuilder.

Version 0.2.1#

  • Added a task to aggregate footprint in different units.

Version 0.2.0#

This release introduces significant architectural improvements to the project, focusing on enhancing the workflow execution and configuration management. Key developments include the introduction of a Workflow class for streamlined workflow management and a Config class for centralized configuration handling.

  • Created Workflow class to to orchestrate the execution of tasks, making the workflow process more intuitive and manageable.

  • Restructured the project hierarchy, moving Config and Workflow classes to the first level of import for easier access and better modularity.

  • Other bug fixes.

Version 0.1.0#

  • Packaged the code for the generation of exiobase 2016 tables.

bonsai-export#

Version 0.3.2#

Enhancements

  • Made SimaPro and Brightway export input models accept classification product, activity, and elementary-flow tables directly instead of through a dedicated classification aggregate.

  • Renamed the internal BONSAIData.elementary_flows_frame attribute to elementary_flow_classification so exporter code distinguishes classification metadata from runtime elementary-flow tables.

  • Simplified SimaPro elementary-flow mapping internals by removing redundant resolver methods and keeping classification-driven UUID lookup as the single mapping path.

Version 0.3.1#

Enhancements

  • Renamed BrightwayExportInputs.emissions to BrightwayExportInputs.elementary_flows, keeping the Brightway export API aligned with the elementary-flow table consumed to build the biosphere matrix and metadata.

Version 0.3.0#

Enhancements

  • Replaced the SimaPro exporter’s hard-coded BONSAI flow lookup table with source-driven elementary-flow resolution from classification metadata plus SimaProv94-ecoinventEFv3.7.csv, and aligned both direct and terminated emissions to the raw Exio substance runtime identifiers.

  • Updated exporter release notes to reflect that emissions supplied from bonsai-io may already carry elementary-flow-resolved identifiers produced earlier in the workflow instead of being remapped only at footprint-writing time.

  • Added elementary-flow classification passthrough on exporter input bundles so exporters can resolve internal BONSAI elementary-flow UUIDs back to the human-readable emission names expected by Brightway and SimaPro mapping tables.

  • Restored Brightway biosphere matrix construction for UUID-keyed emissions by resolving exporter-side elementary-flow identifiers before building the biosphere matrix.

  • Switched Brightway biosphere metadata construction from hard-coded flow definitions to elementary-flow source data, so names, units, and compartments are derived directly from the classification payload.

  • Removed exporter-side selected-emission filtering in the Brightway path so all available elementary flows in the BONSAI emissions input are exported.

  • Updated Brightway biosphere matrix and metadata keys to use the raw BONSAI elementary-flow identifiers from Exio substance instead of cleaned flow names, while keeping source classification fields such as source_id in metadata for downstream ecoinvent alignment.

Version 0.2.1#

Enhancements

  • Removed basic_to_purchaser_price from BONSAIData and exporter metadata handling so exporter outputs no longer carry or report that ratio.

Backward Incompatible Changes

  • SimaProMetadataInputs no longer accepts basic_to_purchaser_price.

  • Removed ActivityData.pp.

  • Exporter-generated process metadata now reports only the reference product price and no longer emits purchaser-price text derived from basic_to_purchaser_price.

  • Renamed SimaProMetadataInputs.basic_prices to SimaProMetadataInputs.prices because the exporter now consumes the unified price dataset directly instead of a basic-price-specific input.

Version 0.2.0#

Enhancements

  • Refactored BONSAIData to initialize from explicit in-memory export inputs instead of inferring required datasets from filesystem paths or surrounding project state.

  • Added import-specific typed input bundles for Brightway and SimaPro exports so each export mode declares its required BONSAI datasets up front.

  • Added fail-fast validation for missing required inputs, improving testability and making initialization errors explicit.

  • Moved path-based data loading out of the core exporter initialization path and into the bonsai-io export task layer.

  • Simplified BONSAIData so pass-through inputs such as final_demand_table and normalized basic_prices are stored as plain attributes instead of lazy cached accessors.

  • Removed Brightway output-path handling from export input bundles; output location is now runtime converter/task configuration instead of BONSAI source data.

Backward Incompatible Changes

  • Replaced the path-driven ExportContext initializer in bonsai-export with explicit export input bundles for converter and BONSAIData initialization.

  • SimaProMetadataInputs.basic_prices now expects the normalized lookup dict consumed by the exporter instead of a raw dataframe.

Version 0.1.0#

Enhancements

  • Split exporter into standalone package packages/bonsai-export.

  • Added package-specific versioning with tags bonsai-export-vX.Y.Z.

  • Added CI release job for exporter package builds/publish flow.

  • Replaced bonsai-io Config coupling with a typed export context contract for converters.

Backward Incompatible Changes

  • Exporter import path moved from bonsai.io.export to bonsai.export.

  • Removed bonsai.export.simapro.export_task and bonsai.export.brightway.export_task; export task entrypoints now live in bonsai-io.