OpenFisca-Core 45.0.3__tar.gz → 45.0.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/CHANGELOG.md +99 -87
- {openfisca_core-45.0.3 → openfisca_core-45.0.4/OpenFisca_Core.egg-info}/PKG-INFO +1 -17
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/OpenFisca_Core.egg-info/requires.txt +0 -17
- {openfisca_core-45.0.3/OpenFisca_Core.egg-info → openfisca_core-45.0.4}/PKG-INFO +1 -17
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/commons/formulas.py +3 -3
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/data_storage/on_disk_storage.py +1 -2
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/entities/_core_entity.py +1 -2
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/entities/entity.py +1 -2
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/entities/group_entity.py +2 -3
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/errors/__init__.py +6 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/errors/empty_argument_error.py +5 -5
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/errors/situation_parsing_error.py +1 -2
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/experimental/_memory_config.py +7 -8
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/holders/holder.py +8 -5
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/indexed_enums/enum_array.py +3 -5
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/indexed_enums/types.py +12 -5
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/model_api.py +31 -23
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/parameters/__init__.py +13 -10
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/parameters/config.py +1 -1
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/parameters/parameter_node.py +1 -2
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/parameters/vectorial_parameter_node_at_instant.py +8 -8
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/periods/helpers.py +1 -2
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/periods/instant_.py +3 -3
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/periods/period_.py +1 -2
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/populations/_core_population.py +1 -2
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/populations/types.py +21 -14
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/projectors/helpers.py +1 -2
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/reforms/in_yaml_test_reform.py +1 -2
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/reforms/reform.py +3 -4
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/scripts/remove_fuzzy.py +1 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/simulations/_build_default_simulation.py +2 -4
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/simulations/_type_guards.py +1 -1
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/simulations/simulation.py +11 -9
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/simulations/simulation_builder.py +3 -5
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/simulations/typing.py +29 -28
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/taxbenefitsystems/tax_benefit_system.py +10 -13
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/taxscales/abstract_rate_tax_scale.py +2 -3
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/taxscales/abstract_tax_scale.py +3 -4
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/taxscales/amount_tax_scale_like.py +3 -4
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/taxscales/helpers.py +2 -3
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/taxscales/linear_average_rate_tax_scale.py +2 -3
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/taxscales/marginal_amount_tax_scale.py +1 -1
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/taxscales/marginal_rate_tax_scale.py +3 -4
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/taxscales/rate_tax_scale_like.py +4 -5
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/taxscales/single_amount_tax_scale.py +1 -1
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/taxscales/tax_scale_like.py +4 -5
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/tools/__init__.py +12 -12
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/tools/test_runner.py +15 -17
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/tracers/computation_log.py +2 -4
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/tracers/full_tracer.py +1 -2
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/tracers/performance_log.py +1 -2
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/tracers/tracing_parameter_node_at_instant.py +4 -6
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/types.py +23 -8
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/variables/variable.py +3 -3
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_web_api/errors.py +1 -2
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_web_api/handlers.py +1 -1
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_web_api/loader/spec.py +2 -2
- openfisca_core-45.0.4/pyproject.toml +25 -0
- openfisca_core-45.0.4/setup.cfg +32 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/setup.py +1 -20
- openfisca_core-45.0.3/pyproject.toml +0 -14
- openfisca_core-45.0.3/setup.cfg +0 -96
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/LICENSE +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/MANIFEST.in +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/OpenFisca_Core.egg-info/SOURCES.txt +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/OpenFisca_Core.egg-info/dependency_links.txt +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/OpenFisca_Core.egg-info/entry_points.txt +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/OpenFisca_Core.egg-info/top_level.txt +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/README.md +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/commons/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/commons/dummy.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/commons/misc.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/commons/py.typed +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/commons/rates.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/commons/tests/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/commons/tests/test_dummy.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/commons/tests/test_formulas.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/commons/tests/test_rates.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/data_storage/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/data_storage/in_memory_storage.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/data_storage/types.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/entities/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/entities/_description.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/entities/helpers.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/entities/py.typed +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/entities/role.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/entities/tests/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/entities/tests/test_entity.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/entities/tests/test_group_entity.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/entities/tests/test_role.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/entities/types.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/errors/cycle_error.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/errors/nan_creation_error.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/errors/parameter_not_found_error.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/errors/parameter_parsing_error.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/errors/period_mismatch_error.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/errors/spiral_error.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/errors/variable_name_config_error.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/errors/variable_not_found_error.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/experimental/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/experimental/_errors.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/formula_helpers.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/holders/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/holders/helpers.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/holders/tests/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/holders/tests/test_helpers.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/holders/types.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/indexed_enums/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/indexed_enums/_enum_type.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/indexed_enums/_errors.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/indexed_enums/_guards.py +1 -1
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/indexed_enums/_utils.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/indexed_enums/config.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/indexed_enums/enum.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/indexed_enums/py.typed +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/indexed_enums/tests/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/indexed_enums/tests/test_enum.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/indexed_enums/tests/test_enum_array.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/memory_config.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/parameters/at_instant_like.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/parameters/helpers.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/parameters/parameter.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/parameters/parameter_at_instant.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/parameters/parameter_node_at_instant.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/parameters/parameter_scale.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/parameters/parameter_scale_bracket.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/parameters/values_history.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/periods/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/periods/_errors.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/periods/_parsers.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/periods/config.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/periods/date_unit.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/periods/py.typed +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/periods/tests/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/periods/tests/helpers/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/periods/tests/helpers/test_helpers.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/periods/tests/helpers/test_instant.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/periods/tests/helpers/test_period.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/periods/tests/test_instant.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/periods/tests/test_parsers.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/periods/tests/test_period.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/populations/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/populations/_errors.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/populations/group_population.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/populations/population.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/populations/tests/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/populations/tests/test_members_position.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/projectors/__init__.py +2 -2
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/projectors/entity_to_person_projector.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/projectors/first_person_to_entity_projector.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/projectors/projector.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/projectors/typing.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/projectors/unique_role_to_entity_projector.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/rates.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/reforms/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/scripts/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/scripts/assets/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/scripts/assets/index.html +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/scripts/find_placeholders.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/scripts/measure_numpy_condition_notations.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/scripts/measure_performances.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/scripts/measure_performances_fancy_indexing.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/scripts/migrations/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/scripts/migrations/v16_2_to_v17/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/scripts/migrations/v16_2_to_v17/legislation.xsd +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/scripts/migrations/v16_2_to_v17/xml_to_yaml_country_template.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/scripts/migrations/v16_2_to_v17/xml_to_yaml_extension_template.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/scripts/migrations/v24_to_25.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/scripts/openfisca_command.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/scripts/run_test.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/scripts/simulation_generator.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/simulation_builder.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/simulations/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/simulations/_build_from_variables.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/simulations/helpers.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/taxbenefitsystems/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/taxscales/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/tools/parallel_plugin.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/tools/simulation_dumper.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/tracers/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/tracers/flat_trace.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/tracers/simple_tracer.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/tracers/trace_node.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/variables/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/variables/config.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/variables/helpers.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/variables/tests/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/variables/tests/test_definition_period.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/warnings/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/warnings/libyaml_warning.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/warnings/tempfile_warning.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_web_api/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_web_api/app.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_web_api/loader/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_web_api/loader/entities.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_web_api/loader/parameters.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_web_api/loader/tax_benefit_system.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_web_api/loader/variables.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_web_api/openAPI.yml +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_web_api/scripts/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_web_api/scripts/serve.py +0 -0
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
### 45.0.4 [#1397](https://github.com/openfisca/openfisca-core/pull/1397)
|
|
4
|
+
|
|
5
|
+
#### Technical changes
|
|
6
|
+
|
|
7
|
+
- Replace black, isort, flake8 by ruff
|
|
8
|
+
|
|
3
9
|
### 45.0.3 [#1395](https://github.com/openfisca/openfisca-core/pull/1395)
|
|
4
10
|
|
|
5
11
|
#### Technical changes
|
|
@@ -358,9 +364,11 @@ population simulations, it has been marked as a major release.
|
|
|
358
364
|
```python
|
|
359
365
|
from openfisca_core import indexed_enums as enum
|
|
360
366
|
|
|
367
|
+
|
|
361
368
|
class TestEnum(enum.Enum):
|
|
362
|
-
|
|
363
|
-
|
|
369
|
+
ONE = "one"
|
|
370
|
+
TWO = "two"
|
|
371
|
+
|
|
364
372
|
|
|
365
373
|
TestEnum.encode([2])
|
|
366
374
|
# EnumArray([0])
|
|
@@ -371,14 +379,16 @@ TestEnum.encode([2])
|
|
|
371
379
|
```python
|
|
372
380
|
from openfisca_core import indexed_enums as enum
|
|
373
381
|
|
|
382
|
+
|
|
374
383
|
class TestEnum(enum.Enum):
|
|
375
|
-
|
|
376
|
-
|
|
384
|
+
ONE = "one"
|
|
385
|
+
TWO = "two"
|
|
386
|
+
|
|
377
387
|
|
|
378
388
|
TestEnum.encode([2])
|
|
379
389
|
# EnumArray([])
|
|
380
390
|
|
|
381
|
-
TestEnum.encode([0,1,2,5])
|
|
391
|
+
TestEnum.encode([0, 1, 2, 5])
|
|
382
392
|
# EnumArray([<TestEnum.ONE: 'one'> <TestEnum.TWO: 'two'>])
|
|
383
393
|
```
|
|
384
394
|
|
|
@@ -1738,7 +1748,9 @@ For additional details, see the PR's [description](https://github.com/openfisca/
|
|
|
1738
1748
|
**Before**
|
|
1739
1749
|
|
|
1740
1750
|
```Python
|
|
1741
|
-
simulation = SimulationBuilder().build_from_entities(
|
|
1751
|
+
simulation = SimulationBuilder().build_from_entities(
|
|
1752
|
+
tax_benefit_system, input_data, trace=True
|
|
1753
|
+
)
|
|
1742
1754
|
```
|
|
1743
1755
|
|
|
1744
1756
|
**After**
|
|
@@ -2071,7 +2083,7 @@ Before:
|
|
|
2071
2083
|
|
|
2072
2084
|
```py
|
|
2073
2085
|
simulation = ...
|
|
2074
|
-
holder = simulation.persons.get_holder(
|
|
2086
|
+
holder = simulation.persons.get_holder("salary")
|
|
2075
2087
|
holder.get_known_periods()
|
|
2076
2088
|
```
|
|
2077
2089
|
|
|
@@ -2079,7 +2091,7 @@ After:
|
|
|
2079
2091
|
|
|
2080
2092
|
```py
|
|
2081
2093
|
simulation = ...
|
|
2082
|
-
simulation.get_known_periods(
|
|
2094
|
+
simulation.get_known_periods("salary")
|
|
2083
2095
|
```
|
|
2084
2096
|
|
|
2085
2097
|
## 24.10.0 [#784](https://github.com/openfisca/openfisca-core/pull/784)
|
|
@@ -2090,15 +2102,15 @@ Before:
|
|
|
2090
2102
|
|
|
2091
2103
|
```py
|
|
2092
2104
|
simulation = ...
|
|
2093
|
-
holder = simulation.persons.get_holder(
|
|
2094
|
-
holder.delete_arrays(
|
|
2105
|
+
holder = simulation.persons.get_holder("salary")
|
|
2106
|
+
holder.delete_arrays("2018-08")
|
|
2095
2107
|
```
|
|
2096
2108
|
|
|
2097
2109
|
After:
|
|
2098
2110
|
|
|
2099
2111
|
```py
|
|
2100
2112
|
simulation = ...
|
|
2101
|
-
simulation.delete_arrays(
|
|
2113
|
+
simulation.delete_arrays("salary", "2018-08")
|
|
2102
2114
|
```
|
|
2103
2115
|
|
|
2104
2116
|
### 24.9.9 [#786](https://github.com/openfisca/openfisca-core/pull/786)
|
|
@@ -2270,15 +2282,15 @@ Before:
|
|
|
2270
2282
|
|
|
2271
2283
|
```py
|
|
2272
2284
|
simulation = ...
|
|
2273
|
-
holder = simulation.persons.get_holder(
|
|
2274
|
-
holder.set_input(
|
|
2285
|
+
holder = simulation.persons.get_holder("salary")
|
|
2286
|
+
holder.set_input("2018-08", [4000])
|
|
2275
2287
|
```
|
|
2276
2288
|
|
|
2277
2289
|
After:
|
|
2278
2290
|
|
|
2279
2291
|
```py
|
|
2280
2292
|
simulation = ...
|
|
2281
|
-
simulation.set_input(
|
|
2293
|
+
simulation.set_input("salary", "2018-08", [4000])
|
|
2282
2294
|
```
|
|
2283
2295
|
|
|
2284
2296
|
## 24.4.0 [#717](https://github.com/openfisca/openfisca-core/pull/717)
|
|
@@ -2340,14 +2352,16 @@ Dump:
|
|
|
2340
2352
|
|
|
2341
2353
|
```py
|
|
2342
2354
|
from openfisca_core.tools.simulation_dumper import dump_simulation
|
|
2343
|
-
|
|
2355
|
+
|
|
2356
|
+
dump_simulation(simulation, "/path/to/directory")
|
|
2344
2357
|
```
|
|
2345
2358
|
|
|
2346
2359
|
Restore:
|
|
2347
2360
|
|
|
2348
2361
|
```py
|
|
2349
2362
|
from openfisca_core.tools.simulation_dumper import restore_simulation
|
|
2350
|
-
|
|
2363
|
+
|
|
2364
|
+
simulation = restore_simulation("/path/to/directory", tax_benefit_system)
|
|
2351
2365
|
```
|
|
2352
2366
|
|
|
2353
2367
|
### 24.1.0 [#713](https://github.com/openfisca/openfisca-core/pull/713)
|
|
@@ -2949,21 +2963,17 @@ _Note: the 21.0.1 and 21.0.0 versions have been unpublished due to performance i
|
|
|
2949
2963
|
Before:
|
|
2950
2964
|
|
|
2951
2965
|
```py
|
|
2952
|
-
HOUSING_OCCUPANCY_STATUS = Enum([
|
|
2953
|
-
u'Tenant',
|
|
2954
|
-
u'Owner',
|
|
2955
|
-
u'Free lodger',
|
|
2956
|
-
u'Homeless'])
|
|
2966
|
+
HOUSING_OCCUPANCY_STATUS = Enum(["Tenant", "Owner", "Free lodger", "Homeless"])
|
|
2957
2967
|
```
|
|
2958
2968
|
|
|
2959
2969
|
Now:
|
|
2960
2970
|
|
|
2961
2971
|
```py
|
|
2962
2972
|
class HousingOccupancyStatus(Enum):
|
|
2963
|
-
tenant =
|
|
2964
|
-
owner =
|
|
2965
|
-
free_lodger =
|
|
2966
|
-
homeless =
|
|
2973
|
+
tenant = "Tenant"
|
|
2974
|
+
owner = "Owner"
|
|
2975
|
+
free_lodger = "Free lodger"
|
|
2976
|
+
homeless = "Homeless"
|
|
2967
2977
|
```
|
|
2968
2978
|
|
|
2969
2979
|
> Each Enum item has:
|
|
@@ -2974,11 +2984,11 @@ class HousingOccupancyStatus(Enum):
|
|
|
2974
2984
|
|
|
2975
2985
|
```py
|
|
2976
2986
|
class housing_occupancy_status(Variable):
|
|
2977
|
-
possible_values = HousingOccupancyStatus,
|
|
2987
|
+
possible_values = (HousingOccupancyStatus,)
|
|
2978
2988
|
default_value = HousingOccupancyStatus.tenant
|
|
2979
2989
|
entity = Household
|
|
2980
2990
|
definition_period = MONTH
|
|
2981
|
-
label =
|
|
2991
|
+
label = "Legal housing situation of the household concerning their main residence"
|
|
2982
2992
|
```
|
|
2983
2993
|
|
|
2984
2994
|
|
|
@@ -3023,11 +3033,11 @@ class housing_occupancy_status(Variable):
|
|
|
3023
3033
|
|
|
3024
3034
|
> Example:
|
|
3025
3035
|
```py
|
|
3026
|
-
holder = simulation.household.get_holder(
|
|
3036
|
+
holder = simulation.household.get_holder("housing_occupancy_status")
|
|
3027
3037
|
# Three possibilities
|
|
3028
3038
|
holder.set_input(period, numpy.asarray([HousingOccupancyStatus.owner]))
|
|
3029
|
-
holder.set_input(period, numpy.asarray([
|
|
3030
|
-
holder.set_input(period, numpy.asarray([0]))
|
|
3039
|
+
holder.set_input(period, numpy.asarray(["owner"]))
|
|
3040
|
+
holder.set_input(period, numpy.asarray([0])) # Highly not recommended
|
|
3031
3041
|
```
|
|
3032
3042
|
|
|
3033
3043
|
- When calculating an Enum variable, the output will be an [EnumArray](https://openfisca.org/doc/openfisca-python-api/enum_array.html#module-openfisca_core.indexed_enums).
|
|
@@ -3073,7 +3083,7 @@ Before:
|
|
|
3073
3083
|
|
|
3074
3084
|
```py
|
|
3075
3085
|
class is_citizen(Variable):
|
|
3076
|
-
column = BoolCol(default
|
|
3086
|
+
column = BoolCol(default=True)
|
|
3077
3087
|
entity = Person
|
|
3078
3088
|
definition_period = MONTH
|
|
3079
3089
|
label = "Whether the person is a citizen"
|
|
@@ -3096,9 +3106,9 @@ Before:
|
|
|
3096
3106
|
|
|
3097
3107
|
```py
|
|
3098
3108
|
class zipcode(Variable):
|
|
3099
|
-
column = FixedStrCol(max_length
|
|
3109
|
+
column = FixedStrCol(max_length=5)
|
|
3100
3110
|
entity = Menage
|
|
3101
|
-
label =
|
|
3111
|
+
label = "Code INSEE (depcom) du lieu de résidence"
|
|
3102
3112
|
definition_period = MONTH
|
|
3103
3113
|
```
|
|
3104
3114
|
|
|
@@ -3109,7 +3119,7 @@ class zipcode(Variable):
|
|
|
3109
3119
|
value_type = str
|
|
3110
3120
|
max_length = 5
|
|
3111
3121
|
entity = Menage
|
|
3112
|
-
label =
|
|
3122
|
+
label = "Code INSEE (depcom) du lieu de résidence"
|
|
3113
3123
|
definition_period = MONTH
|
|
3114
3124
|
```
|
|
3115
3125
|
|
|
@@ -3119,16 +3129,10 @@ Before:
|
|
|
3119
3129
|
|
|
3120
3130
|
```py
|
|
3121
3131
|
class housing_occupancy_status(Variable):
|
|
3122
|
-
column = EnumCol(
|
|
3123
|
-
enum = Enum([
|
|
3124
|
-
u'Tenant',
|
|
3125
|
-
u'Owner',
|
|
3126
|
-
u'Free lodger',
|
|
3127
|
-
u'Homeless'])
|
|
3128
|
-
)
|
|
3132
|
+
column = EnumCol(enum=Enum(["Tenant", "Owner", "Free lodger", "Homeless"]))
|
|
3129
3133
|
entity = Household
|
|
3130
3134
|
definition_period = MONTH
|
|
3131
|
-
label =
|
|
3135
|
+
label = "Legal housing situation of the household concerning their main residence"
|
|
3132
3136
|
```
|
|
3133
3137
|
|
|
3134
3138
|
After:
|
|
@@ -3136,15 +3140,10 @@ After:
|
|
|
3136
3140
|
```py
|
|
3137
3141
|
class housing_occupancy_status(Variable):
|
|
3138
3142
|
value_type = Enum
|
|
3139
|
-
possible_values = Enum([
|
|
3140
|
-
u'Tenant',
|
|
3141
|
-
u'Owner',
|
|
3142
|
-
u'Free lodger',
|
|
3143
|
-
u'Homeless'
|
|
3144
|
-
])
|
|
3143
|
+
possible_values = Enum(["Tenant", "Owner", "Free lodger", "Homeless"])
|
|
3145
3144
|
entity = Household
|
|
3146
3145
|
definition_period = MONTH
|
|
3147
|
-
label =
|
|
3146
|
+
label = "Legal housing situation of the household concerning their main residence"
|
|
3148
3147
|
```
|
|
3149
3148
|
|
|
3150
3149
|
- Remove `PeriodSizeIndependentIntCol`:
|
|
@@ -3397,15 +3396,15 @@ For more information, check the [documentation](https://openfisca.org/doc/coding
|
|
|
3397
3396
|
- Before:
|
|
3398
3397
|
```python
|
|
3399
3398
|
new_legislation_parameters = update_legislation(
|
|
3400
|
-
legislation_json
|
|
3401
|
-
path
|
|
3402
|
-
period
|
|
3403
|
-
value
|
|
3404
|
-
|
|
3399
|
+
legislation_json=original_legislation_parameters,
|
|
3400
|
+
path=("children", "impot_revenu", "children", "bareme", "brackets", 1, "threshold"),
|
|
3401
|
+
period=reform_period,
|
|
3402
|
+
value=6011,
|
|
3403
|
+
)
|
|
3405
3404
|
```
|
|
3406
3405
|
- Now:
|
|
3407
3406
|
```python
|
|
3408
|
-
parameters.impot_revenu.bareme[1].threshold.update(period
|
|
3407
|
+
parameters.impot_revenu.bareme[1].threshold.update(period=reform_period, value=6011)
|
|
3409
3408
|
```
|
|
3410
3409
|
|
|
3411
3410
|
* Change the syntax to dynamically create new parameters
|
|
@@ -3421,45 +3420,54 @@ For more information, check the [documentation](https://openfisca.org/doc/coding
|
|
|
3421
3420
|
"format": "integer",
|
|
3422
3421
|
"unit": "currency",
|
|
3423
3422
|
"values": [
|
|
3424
|
-
{
|
|
3425
|
-
|
|
3426
|
-
|
|
3427
|
-
|
|
3423
|
+
{
|
|
3424
|
+
"start": "2016-01-01",
|
|
3425
|
+
},
|
|
3426
|
+
{"start": "2015-01-01", "value": round(1135 * (1 + inflation))},
|
|
3427
|
+
],
|
|
3428
|
+
},
|
|
3428
3429
|
"decote_seuil_couple": {
|
|
3429
3430
|
"@type": "Parameter",
|
|
3430
3431
|
"description": "Seuil de la décôte pour un couple",
|
|
3431
3432
|
"format": "integer",
|
|
3432
3433
|
"unit": "currency",
|
|
3433
3434
|
"values": [
|
|
3434
|
-
{
|
|
3435
|
-
|
|
3436
|
-
|
|
3437
|
-
|
|
3435
|
+
{
|
|
3436
|
+
"start": "2065-01-01",
|
|
3437
|
+
},
|
|
3438
|
+
{"start": "2015-01-01", "value": round(1870 * (1 + inflation))},
|
|
3439
|
+
],
|
|
3438
3440
|
},
|
|
3439
|
-
}
|
|
3440
|
-
|
|
3441
|
+
},
|
|
3442
|
+
}
|
|
3443
|
+
reference_legislation_copy["children"]["plf2016_conterfactual"] = (
|
|
3444
|
+
reform_legislation_subtree
|
|
3445
|
+
)
|
|
3441
3446
|
```
|
|
3442
3447
|
|
|
3443
3448
|
- Now:
|
|
3444
3449
|
```python
|
|
3445
3450
|
from openfisca_core.parameters import ParameterNode
|
|
3446
3451
|
|
|
3447
|
-
inflation = .001
|
|
3448
|
-
reform_parameters_subtree = ParameterNode(
|
|
3449
|
-
|
|
3450
|
-
|
|
3451
|
-
"
|
|
3452
|
-
|
|
3453
|
-
|
|
3454
|
-
|
|
3455
|
-
|
|
3456
|
-
|
|
3457
|
-
"
|
|
3458
|
-
|
|
3459
|
-
|
|
3460
|
-
|
|
3461
|
-
|
|
3462
|
-
|
|
3452
|
+
inflation = 0.001
|
|
3453
|
+
reform_parameters_subtree = ParameterNode(
|
|
3454
|
+
"plf2016_conterfactual",
|
|
3455
|
+
data={
|
|
3456
|
+
"decote_seuil_celib": {
|
|
3457
|
+
"values": {
|
|
3458
|
+
"2015-01-01": {"value": round(1135 * (1 + inflation))},
|
|
3459
|
+
"2016-01-01": {"value": None},
|
|
3460
|
+
}
|
|
3461
|
+
},
|
|
3462
|
+
"decote_seuil_couple": {
|
|
3463
|
+
"values": {
|
|
3464
|
+
"2015-01-01": {"value": round(1870 * (1 + inflation))},
|
|
3465
|
+
"2065-01-01": {"value": None},
|
|
3466
|
+
}
|
|
3467
|
+
},
|
|
3468
|
+
},
|
|
3469
|
+
)
|
|
3470
|
+
reference_parameters.add_child("plf2016_conterfactual", reform_parameters_subtree)
|
|
3463
3471
|
```
|
|
3464
3472
|
|
|
3465
3473
|
- Note that this way of creating parameters is only recommended when using dynamically computed values (for instance `round(1135 * (1 + inflation))` in the previous example). If the values are static, the new parameters can be directly built from YAML (See New features section).
|
|
@@ -3500,12 +3508,14 @@ For more information, check the [documentation](https://openfisca.org/doc/coding
|
|
|
3500
3508
|
|
|
3501
3509
|
dir_path = os.path.dirname(__file__)
|
|
3502
3510
|
|
|
3511
|
+
|
|
3503
3512
|
def reform_modify_parameters(parameters):
|
|
3504
|
-
file_path = os.path.join(dir_path,
|
|
3505
|
-
reform_parameters_subtree = load_parameter_file(name
|
|
3506
|
-
parameters.add_child(
|
|
3513
|
+
file_path = os.path.join(dir_path, "plf2016.yaml")
|
|
3514
|
+
reform_parameters_subtree = load_parameter_file(name="plf2016", file_path=file_path)
|
|
3515
|
+
parameters.add_child("plf2016", reform_parameters_subtree)
|
|
3507
3516
|
return parameters
|
|
3508
3517
|
|
|
3518
|
+
|
|
3509
3519
|
...
|
|
3510
3520
|
```
|
|
3511
3521
|
|
|
@@ -4105,9 +4115,11 @@ Unlike simple formulas, a `DatedVariable` have several functions. We thus need t
|
|
|
4105
4115
|
Examples:
|
|
4106
4116
|
```python
|
|
4107
4117
|
simulation = scenario.new_simulation(trace=True)
|
|
4108
|
-
simulation.calculate(
|
|
4109
|
-
simulation.calculate(
|
|
4110
|
-
simulation.calculate(
|
|
4118
|
+
simulation.calculate("irpp", 2014, print_trace=True)
|
|
4119
|
+
simulation.calculate("irpp", 2014, print_trace=True, max_depth=-1)
|
|
4120
|
+
simulation.calculate(
|
|
4121
|
+
"irpp", 2014, print_trace=True, max_depth=-1, show_default_values=False
|
|
4122
|
+
)
|
|
4111
4123
|
```
|
|
4112
4124
|
|
|
4113
4125
|
## 2.1.0 – [diff](https://github.com/openfisca/openfisca-core/compare/2.0.3...2.0.4)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: OpenFisca-Core
|
|
3
|
-
Version: 45.0.
|
|
3
|
+
Version: 45.0.4
|
|
4
4
|
Summary: A versatile microsimulation free software
|
|
5
5
|
Home-page: https://github.com/openfisca/openfisca-core
|
|
6
6
|
Author: OpenFisca Team
|
|
@@ -35,37 +35,21 @@ Requires-Dist: Flask-Cors<4.0,>=3.0.10; extra == "web-api"
|
|
|
35
35
|
Requires-Dist: gunicorn<22.0,>=21.0; extra == "web-api"
|
|
36
36
|
Requires-Dist: Werkzeug<4.0,>=2.2.3; extra == "web-api"
|
|
37
37
|
Provides-Extra: dev
|
|
38
|
-
Requires-Dist: black<25.0,>=24.8.0; extra == "dev"
|
|
39
38
|
Requires-Dist: codespell<3.0,>=2.3.0; extra == "dev"
|
|
40
39
|
Requires-Dist: colorama<0.5,>=0.4.4; extra == "dev"
|
|
41
|
-
Requires-Dist: darglint<2.0,>=1.8.1; extra == "dev"
|
|
42
|
-
Requires-Dist: flake8<8.0.0,>=7.1.1; extra == "dev"
|
|
43
|
-
Requires-Dist: flake8-bugbear<25.0,>=24.8.19; extra == "dev"
|
|
44
|
-
Requires-Dist: flake8-docstrings<2.0,>=1.7.0; extra == "dev"
|
|
45
|
-
Requires-Dist: flake8-print<6.0,>=5.0.0; extra == "dev"
|
|
46
|
-
Requires-Dist: flake8-rst-docstrings<0.4.0,>=0.3.0; extra == "dev"
|
|
47
|
-
Requires-Dist: idna<4.0,>=3.10; extra == "dev"
|
|
48
|
-
Requires-Dist: isort<6.0,>=5.13.2; extra == "dev"
|
|
49
40
|
Requires-Dist: mypy<2.0,>=1.11.2; extra == "dev"
|
|
50
41
|
Requires-Dist: openapi-spec-validator<0.8.0,>=0.7.1; extra == "dev"
|
|
51
|
-
Requires-Dist: pylint<4.0,>=3.3.1; extra == "dev"
|
|
52
|
-
Requires-Dist: pylint-per-file-ignores<2.0,>=1.3.2; extra == "dev"
|
|
53
|
-
Requires-Dist: pyright<2.0,>=1.1.382; extra == "dev"
|
|
54
42
|
Requires-Dist: ruff<1.0,>=0.6.9; extra == "dev"
|
|
55
|
-
Requires-Dist: ruff-lsp<1.0,>=0.0.57; extra == "dev"
|
|
56
43
|
Requires-Dist: Flask<4.0,>=2.2.3; extra == "dev"
|
|
57
44
|
Requires-Dist: Flask-Cors<4.0,>=3.0.10; extra == "dev"
|
|
58
45
|
Requires-Dist: gunicorn<22.0,>=21.0; extra == "dev"
|
|
59
46
|
Requires-Dist: Werkzeug<4.0,>=2.2.3; extra == "dev"
|
|
60
|
-
Requires-Dist: openpyxl<4.0,>=3.1.2; extra == "dev"
|
|
61
47
|
Provides-Extra: ci
|
|
62
48
|
Requires-Dist: build<0.11.0,>=0.10.0; extra == "ci"
|
|
63
49
|
Requires-Dist: twine<7.0,>=6.0; extra == "ci"
|
|
64
50
|
Requires-Dist: wheel<0.41.0,>=0.40.0; extra == "ci"
|
|
65
51
|
Provides-Extra: tracker
|
|
66
52
|
Requires-Dist: OpenFisca-Tracker<0.5.0,>=0.4.0; extra == "tracker"
|
|
67
|
-
Provides-Extra: excel
|
|
68
|
-
Requires-Dist: openpyxl<4.0,>=3.1.2; extra == "excel"
|
|
69
53
|
Dynamic: author
|
|
70
54
|
Dynamic: author-email
|
|
71
55
|
Dynamic: classifier
|
|
@@ -23,32 +23,15 @@ twine<7.0,>=6.0
|
|
|
23
23
|
wheel<0.41.0,>=0.40.0
|
|
24
24
|
|
|
25
25
|
[dev]
|
|
26
|
-
black<25.0,>=24.8.0
|
|
27
26
|
codespell<3.0,>=2.3.0
|
|
28
27
|
colorama<0.5,>=0.4.4
|
|
29
|
-
darglint<2.0,>=1.8.1
|
|
30
|
-
flake8<8.0.0,>=7.1.1
|
|
31
|
-
flake8-bugbear<25.0,>=24.8.19
|
|
32
|
-
flake8-docstrings<2.0,>=1.7.0
|
|
33
|
-
flake8-print<6.0,>=5.0.0
|
|
34
|
-
flake8-rst-docstrings<0.4.0,>=0.3.0
|
|
35
|
-
idna<4.0,>=3.10
|
|
36
|
-
isort<6.0,>=5.13.2
|
|
37
28
|
mypy<2.0,>=1.11.2
|
|
38
29
|
openapi-spec-validator<0.8.0,>=0.7.1
|
|
39
|
-
pylint<4.0,>=3.3.1
|
|
40
|
-
pylint-per-file-ignores<2.0,>=1.3.2
|
|
41
|
-
pyright<2.0,>=1.1.382
|
|
42
30
|
ruff<1.0,>=0.6.9
|
|
43
|
-
ruff-lsp<1.0,>=0.0.57
|
|
44
31
|
Flask<4.0,>=2.2.3
|
|
45
32
|
Flask-Cors<4.0,>=3.0.10
|
|
46
33
|
gunicorn<22.0,>=21.0
|
|
47
34
|
Werkzeug<4.0,>=2.2.3
|
|
48
|
-
openpyxl<4.0,>=3.1.2
|
|
49
|
-
|
|
50
|
-
[excel]
|
|
51
|
-
openpyxl<4.0,>=3.1.2
|
|
52
35
|
|
|
53
36
|
[tracker]
|
|
54
37
|
OpenFisca-Tracker<0.5.0,>=0.4.0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: OpenFisca-Core
|
|
3
|
-
Version: 45.0.
|
|
3
|
+
Version: 45.0.4
|
|
4
4
|
Summary: A versatile microsimulation free software
|
|
5
5
|
Home-page: https://github.com/openfisca/openfisca-core
|
|
6
6
|
Author: OpenFisca Team
|
|
@@ -35,37 +35,21 @@ Requires-Dist: Flask-Cors<4.0,>=3.0.10; extra == "web-api"
|
|
|
35
35
|
Requires-Dist: gunicorn<22.0,>=21.0; extra == "web-api"
|
|
36
36
|
Requires-Dist: Werkzeug<4.0,>=2.2.3; extra == "web-api"
|
|
37
37
|
Provides-Extra: dev
|
|
38
|
-
Requires-Dist: black<25.0,>=24.8.0; extra == "dev"
|
|
39
38
|
Requires-Dist: codespell<3.0,>=2.3.0; extra == "dev"
|
|
40
39
|
Requires-Dist: colorama<0.5,>=0.4.4; extra == "dev"
|
|
41
|
-
Requires-Dist: darglint<2.0,>=1.8.1; extra == "dev"
|
|
42
|
-
Requires-Dist: flake8<8.0.0,>=7.1.1; extra == "dev"
|
|
43
|
-
Requires-Dist: flake8-bugbear<25.0,>=24.8.19; extra == "dev"
|
|
44
|
-
Requires-Dist: flake8-docstrings<2.0,>=1.7.0; extra == "dev"
|
|
45
|
-
Requires-Dist: flake8-print<6.0,>=5.0.0; extra == "dev"
|
|
46
|
-
Requires-Dist: flake8-rst-docstrings<0.4.0,>=0.3.0; extra == "dev"
|
|
47
|
-
Requires-Dist: idna<4.0,>=3.10; extra == "dev"
|
|
48
|
-
Requires-Dist: isort<6.0,>=5.13.2; extra == "dev"
|
|
49
40
|
Requires-Dist: mypy<2.0,>=1.11.2; extra == "dev"
|
|
50
41
|
Requires-Dist: openapi-spec-validator<0.8.0,>=0.7.1; extra == "dev"
|
|
51
|
-
Requires-Dist: pylint<4.0,>=3.3.1; extra == "dev"
|
|
52
|
-
Requires-Dist: pylint-per-file-ignores<2.0,>=1.3.2; extra == "dev"
|
|
53
|
-
Requires-Dist: pyright<2.0,>=1.1.382; extra == "dev"
|
|
54
42
|
Requires-Dist: ruff<1.0,>=0.6.9; extra == "dev"
|
|
55
|
-
Requires-Dist: ruff-lsp<1.0,>=0.0.57; extra == "dev"
|
|
56
43
|
Requires-Dist: Flask<4.0,>=2.2.3; extra == "dev"
|
|
57
44
|
Requires-Dist: Flask-Cors<4.0,>=3.0.10; extra == "dev"
|
|
58
45
|
Requires-Dist: gunicorn<22.0,>=21.0; extra == "dev"
|
|
59
46
|
Requires-Dist: Werkzeug<4.0,>=2.2.3; extra == "dev"
|
|
60
|
-
Requires-Dist: openpyxl<4.0,>=3.1.2; extra == "dev"
|
|
61
47
|
Provides-Extra: ci
|
|
62
48
|
Requires-Dist: build<0.11.0,>=0.10.0; extra == "ci"
|
|
63
49
|
Requires-Dist: twine<7.0,>=6.0; extra == "ci"
|
|
64
50
|
Requires-Dist: wheel<0.41.0,>=0.40.0; extra == "ci"
|
|
65
51
|
Provides-Extra: tracker
|
|
66
52
|
Requires-Dist: OpenFisca-Tracker<0.5.0,>=0.4.0; extra == "tracker"
|
|
67
|
-
Provides-Extra: excel
|
|
68
|
-
Requires-Dist: openpyxl<4.0,>=3.1.2; extra == "excel"
|
|
69
53
|
Dynamic: author
|
|
70
54
|
Dynamic: author-email
|
|
71
55
|
Dynamic: classifier
|
|
@@ -109,9 +109,9 @@ def switch(
|
|
|
109
109
|
array([80, 80, 80, 90])
|
|
110
110
|
|
|
111
111
|
"""
|
|
112
|
-
assert (
|
|
113
|
-
|
|
114
|
-
)
|
|
112
|
+
assert len(value_by_condition) > 0, (
|
|
113
|
+
"'switch' must be called with at least one value."
|
|
114
|
+
)
|
|
115
115
|
|
|
116
116
|
condlist = [conditions == condition for condition in value_by_condition]
|
|
117
117
|
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
-
from collections.abc import Iterable, Sequence
|
|
4
|
-
from typing import ClassVar
|
|
5
|
-
|
|
6
3
|
import textwrap
|
|
4
|
+
from collections.abc import Iterable, Sequence
|
|
7
5
|
from itertools import chain
|
|
6
|
+
from typing import ClassVar
|
|
8
7
|
|
|
9
8
|
from . import types as t
|
|
10
9
|
from ._core_entity import CoreEntity
|
|
@@ -26,6 +26,8 @@ from .empty_argument_error import EmptyArgumentError
|
|
|
26
26
|
from .nan_creation_error import NaNCreationError
|
|
27
27
|
from .parameter_not_found_error import (
|
|
28
28
|
ParameterNotFoundError,
|
|
29
|
+
)
|
|
30
|
+
from .parameter_not_found_error import (
|
|
29
31
|
ParameterNotFoundError as ParameterNotFound,
|
|
30
32
|
)
|
|
31
33
|
from .parameter_parsing_error import ParameterParsingError
|
|
@@ -34,10 +36,14 @@ from .situation_parsing_error import SituationParsingError
|
|
|
34
36
|
from .spiral_error import SpiralError
|
|
35
37
|
from .variable_name_config_error import (
|
|
36
38
|
VariableNameConflictError,
|
|
39
|
+
)
|
|
40
|
+
from .variable_name_config_error import (
|
|
37
41
|
VariableNameConflictError as VariableNameConflict,
|
|
38
42
|
)
|
|
39
43
|
from .variable_not_found_error import (
|
|
40
44
|
VariableNotFoundError,
|
|
45
|
+
)
|
|
46
|
+
from .variable_not_found_error import (
|
|
41
47
|
VariableNotFoundError as VariableNotFound,
|
|
42
48
|
)
|
|
43
49
|
|
{openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/errors/empty_argument_error.py
RENAMED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import typing
|
|
2
|
-
|
|
3
1
|
import os
|
|
4
2
|
import traceback
|
|
5
3
|
|
|
@@ -16,7 +14,7 @@ class EmptyArgumentError(IndexError):
|
|
|
16
14
|
class_name: str,
|
|
17
15
|
method_name: str,
|
|
18
16
|
arg_name: str,
|
|
19
|
-
arg_value:
|
|
17
|
+
arg_value: list | numpy.ndarray,
|
|
20
18
|
) -> None:
|
|
21
19
|
message = [
|
|
22
20
|
f"'{class_name}.{method_name}' can't be run with an empty '{arg_name}':\n",
|
|
@@ -24,8 +22,10 @@ class EmptyArgumentError(IndexError):
|
|
|
24
22
|
f"{arg_value}\n",
|
|
25
23
|
"Here are some hints to help you get this working:\n",
|
|
26
24
|
f"- Check that '{class_name}' isn't empty (see '{class_name}.add_bracket')",
|
|
27
|
-
|
|
28
|
-
|
|
25
|
+
(
|
|
26
|
+
f"- Check that '{arg_name}' is being properly assigned "
|
|
27
|
+
f"('{arg_name}' should be a non empty '{type(arg_value).__name__}')\n"
|
|
28
|
+
),
|
|
29
29
|
"For further support, please do not hesitate to:\n",
|
|
30
30
|
"- Take a look at the official documentation https://openfisca.org/doc",
|
|
31
31
|
"- Open an issue on https://github.com/openfisca/openfisca-core/issues/new",
|
{openfisca_core-45.0.3 → openfisca_core-45.0.4}/openfisca_core/experimental/_memory_config.py
RENAMED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
-
from collections.abc import Iterable
|
|
4
|
-
|
|
5
3
|
import warnings
|
|
4
|
+
from collections.abc import Iterable
|
|
6
5
|
|
|
7
6
|
from ._errors import MemoryConfigWarning
|
|
8
7
|
|
|
@@ -25,13 +24,13 @@ class MemoryConfig:
|
|
|
25
24
|
priority_variables: Iterable[str] = frozenset(),
|
|
26
25
|
variables_to_drop: Iterable[str] = frozenset(),
|
|
27
26
|
) -> None:
|
|
28
|
-
message =
|
|
29
|
-
"Memory configuration is a feature that is still currently under "
|
|
30
|
-
"experimentation. You are very welcome to use it and send us "
|
|
31
|
-
"precious feedback, but keep in mind that the way it is used might "
|
|
27
|
+
message = (
|
|
28
|
+
"Memory configuration is a feature that is still currently under ",
|
|
29
|
+
"experimentation. You are very welcome to use it and send us ",
|
|
30
|
+
"precious feedback, but keep in mind that the way it is used might ",
|
|
32
31
|
"change without any major version bump.",
|
|
33
|
-
|
|
34
|
-
warnings.warn(
|
|
32
|
+
)
|
|
33
|
+
warnings.warn(message, MemoryConfigWarning, stacklevel=2)
|
|
35
34
|
|
|
36
35
|
self.max_memory_occupation = float(max_memory_occupation)
|
|
37
36
|
if self.max_memory_occupation > 1:
|