OpenFisca-Core 45.0.3__tar.gz → 45.0.5__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.5}/CHANGELOG.md +108 -87
- {openfisca_core-45.0.3 → openfisca_core-45.0.5/OpenFisca_Core.egg-info}/PKG-INFO +1 -17
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/OpenFisca_Core.egg-info/requires.txt +0 -17
- {openfisca_core-45.0.3/OpenFisca_Core.egg-info → openfisca_core-45.0.5}/PKG-INFO +1 -17
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/commons/formulas.py +3 -3
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/data_storage/on_disk_storage.py +1 -2
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/entities/_core_entity.py +1 -2
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/entities/entity.py +1 -2
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/entities/group_entity.py +2 -3
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/errors/__init__.py +6 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/errors/empty_argument_error.py +5 -5
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/errors/situation_parsing_error.py +1 -2
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/experimental/_memory_config.py +7 -8
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/holders/holder.py +8 -5
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/indexed_enums/enum_array.py +3 -5
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/indexed_enums/types.py +12 -5
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/model_api.py +31 -23
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/parameters/__init__.py +13 -10
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/parameters/config.py +1 -1
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/parameters/parameter_node.py +1 -2
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/parameters/vectorial_parameter_node_at_instant.py +8 -8
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/periods/helpers.py +1 -2
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/periods/instant_.py +3 -3
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/periods/period_.py +1 -2
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/populations/_core_population.py +1 -2
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/populations/types.py +21 -14
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/projectors/helpers.py +1 -2
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/reforms/in_yaml_test_reform.py +1 -2
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/reforms/reform.py +3 -4
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/scripts/remove_fuzzy.py +1 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/simulations/_build_default_simulation.py +2 -4
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/simulations/_type_guards.py +1 -1
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/simulations/simulation.py +11 -9
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/simulations/simulation_builder.py +3 -5
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/simulations/typing.py +29 -28
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/taxbenefitsystems/tax_benefit_system.py +10 -13
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/taxscales/abstract_rate_tax_scale.py +2 -3
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/taxscales/abstract_tax_scale.py +3 -4
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/taxscales/amount_tax_scale_like.py +3 -4
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/taxscales/helpers.py +2 -3
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/taxscales/linear_average_rate_tax_scale.py +2 -3
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/taxscales/marginal_amount_tax_scale.py +1 -1
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/taxscales/marginal_rate_tax_scale.py +3 -4
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/taxscales/rate_tax_scale_like.py +4 -5
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/taxscales/single_amount_tax_scale.py +1 -1
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/taxscales/tax_scale_like.py +4 -5
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/tools/__init__.py +12 -12
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/tools/simulation_dumper.py +5 -13
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/tools/test_runner.py +15 -17
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/tracers/computation_log.py +2 -4
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/tracers/full_tracer.py +1 -2
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/tracers/performance_log.py +1 -2
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/tracers/tracing_parameter_node_at_instant.py +4 -6
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/types.py +23 -8
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/variables/variable.py +3 -3
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_web_api/errors.py +1 -2
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_web_api/handlers.py +1 -1
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_web_api/loader/spec.py +2 -2
- openfisca_core-45.0.5/pyproject.toml +25 -0
- openfisca_core-45.0.5/setup.cfg +32 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/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.5}/LICENSE +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/MANIFEST.in +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/OpenFisca_Core.egg-info/SOURCES.txt +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/OpenFisca_Core.egg-info/dependency_links.txt +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/OpenFisca_Core.egg-info/entry_points.txt +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/OpenFisca_Core.egg-info/top_level.txt +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/README.md +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/commons/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/commons/dummy.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/commons/misc.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/commons/py.typed +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/commons/rates.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/commons/tests/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/commons/tests/test_dummy.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/commons/tests/test_formulas.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/commons/tests/test_rates.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/data_storage/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/data_storage/in_memory_storage.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/data_storage/types.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/entities/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/entities/_description.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/entities/helpers.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/entities/py.typed +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/entities/role.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/entities/tests/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/entities/tests/test_entity.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/entities/tests/test_group_entity.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/entities/tests/test_role.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/entities/types.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/errors/cycle_error.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/errors/nan_creation_error.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/errors/parameter_not_found_error.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/errors/parameter_parsing_error.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/errors/period_mismatch_error.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/errors/spiral_error.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/errors/variable_name_config_error.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/errors/variable_not_found_error.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/experimental/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/experimental/_errors.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/formula_helpers.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/holders/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/holders/helpers.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/holders/tests/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/holders/tests/test_helpers.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/holders/types.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/indexed_enums/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/indexed_enums/_enum_type.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/indexed_enums/_errors.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/indexed_enums/_guards.py +1 -1
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/indexed_enums/_utils.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/indexed_enums/config.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/indexed_enums/enum.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/indexed_enums/py.typed +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/indexed_enums/tests/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/indexed_enums/tests/test_enum.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/indexed_enums/tests/test_enum_array.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/memory_config.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/parameters/at_instant_like.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/parameters/helpers.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/parameters/parameter.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/parameters/parameter_at_instant.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/parameters/parameter_node_at_instant.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/parameters/parameter_scale.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/parameters/parameter_scale_bracket.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/parameters/values_history.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/periods/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/periods/_errors.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/periods/_parsers.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/periods/config.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/periods/date_unit.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/periods/py.typed +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/periods/tests/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/periods/tests/helpers/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/periods/tests/helpers/test_helpers.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/periods/tests/helpers/test_instant.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/periods/tests/helpers/test_period.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/periods/tests/test_instant.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/periods/tests/test_parsers.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/periods/tests/test_period.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/populations/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/populations/_errors.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/populations/group_population.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/populations/population.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/populations/tests/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/populations/tests/test_members_position.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/projectors/__init__.py +2 -2
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/projectors/entity_to_person_projector.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/projectors/first_person_to_entity_projector.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/projectors/projector.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/projectors/typing.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/projectors/unique_role_to_entity_projector.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/rates.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/reforms/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/scripts/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/scripts/assets/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/scripts/assets/index.html +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/scripts/find_placeholders.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/scripts/measure_numpy_condition_notations.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/scripts/measure_performances.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/scripts/measure_performances_fancy_indexing.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/scripts/migrations/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/scripts/migrations/v16_2_to_v17/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/scripts/migrations/v16_2_to_v17/legislation.xsd +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/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.5}/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.5}/openfisca_core/scripts/migrations/v24_to_25.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/scripts/openfisca_command.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/scripts/run_test.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/scripts/simulation_generator.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/simulation_builder.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/simulations/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/simulations/_build_from_variables.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/simulations/helpers.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/taxbenefitsystems/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/taxscales/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/tools/parallel_plugin.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/tracers/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/tracers/flat_trace.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/tracers/simple_tracer.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/tracers/trace_node.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/variables/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/variables/config.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/variables/helpers.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/variables/tests/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/variables/tests/test_definition_period.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/warnings/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/warnings/libyaml_warning.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_core/warnings/tempfile_warning.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_web_api/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_web_api/app.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_web_api/loader/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_web_api/loader/entities.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_web_api/loader/parameters.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_web_api/loader/tax_benefit_system.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_web_api/loader/variables.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_web_api/openAPI.yml +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_web_api/scripts/__init__.py +0 -0
- {openfisca_core-45.0.3 → openfisca_core-45.0.5}/openfisca_web_api/scripts/serve.py +0 -0
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
### 45.0.5 [#1387](https://github.com/openfisca/openfisca-core/pull/1387)
|
|
4
|
+
|
|
5
|
+
#### Bug fixes
|
|
6
|
+
|
|
7
|
+
- Fix `restore_simulation` rebuilding entity counts from the members mapping instead of the dumped ids.
|
|
8
|
+
- A group entity with no member was silently dropped from the restored simulation's `count` (while still listed in `ids`), so subsequent calculations returned arrays with missing entities — or failed with a `ValueError` when a value had been stored for the group entity.
|
|
9
|
+
- Restoring a simulation whose tax and benefit system has no group entity raised an `UnboundLocalError`.
|
|
10
|
+
- Each entity's `count` is now restored from its dumped `ids`.
|
|
11
|
+
|
|
12
|
+
### 45.0.4 [#1397](https://github.com/openfisca/openfisca-core/pull/1397)
|
|
13
|
+
|
|
14
|
+
#### Technical changes
|
|
15
|
+
|
|
16
|
+
- Replace black, isort, flake8 by ruff
|
|
17
|
+
|
|
3
18
|
### 45.0.3 [#1395](https://github.com/openfisca/openfisca-core/pull/1395)
|
|
4
19
|
|
|
5
20
|
#### Technical changes
|
|
@@ -358,9 +373,11 @@ population simulations, it has been marked as a major release.
|
|
|
358
373
|
```python
|
|
359
374
|
from openfisca_core import indexed_enums as enum
|
|
360
375
|
|
|
376
|
+
|
|
361
377
|
class TestEnum(enum.Enum):
|
|
362
|
-
|
|
363
|
-
|
|
378
|
+
ONE = "one"
|
|
379
|
+
TWO = "two"
|
|
380
|
+
|
|
364
381
|
|
|
365
382
|
TestEnum.encode([2])
|
|
366
383
|
# EnumArray([0])
|
|
@@ -371,14 +388,16 @@ TestEnum.encode([2])
|
|
|
371
388
|
```python
|
|
372
389
|
from openfisca_core import indexed_enums as enum
|
|
373
390
|
|
|
391
|
+
|
|
374
392
|
class TestEnum(enum.Enum):
|
|
375
|
-
|
|
376
|
-
|
|
393
|
+
ONE = "one"
|
|
394
|
+
TWO = "two"
|
|
395
|
+
|
|
377
396
|
|
|
378
397
|
TestEnum.encode([2])
|
|
379
398
|
# EnumArray([])
|
|
380
399
|
|
|
381
|
-
TestEnum.encode([0,1,2,5])
|
|
400
|
+
TestEnum.encode([0, 1, 2, 5])
|
|
382
401
|
# EnumArray([<TestEnum.ONE: 'one'> <TestEnum.TWO: 'two'>])
|
|
383
402
|
```
|
|
384
403
|
|
|
@@ -1738,7 +1757,9 @@ For additional details, see the PR's [description](https://github.com/openfisca/
|
|
|
1738
1757
|
**Before**
|
|
1739
1758
|
|
|
1740
1759
|
```Python
|
|
1741
|
-
simulation = SimulationBuilder().build_from_entities(
|
|
1760
|
+
simulation = SimulationBuilder().build_from_entities(
|
|
1761
|
+
tax_benefit_system, input_data, trace=True
|
|
1762
|
+
)
|
|
1742
1763
|
```
|
|
1743
1764
|
|
|
1744
1765
|
**After**
|
|
@@ -2071,7 +2092,7 @@ Before:
|
|
|
2071
2092
|
|
|
2072
2093
|
```py
|
|
2073
2094
|
simulation = ...
|
|
2074
|
-
holder = simulation.persons.get_holder(
|
|
2095
|
+
holder = simulation.persons.get_holder("salary")
|
|
2075
2096
|
holder.get_known_periods()
|
|
2076
2097
|
```
|
|
2077
2098
|
|
|
@@ -2079,7 +2100,7 @@ After:
|
|
|
2079
2100
|
|
|
2080
2101
|
```py
|
|
2081
2102
|
simulation = ...
|
|
2082
|
-
simulation.get_known_periods(
|
|
2103
|
+
simulation.get_known_periods("salary")
|
|
2083
2104
|
```
|
|
2084
2105
|
|
|
2085
2106
|
## 24.10.0 [#784](https://github.com/openfisca/openfisca-core/pull/784)
|
|
@@ -2090,15 +2111,15 @@ Before:
|
|
|
2090
2111
|
|
|
2091
2112
|
```py
|
|
2092
2113
|
simulation = ...
|
|
2093
|
-
holder = simulation.persons.get_holder(
|
|
2094
|
-
holder.delete_arrays(
|
|
2114
|
+
holder = simulation.persons.get_holder("salary")
|
|
2115
|
+
holder.delete_arrays("2018-08")
|
|
2095
2116
|
```
|
|
2096
2117
|
|
|
2097
2118
|
After:
|
|
2098
2119
|
|
|
2099
2120
|
```py
|
|
2100
2121
|
simulation = ...
|
|
2101
|
-
simulation.delete_arrays(
|
|
2122
|
+
simulation.delete_arrays("salary", "2018-08")
|
|
2102
2123
|
```
|
|
2103
2124
|
|
|
2104
2125
|
### 24.9.9 [#786](https://github.com/openfisca/openfisca-core/pull/786)
|
|
@@ -2270,15 +2291,15 @@ Before:
|
|
|
2270
2291
|
|
|
2271
2292
|
```py
|
|
2272
2293
|
simulation = ...
|
|
2273
|
-
holder = simulation.persons.get_holder(
|
|
2274
|
-
holder.set_input(
|
|
2294
|
+
holder = simulation.persons.get_holder("salary")
|
|
2295
|
+
holder.set_input("2018-08", [4000])
|
|
2275
2296
|
```
|
|
2276
2297
|
|
|
2277
2298
|
After:
|
|
2278
2299
|
|
|
2279
2300
|
```py
|
|
2280
2301
|
simulation = ...
|
|
2281
|
-
simulation.set_input(
|
|
2302
|
+
simulation.set_input("salary", "2018-08", [4000])
|
|
2282
2303
|
```
|
|
2283
2304
|
|
|
2284
2305
|
## 24.4.0 [#717](https://github.com/openfisca/openfisca-core/pull/717)
|
|
@@ -2340,14 +2361,16 @@ Dump:
|
|
|
2340
2361
|
|
|
2341
2362
|
```py
|
|
2342
2363
|
from openfisca_core.tools.simulation_dumper import dump_simulation
|
|
2343
|
-
|
|
2364
|
+
|
|
2365
|
+
dump_simulation(simulation, "/path/to/directory")
|
|
2344
2366
|
```
|
|
2345
2367
|
|
|
2346
2368
|
Restore:
|
|
2347
2369
|
|
|
2348
2370
|
```py
|
|
2349
2371
|
from openfisca_core.tools.simulation_dumper import restore_simulation
|
|
2350
|
-
|
|
2372
|
+
|
|
2373
|
+
simulation = restore_simulation("/path/to/directory", tax_benefit_system)
|
|
2351
2374
|
```
|
|
2352
2375
|
|
|
2353
2376
|
### 24.1.0 [#713](https://github.com/openfisca/openfisca-core/pull/713)
|
|
@@ -2949,21 +2972,17 @@ _Note: the 21.0.1 and 21.0.0 versions have been unpublished due to performance i
|
|
|
2949
2972
|
Before:
|
|
2950
2973
|
|
|
2951
2974
|
```py
|
|
2952
|
-
HOUSING_OCCUPANCY_STATUS = Enum([
|
|
2953
|
-
u'Tenant',
|
|
2954
|
-
u'Owner',
|
|
2955
|
-
u'Free lodger',
|
|
2956
|
-
u'Homeless'])
|
|
2975
|
+
HOUSING_OCCUPANCY_STATUS = Enum(["Tenant", "Owner", "Free lodger", "Homeless"])
|
|
2957
2976
|
```
|
|
2958
2977
|
|
|
2959
2978
|
Now:
|
|
2960
2979
|
|
|
2961
2980
|
```py
|
|
2962
2981
|
class HousingOccupancyStatus(Enum):
|
|
2963
|
-
tenant =
|
|
2964
|
-
owner =
|
|
2965
|
-
free_lodger =
|
|
2966
|
-
homeless =
|
|
2982
|
+
tenant = "Tenant"
|
|
2983
|
+
owner = "Owner"
|
|
2984
|
+
free_lodger = "Free lodger"
|
|
2985
|
+
homeless = "Homeless"
|
|
2967
2986
|
```
|
|
2968
2987
|
|
|
2969
2988
|
> Each Enum item has:
|
|
@@ -2974,11 +2993,11 @@ class HousingOccupancyStatus(Enum):
|
|
|
2974
2993
|
|
|
2975
2994
|
```py
|
|
2976
2995
|
class housing_occupancy_status(Variable):
|
|
2977
|
-
possible_values = HousingOccupancyStatus,
|
|
2996
|
+
possible_values = (HousingOccupancyStatus,)
|
|
2978
2997
|
default_value = HousingOccupancyStatus.tenant
|
|
2979
2998
|
entity = Household
|
|
2980
2999
|
definition_period = MONTH
|
|
2981
|
-
label =
|
|
3000
|
+
label = "Legal housing situation of the household concerning their main residence"
|
|
2982
3001
|
```
|
|
2983
3002
|
|
|
2984
3003
|
|
|
@@ -3023,11 +3042,11 @@ class housing_occupancy_status(Variable):
|
|
|
3023
3042
|
|
|
3024
3043
|
> Example:
|
|
3025
3044
|
```py
|
|
3026
|
-
holder = simulation.household.get_holder(
|
|
3045
|
+
holder = simulation.household.get_holder("housing_occupancy_status")
|
|
3027
3046
|
# Three possibilities
|
|
3028
3047
|
holder.set_input(period, numpy.asarray([HousingOccupancyStatus.owner]))
|
|
3029
|
-
holder.set_input(period, numpy.asarray([
|
|
3030
|
-
holder.set_input(period, numpy.asarray([0]))
|
|
3048
|
+
holder.set_input(period, numpy.asarray(["owner"]))
|
|
3049
|
+
holder.set_input(period, numpy.asarray([0])) # Highly not recommended
|
|
3031
3050
|
```
|
|
3032
3051
|
|
|
3033
3052
|
- 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 +3092,7 @@ Before:
|
|
|
3073
3092
|
|
|
3074
3093
|
```py
|
|
3075
3094
|
class is_citizen(Variable):
|
|
3076
|
-
column = BoolCol(default
|
|
3095
|
+
column = BoolCol(default=True)
|
|
3077
3096
|
entity = Person
|
|
3078
3097
|
definition_period = MONTH
|
|
3079
3098
|
label = "Whether the person is a citizen"
|
|
@@ -3096,9 +3115,9 @@ Before:
|
|
|
3096
3115
|
|
|
3097
3116
|
```py
|
|
3098
3117
|
class zipcode(Variable):
|
|
3099
|
-
column = FixedStrCol(max_length
|
|
3118
|
+
column = FixedStrCol(max_length=5)
|
|
3100
3119
|
entity = Menage
|
|
3101
|
-
label =
|
|
3120
|
+
label = "Code INSEE (depcom) du lieu de résidence"
|
|
3102
3121
|
definition_period = MONTH
|
|
3103
3122
|
```
|
|
3104
3123
|
|
|
@@ -3109,7 +3128,7 @@ class zipcode(Variable):
|
|
|
3109
3128
|
value_type = str
|
|
3110
3129
|
max_length = 5
|
|
3111
3130
|
entity = Menage
|
|
3112
|
-
label =
|
|
3131
|
+
label = "Code INSEE (depcom) du lieu de résidence"
|
|
3113
3132
|
definition_period = MONTH
|
|
3114
3133
|
```
|
|
3115
3134
|
|
|
@@ -3119,16 +3138,10 @@ Before:
|
|
|
3119
3138
|
|
|
3120
3139
|
```py
|
|
3121
3140
|
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
|
-
)
|
|
3141
|
+
column = EnumCol(enum=Enum(["Tenant", "Owner", "Free lodger", "Homeless"]))
|
|
3129
3142
|
entity = Household
|
|
3130
3143
|
definition_period = MONTH
|
|
3131
|
-
label =
|
|
3144
|
+
label = "Legal housing situation of the household concerning their main residence"
|
|
3132
3145
|
```
|
|
3133
3146
|
|
|
3134
3147
|
After:
|
|
@@ -3136,15 +3149,10 @@ After:
|
|
|
3136
3149
|
```py
|
|
3137
3150
|
class housing_occupancy_status(Variable):
|
|
3138
3151
|
value_type = Enum
|
|
3139
|
-
possible_values = Enum([
|
|
3140
|
-
u'Tenant',
|
|
3141
|
-
u'Owner',
|
|
3142
|
-
u'Free lodger',
|
|
3143
|
-
u'Homeless'
|
|
3144
|
-
])
|
|
3152
|
+
possible_values = Enum(["Tenant", "Owner", "Free lodger", "Homeless"])
|
|
3145
3153
|
entity = Household
|
|
3146
3154
|
definition_period = MONTH
|
|
3147
|
-
label =
|
|
3155
|
+
label = "Legal housing situation of the household concerning their main residence"
|
|
3148
3156
|
```
|
|
3149
3157
|
|
|
3150
3158
|
- Remove `PeriodSizeIndependentIntCol`:
|
|
@@ -3397,15 +3405,15 @@ For more information, check the [documentation](https://openfisca.org/doc/coding
|
|
|
3397
3405
|
- Before:
|
|
3398
3406
|
```python
|
|
3399
3407
|
new_legislation_parameters = update_legislation(
|
|
3400
|
-
legislation_json
|
|
3401
|
-
path
|
|
3402
|
-
period
|
|
3403
|
-
value
|
|
3404
|
-
|
|
3408
|
+
legislation_json=original_legislation_parameters,
|
|
3409
|
+
path=("children", "impot_revenu", "children", "bareme", "brackets", 1, "threshold"),
|
|
3410
|
+
period=reform_period,
|
|
3411
|
+
value=6011,
|
|
3412
|
+
)
|
|
3405
3413
|
```
|
|
3406
3414
|
- Now:
|
|
3407
3415
|
```python
|
|
3408
|
-
parameters.impot_revenu.bareme[1].threshold.update(period
|
|
3416
|
+
parameters.impot_revenu.bareme[1].threshold.update(period=reform_period, value=6011)
|
|
3409
3417
|
```
|
|
3410
3418
|
|
|
3411
3419
|
* Change the syntax to dynamically create new parameters
|
|
@@ -3421,45 +3429,54 @@ For more information, check the [documentation](https://openfisca.org/doc/coding
|
|
|
3421
3429
|
"format": "integer",
|
|
3422
3430
|
"unit": "currency",
|
|
3423
3431
|
"values": [
|
|
3424
|
-
{
|
|
3425
|
-
|
|
3426
|
-
|
|
3427
|
-
|
|
3432
|
+
{
|
|
3433
|
+
"start": "2016-01-01",
|
|
3434
|
+
},
|
|
3435
|
+
{"start": "2015-01-01", "value": round(1135 * (1 + inflation))},
|
|
3436
|
+
],
|
|
3437
|
+
},
|
|
3428
3438
|
"decote_seuil_couple": {
|
|
3429
3439
|
"@type": "Parameter",
|
|
3430
3440
|
"description": "Seuil de la décôte pour un couple",
|
|
3431
3441
|
"format": "integer",
|
|
3432
3442
|
"unit": "currency",
|
|
3433
3443
|
"values": [
|
|
3434
|
-
{
|
|
3435
|
-
|
|
3436
|
-
|
|
3437
|
-
|
|
3444
|
+
{
|
|
3445
|
+
"start": "2065-01-01",
|
|
3446
|
+
},
|
|
3447
|
+
{"start": "2015-01-01", "value": round(1870 * (1 + inflation))},
|
|
3448
|
+
],
|
|
3438
3449
|
},
|
|
3439
|
-
}
|
|
3440
|
-
|
|
3450
|
+
},
|
|
3451
|
+
}
|
|
3452
|
+
reference_legislation_copy["children"]["plf2016_conterfactual"] = (
|
|
3453
|
+
reform_legislation_subtree
|
|
3454
|
+
)
|
|
3441
3455
|
```
|
|
3442
3456
|
|
|
3443
3457
|
- Now:
|
|
3444
3458
|
```python
|
|
3445
3459
|
from openfisca_core.parameters import ParameterNode
|
|
3446
3460
|
|
|
3447
|
-
inflation = .001
|
|
3448
|
-
reform_parameters_subtree = ParameterNode(
|
|
3449
|
-
|
|
3450
|
-
|
|
3451
|
-
"
|
|
3452
|
-
|
|
3453
|
-
|
|
3454
|
-
|
|
3455
|
-
|
|
3456
|
-
|
|
3457
|
-
"
|
|
3458
|
-
|
|
3459
|
-
|
|
3460
|
-
|
|
3461
|
-
|
|
3462
|
-
|
|
3461
|
+
inflation = 0.001
|
|
3462
|
+
reform_parameters_subtree = ParameterNode(
|
|
3463
|
+
"plf2016_conterfactual",
|
|
3464
|
+
data={
|
|
3465
|
+
"decote_seuil_celib": {
|
|
3466
|
+
"values": {
|
|
3467
|
+
"2015-01-01": {"value": round(1135 * (1 + inflation))},
|
|
3468
|
+
"2016-01-01": {"value": None},
|
|
3469
|
+
}
|
|
3470
|
+
},
|
|
3471
|
+
"decote_seuil_couple": {
|
|
3472
|
+
"values": {
|
|
3473
|
+
"2015-01-01": {"value": round(1870 * (1 + inflation))},
|
|
3474
|
+
"2065-01-01": {"value": None},
|
|
3475
|
+
}
|
|
3476
|
+
},
|
|
3477
|
+
},
|
|
3478
|
+
)
|
|
3479
|
+
reference_parameters.add_child("plf2016_conterfactual", reform_parameters_subtree)
|
|
3463
3480
|
```
|
|
3464
3481
|
|
|
3465
3482
|
- 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 +3517,14 @@ For more information, check the [documentation](https://openfisca.org/doc/coding
|
|
|
3500
3517
|
|
|
3501
3518
|
dir_path = os.path.dirname(__file__)
|
|
3502
3519
|
|
|
3520
|
+
|
|
3503
3521
|
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(
|
|
3522
|
+
file_path = os.path.join(dir_path, "plf2016.yaml")
|
|
3523
|
+
reform_parameters_subtree = load_parameter_file(name="plf2016", file_path=file_path)
|
|
3524
|
+
parameters.add_child("plf2016", reform_parameters_subtree)
|
|
3507
3525
|
return parameters
|
|
3508
3526
|
|
|
3527
|
+
|
|
3509
3528
|
...
|
|
3510
3529
|
```
|
|
3511
3530
|
|
|
@@ -4105,9 +4124,11 @@ Unlike simple formulas, a `DatedVariable` have several functions. We thus need t
|
|
|
4105
4124
|
Examples:
|
|
4106
4125
|
```python
|
|
4107
4126
|
simulation = scenario.new_simulation(trace=True)
|
|
4108
|
-
simulation.calculate(
|
|
4109
|
-
simulation.calculate(
|
|
4110
|
-
simulation.calculate(
|
|
4127
|
+
simulation.calculate("irpp", 2014, print_trace=True)
|
|
4128
|
+
simulation.calculate("irpp", 2014, print_trace=True, max_depth=-1)
|
|
4129
|
+
simulation.calculate(
|
|
4130
|
+
"irpp", 2014, print_trace=True, max_depth=-1, show_default_values=False
|
|
4131
|
+
)
|
|
4111
4132
|
```
|
|
4112
4133
|
|
|
4113
4134
|
## 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.5
|
|
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.5
|
|
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.5}/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",
|