Openfisca-core

Latest version: v43.3.5

Safety actively analyzes 723177 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 33 of 66

26.0.0

What this PR brings

An exciting but under-documented feature, "axes", now has much better test coverage and thus long-term maintainability (the documentation is still lacking, but see https://github.com/openfisca/tutorial for demos)

Breaking changes

This PR deprecates the `new_scenario` approach to constructing Simulation objects. This will impact you if:
- your notebooks or scripts or other Python code rely on the France model and use the old form of creating a Simulation object (see below)
- **or** your country package defines a Scenario class and injects it [the way France does](https://github.com/openfisca/openfisca-france/blob/11b18985ce4decc31b5666114b2525dddf42652b/openfisca_france/france_taxbenefitsystem.py#L29)

**To migrate to this version**, if you are in the first case, the minimum required change is this:

*The old way:*

simulation = tax_benefit_system.new_scenario().init_single_entity(...some data...).new_simulation()

*The new way:*

At the top of your file
from openfisca_france.scenarios import init_single_entity
Below
simulation = init_single_entity(tax_benefit_system.new_scenario(), ...some data...).new_simulation()


If you are in the latter case, you must also transform your `init_single_entity` from a Scenario method to a regular function at global scope, and change your tests and reuses as described above.

25.3.4

- Optimize `set_input_dispatch_by_period` so that it doesn't create duplicate vectors in memory

25.3.3

- Bring up the debugger on integration test failures with `openfisca test --pdb` optional argument

25.3.2

- Rename LICENSE.AGPL.txt to LICENSE to let github recognize it

25.3.1

- Outputs a more helpful message when a variable checked in a test doesn't exist
- Introduces unit tests for the test runner

25.3.0

Technical changes

- Allow France to model "Chèque Energie" in a cleaner way:
- Introduce SingleAmountTaxScale (SATS), a simpler form of MarginalAmountTaxScale (MATS)
- whereas MATS sums the values in brackets, up to the amount subject to the scale, SATS only "looks up" the appropriate value for the amount subject to the scale, and is thus the simpler mechanism
- use `numpy.digitize`, allowing callers to specify right or left intervals
- introduce a `type` tag in `brackets` object, thus far with only `single_amount` allowed
- Rename AmountTaxScale to MarginalAmountTaxScale and make it inherit from SATS

This is non-breaking, as there are no direct clients of these classes outside of Core.

Page 33 of 66

Links

Releases

Has known vulnerabilities

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.