Change log

0.2.0 (May 15, 2026)


0.1.1 (August 10, 2024)


0.1.0 (April 28, 2024)


0.0.11 (July 18, 2023)

  • Breaking changes

    • all growth- (i.e. <>_grates) and driving-rates (i.e. <>_drates) variables that were attached to aliases have been removed.

    • economic variables output_taxes and output_taxes_rates have respectively been renamed as contrib_taxes and contrib_taxes_rates in order to fix the ontology. These changes are also reflected at the level of:

      • the example folder, with 1) data related to output taxes on domestic goods being reclassified as sales taxes, 2) relevant tabs’ names being modified accordingly and 3) a worker’s script being aligned consequently at the level of the instantiation of MSystem,

      • library, whose STxRateO2DrivenOTxRate class as been renamed as O2STxRateDrivenCTxRate and relevantly modified,

      • the calculations of the relevant downstream economic variables.

  • Changes

    • greatly — not to say considerably — improve the documentation of most of the library’s classes, and especially that of section A Canonical Use Case.

    • update versions of jax (0.3.14 0.4.11 0.4.13 0.3.25 0.4.13), jaxlib (0.4.11 0.3.25 0.4.11), numpy (1.24.4), scipy (1.10.1) and openpyxl (3.1.2).

    • library’s class CurvedNetPrice has been renamed as PowCurvedNetPrice for the sake of “names representativity”. Such change is potentially a breaking one.

    • core’s variable income_private_circuit_hleoninv has been renamed as income_private_circuit_leoninv since it is not hollow anymore.

    • utilization_rates is not an alias of employment_rates anymore, but a fully specified variable that actually consists of its transpose.

    • net_operating_surplus and gross_operating_surplus have respectively been renamed as markets_rents and indirect_operating_costs so as to protect downstream future axes of generalization as well as for the short-term sake of the ontology.

    • net_operating_costs, gross_sales_revenues and all_source_taxes have respectively been renamed as operating_costs, gross_revenues and indirect_taxes_bdown so as to fix the ontology.

    • economic attribute income_circuit_lsto has been removed, as long as the need does not arise. Such change also propagates to its '<>_grates' and '<>_drates' counterparts.

    • economic attribute income_circuit (as well as all those whose name derives from it) has been renamed as income_private_circuit.

    • economic attribute budget_constraints has been renamed as disposable_incomes, of which it becomes an alias.

    • the example folder’s XLSX file (i.e. ut(KLEM-BRICS-202006).xlsx, copied when resorting to copy_example()) makes use of the feature that consists in defining implicit entities in a recursive fashion. As a result, these entities are no longer involved in tab (arbitrarily) named 'inc-circuit' (which maps to income_private_circuit when getting an instance of MSystem).

    • the method _fancy_moveupper(), added in the previous release, and to which _fancy_connecter() relies in order to sort indexes in such a way that those related to a self-definition are placed first (when served to library’s public methods) is now disabled by default, i.e. behind a boolean parameter set to False by default. This has the direct consequence of nullifying the scalar self-dependence exception.

    • injected variables’ growth and driving rates are not computed anymore.

    • _qualvars_specs (undocumented) has been moved up from MSystem to DSpace.

  • Display adjustment:

    • module-level function display_klem_like_qois() of klem_mixins.py has been modified so that 1) sums are no longer done naively, i.e. by excluding implicit entities beforehand, 2) markup and margin rates are converted where necessary to match those displayed by KLEM.

  • Bug Fixes:

    • consumer_prices hosted erroneous values for entities being only defined at the level of the mappings-keyed sheet. Complying with the YAGNI principle, it henceforth displays zeros instead.

  • New conf’s features

  • New core’s features

  • New library’s features

  • New conf’s feature

    • add NULL_SYM, a symbol whose purpose is precisely to be omitted by the parser when assimilating input data. At the moment, its usefulness only appears within the “mappings” tab, a priori.

  • New utils’s features

  • New test_core’s features


0.0.10 (March 24, 2023)


0.0.9 (March 6, 2023)


0.0.8 (February 22, 2023)

  • New core’s feature

    • the example folder copied when resorting to copy_example() henceforth contains a ‘mixin’ module whose (only implemented) function, namely display_klem_like_qois (undocumented), displays KLEM-like quantities of interest.

  • Changes


0.0.7 (February 21, 2023)


0.0.6 (February 17, 2023)


0.0.5 (February 5, 2023)

  • Deprecations

    • variables suffixed with '<>_nrates', aka “noise variables”, are deprecated. Use their '<>_drates' counterparts instead.

  • Breaking changes

    • economic attribute known as consumed_volumes has been renamed as aggregated_input_volumes for the sake of “names representativity”, although still existing as something else, cf. consumed_volumes.

  • Changes

  • New library’s features

  • New core’s features

    • all constraints are henceforth met relatively, be them involving 0s. Such feature has strong implications in terms of generalization. The possibility of using absolute constraints is preserved though.

    • new static/class-methods: _ndarray_zeros_canceller().

    • generalize the approach regarding how illegal sheets’ names are user-notified.

    • offer the possibility to change entities’ parameters at any step/recursion of the modeling run.

    • library’s classes are henceforth allowed to “side-effect” in a (proactively) XLA-reordering-proof fashion. Such new feature could have justified an increment of the version’s minor number.

  • New utils’s features

    • otbprint() now have the possibility to put JSON-unrepresentable objects aside.


0.0.4 (January 24, 2023)

  • New core’s features

    • smooth objective functions (by avoiding the use of any positivity constraint), which improves performance.


0.0.3 (December 22, 2022)

  • Bug fixes

    • in previous versions, specifying a year (cf DSpace’s instantiation arguments) that was not belonging to _localizations_space ran the program into a (pandas’s induced) RecursionError. This is henceforth controlled and prevented by explicitly soliciting the user’s intervention, incidentally also unit-tested.

  • Changes

    • the example folder’s XLSX file (i.e. ut(KLEM-BRICS-202006).xlsx) is now editable in such a way that pointing to other countries versions is almost 100% automatic. So to speak, the only thing left to do manually is the modification of the behavioral settings. Note that 1) calculation is set to manual mode and 2) pressing F9 is likely to make all targeted data #N/A, in which case you can either specify the source directory of the KLEM file of interest or, even simpler, open it. Do not forget to press F9 again.


0.0.2b (December 19, 2022)

0.0.2 (November 3, 2022)

  • Changes

    • Complete the set of noise variables.


0.0.1 (September 13, 2022)

  • Initiation