OpenFisca-Core 45.0.2__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.2 → openfisca_core-45.0.4}/CHANGELOG.md +105 -87
- {openfisca_core-45.0.2 → openfisca_core-45.0.4/OpenFisca_Core.egg-info}/PKG-INFO +2 -18
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/OpenFisca_Core.egg-info/requires.txt +0 -17
- {openfisca_core-45.0.2/OpenFisca_Core.egg-info → openfisca_core-45.0.4}/PKG-INFO +2 -18
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/README.md +1 -1
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/commons/formulas.py +3 -3
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/data_storage/on_disk_storage.py +1 -2
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/entities/_core_entity.py +1 -2
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/entities/entity.py +1 -2
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/entities/group_entity.py +2 -3
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/errors/__init__.py +6 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/errors/empty_argument_error.py +5 -5
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/errors/situation_parsing_error.py +1 -2
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/errors/variable_not_found_error.py +1 -1
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/experimental/_memory_config.py +7 -8
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/holders/holder.py +8 -5
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/indexed_enums/enum_array.py +3 -5
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/indexed_enums/types.py +12 -5
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/model_api.py +31 -23
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/parameters/__init__.py +13 -10
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/parameters/config.py +1 -1
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/parameters/parameter_node.py +1 -2
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/parameters/vectorial_parameter_node_at_instant.py +8 -8
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/periods/helpers.py +1 -2
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/periods/instant_.py +3 -3
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/periods/period_.py +1 -2
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/populations/_core_population.py +1 -2
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/populations/types.py +21 -14
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/projectors/helpers.py +1 -2
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/reforms/in_yaml_test_reform.py +1 -2
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/reforms/reform.py +3 -4
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/scripts/remove_fuzzy.py +1 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/simulations/_build_default_simulation.py +2 -4
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/simulations/_type_guards.py +1 -1
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/simulations/simulation.py +11 -9
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/simulations/simulation_builder.py +3 -5
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/simulations/typing.py +29 -28
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/taxbenefitsystems/tax_benefit_system.py +10 -13
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/taxscales/abstract_rate_tax_scale.py +2 -3
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/taxscales/abstract_tax_scale.py +3 -4
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/taxscales/amount_tax_scale_like.py +3 -4
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/taxscales/helpers.py +2 -3
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/taxscales/linear_average_rate_tax_scale.py +2 -3
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/taxscales/marginal_amount_tax_scale.py +1 -1
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/taxscales/marginal_rate_tax_scale.py +3 -4
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/taxscales/rate_tax_scale_like.py +4 -5
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/taxscales/single_amount_tax_scale.py +1 -1
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/taxscales/tax_scale_like.py +4 -5
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/tools/__init__.py +12 -12
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/tools/test_runner.py +15 -17
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/tracers/computation_log.py +2 -4
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/tracers/full_tracer.py +1 -2
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/tracers/performance_log.py +1 -2
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/tracers/tracing_parameter_node_at_instant.py +4 -6
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/types.py +23 -8
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/variables/variable.py +3 -3
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_web_api/errors.py +1 -2
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_web_api/handlers.py +1 -1
- {openfisca_core-45.0.2 → 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.2 → openfisca_core-45.0.4}/setup.py +1 -20
- openfisca_core-45.0.2/pyproject.toml +0 -14
- openfisca_core-45.0.2/setup.cfg +0 -96
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/LICENSE +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/MANIFEST.in +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/OpenFisca_Core.egg-info/SOURCES.txt +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/OpenFisca_Core.egg-info/dependency_links.txt +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/OpenFisca_Core.egg-info/entry_points.txt +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/OpenFisca_Core.egg-info/top_level.txt +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/__init__.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/commons/__init__.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/commons/dummy.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/commons/misc.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/commons/py.typed +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/commons/rates.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/commons/tests/__init__.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/commons/tests/test_dummy.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/commons/tests/test_formulas.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/commons/tests/test_rates.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/data_storage/__init__.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/data_storage/in_memory_storage.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/data_storage/types.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/entities/__init__.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/entities/_description.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/entities/helpers.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/entities/py.typed +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/entities/role.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/entities/tests/__init__.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/entities/tests/test_entity.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/entities/tests/test_group_entity.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/entities/tests/test_role.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/entities/types.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/errors/cycle_error.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/errors/nan_creation_error.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/errors/parameter_not_found_error.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/errors/parameter_parsing_error.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/errors/period_mismatch_error.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/errors/spiral_error.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/errors/variable_name_config_error.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/experimental/__init__.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/experimental/_errors.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/formula_helpers.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/holders/__init__.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/holders/helpers.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/holders/tests/__init__.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/holders/tests/test_helpers.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/holders/types.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/indexed_enums/__init__.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/indexed_enums/_enum_type.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/indexed_enums/_errors.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/indexed_enums/_guards.py +1 -1
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/indexed_enums/_utils.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/indexed_enums/config.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/indexed_enums/enum.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/indexed_enums/py.typed +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/indexed_enums/tests/__init__.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/indexed_enums/tests/test_enum.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/indexed_enums/tests/test_enum_array.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/memory_config.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/parameters/at_instant_like.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/parameters/helpers.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/parameters/parameter.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/parameters/parameter_at_instant.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/parameters/parameter_node_at_instant.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/parameters/parameter_scale.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/parameters/parameter_scale_bracket.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/parameters/values_history.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/periods/__init__.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/periods/_errors.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/periods/_parsers.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/periods/config.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/periods/date_unit.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/periods/py.typed +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/periods/tests/__init__.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/periods/tests/helpers/__init__.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/periods/tests/helpers/test_helpers.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/periods/tests/helpers/test_instant.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/periods/tests/helpers/test_period.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/periods/tests/test_instant.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/periods/tests/test_parsers.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/periods/tests/test_period.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/populations/__init__.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/populations/_errors.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/populations/group_population.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/populations/population.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/populations/tests/__init__.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/populations/tests/test_members_position.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/projectors/__init__.py +2 -2
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/projectors/entity_to_person_projector.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/projectors/first_person_to_entity_projector.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/projectors/projector.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/projectors/typing.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/projectors/unique_role_to_entity_projector.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/rates.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/reforms/__init__.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/scripts/__init__.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/scripts/assets/__init__.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/scripts/assets/index.html +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/scripts/find_placeholders.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/scripts/measure_numpy_condition_notations.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/scripts/measure_performances.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/scripts/measure_performances_fancy_indexing.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/scripts/migrations/__init__.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/scripts/migrations/v16_2_to_v17/__init__.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/scripts/migrations/v16_2_to_v17/legislation.xsd +0 -0
- {openfisca_core-45.0.2 → 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.2 → 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.2 → openfisca_core-45.0.4}/openfisca_core/scripts/migrations/v24_to_25.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/scripts/openfisca_command.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/scripts/run_test.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/scripts/simulation_generator.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/simulation_builder.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/simulations/__init__.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/simulations/_build_from_variables.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/simulations/helpers.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/taxbenefitsystems/__init__.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/taxscales/__init__.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/tools/parallel_plugin.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/tools/simulation_dumper.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/tracers/__init__.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/tracers/flat_trace.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/tracers/simple_tracer.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/tracers/trace_node.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/variables/__init__.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/variables/config.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/variables/helpers.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/variables/tests/__init__.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/variables/tests/test_definition_period.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/warnings/__init__.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/warnings/libyaml_warning.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/warnings/tempfile_warning.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_web_api/__init__.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_web_api/app.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_web_api/loader/__init__.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_web_api/loader/entities.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_web_api/loader/parameters.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_web_api/loader/tax_benefit_system.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_web_api/loader/variables.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_web_api/openAPI.yml +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_web_api/scripts/__init__.py +0 -0
- {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_web_api/scripts/serve.py +0 -0
|
@@ -1,5 +1,17 @@
|
|
|
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
|
+
|
|
9
|
+
### 45.0.3 [#1395](https://github.com/openfisca/openfisca-core/pull/1395)
|
|
10
|
+
|
|
11
|
+
#### Technical changes
|
|
12
|
+
|
|
13
|
+
- Migrate from a master branch to a main branch
|
|
14
|
+
|
|
3
15
|
### 45.0.2 [#1394](https://github.com/openfisca/openfisca-core/pull/1394)
|
|
4
16
|
|
|
5
17
|
#### Technical changes
|
|
@@ -352,9 +364,11 @@ population simulations, it has been marked as a major release.
|
|
|
352
364
|
```python
|
|
353
365
|
from openfisca_core import indexed_enums as enum
|
|
354
366
|
|
|
367
|
+
|
|
355
368
|
class TestEnum(enum.Enum):
|
|
356
|
-
|
|
357
|
-
|
|
369
|
+
ONE = "one"
|
|
370
|
+
TWO = "two"
|
|
371
|
+
|
|
358
372
|
|
|
359
373
|
TestEnum.encode([2])
|
|
360
374
|
# EnumArray([0])
|
|
@@ -365,14 +379,16 @@ TestEnum.encode([2])
|
|
|
365
379
|
```python
|
|
366
380
|
from openfisca_core import indexed_enums as enum
|
|
367
381
|
|
|
382
|
+
|
|
368
383
|
class TestEnum(enum.Enum):
|
|
369
|
-
|
|
370
|
-
|
|
384
|
+
ONE = "one"
|
|
385
|
+
TWO = "two"
|
|
386
|
+
|
|
371
387
|
|
|
372
388
|
TestEnum.encode([2])
|
|
373
389
|
# EnumArray([])
|
|
374
390
|
|
|
375
|
-
TestEnum.encode([0,1,2,5])
|
|
391
|
+
TestEnum.encode([0, 1, 2, 5])
|
|
376
392
|
# EnumArray([<TestEnum.ONE: 'one'> <TestEnum.TWO: 'two'>])
|
|
377
393
|
```
|
|
378
394
|
|
|
@@ -1732,7 +1748,9 @@ For additional details, see the PR's [description](https://github.com/openfisca/
|
|
|
1732
1748
|
**Before**
|
|
1733
1749
|
|
|
1734
1750
|
```Python
|
|
1735
|
-
simulation = SimulationBuilder().build_from_entities(
|
|
1751
|
+
simulation = SimulationBuilder().build_from_entities(
|
|
1752
|
+
tax_benefit_system, input_data, trace=True
|
|
1753
|
+
)
|
|
1736
1754
|
```
|
|
1737
1755
|
|
|
1738
1756
|
**After**
|
|
@@ -2065,7 +2083,7 @@ Before:
|
|
|
2065
2083
|
|
|
2066
2084
|
```py
|
|
2067
2085
|
simulation = ...
|
|
2068
|
-
holder = simulation.persons.get_holder(
|
|
2086
|
+
holder = simulation.persons.get_holder("salary")
|
|
2069
2087
|
holder.get_known_periods()
|
|
2070
2088
|
```
|
|
2071
2089
|
|
|
@@ -2073,7 +2091,7 @@ After:
|
|
|
2073
2091
|
|
|
2074
2092
|
```py
|
|
2075
2093
|
simulation = ...
|
|
2076
|
-
simulation.get_known_periods(
|
|
2094
|
+
simulation.get_known_periods("salary")
|
|
2077
2095
|
```
|
|
2078
2096
|
|
|
2079
2097
|
## 24.10.0 [#784](https://github.com/openfisca/openfisca-core/pull/784)
|
|
@@ -2084,15 +2102,15 @@ Before:
|
|
|
2084
2102
|
|
|
2085
2103
|
```py
|
|
2086
2104
|
simulation = ...
|
|
2087
|
-
holder = simulation.persons.get_holder(
|
|
2088
|
-
holder.delete_arrays(
|
|
2105
|
+
holder = simulation.persons.get_holder("salary")
|
|
2106
|
+
holder.delete_arrays("2018-08")
|
|
2089
2107
|
```
|
|
2090
2108
|
|
|
2091
2109
|
After:
|
|
2092
2110
|
|
|
2093
2111
|
```py
|
|
2094
2112
|
simulation = ...
|
|
2095
|
-
simulation.delete_arrays(
|
|
2113
|
+
simulation.delete_arrays("salary", "2018-08")
|
|
2096
2114
|
```
|
|
2097
2115
|
|
|
2098
2116
|
### 24.9.9 [#786](https://github.com/openfisca/openfisca-core/pull/786)
|
|
@@ -2264,15 +2282,15 @@ Before:
|
|
|
2264
2282
|
|
|
2265
2283
|
```py
|
|
2266
2284
|
simulation = ...
|
|
2267
|
-
holder = simulation.persons.get_holder(
|
|
2268
|
-
holder.set_input(
|
|
2285
|
+
holder = simulation.persons.get_holder("salary")
|
|
2286
|
+
holder.set_input("2018-08", [4000])
|
|
2269
2287
|
```
|
|
2270
2288
|
|
|
2271
2289
|
After:
|
|
2272
2290
|
|
|
2273
2291
|
```py
|
|
2274
2292
|
simulation = ...
|
|
2275
|
-
simulation.set_input(
|
|
2293
|
+
simulation.set_input("salary", "2018-08", [4000])
|
|
2276
2294
|
```
|
|
2277
2295
|
|
|
2278
2296
|
## 24.4.0 [#717](https://github.com/openfisca/openfisca-core/pull/717)
|
|
@@ -2334,14 +2352,16 @@ Dump:
|
|
|
2334
2352
|
|
|
2335
2353
|
```py
|
|
2336
2354
|
from openfisca_core.tools.simulation_dumper import dump_simulation
|
|
2337
|
-
|
|
2355
|
+
|
|
2356
|
+
dump_simulation(simulation, "/path/to/directory")
|
|
2338
2357
|
```
|
|
2339
2358
|
|
|
2340
2359
|
Restore:
|
|
2341
2360
|
|
|
2342
2361
|
```py
|
|
2343
2362
|
from openfisca_core.tools.simulation_dumper import restore_simulation
|
|
2344
|
-
|
|
2363
|
+
|
|
2364
|
+
simulation = restore_simulation("/path/to/directory", tax_benefit_system)
|
|
2345
2365
|
```
|
|
2346
2366
|
|
|
2347
2367
|
### 24.1.0 [#713](https://github.com/openfisca/openfisca-core/pull/713)
|
|
@@ -2943,21 +2963,17 @@ _Note: the 21.0.1 and 21.0.0 versions have been unpublished due to performance i
|
|
|
2943
2963
|
Before:
|
|
2944
2964
|
|
|
2945
2965
|
```py
|
|
2946
|
-
HOUSING_OCCUPANCY_STATUS = Enum([
|
|
2947
|
-
u'Tenant',
|
|
2948
|
-
u'Owner',
|
|
2949
|
-
u'Free lodger',
|
|
2950
|
-
u'Homeless'])
|
|
2966
|
+
HOUSING_OCCUPANCY_STATUS = Enum(["Tenant", "Owner", "Free lodger", "Homeless"])
|
|
2951
2967
|
```
|
|
2952
2968
|
|
|
2953
2969
|
Now:
|
|
2954
2970
|
|
|
2955
2971
|
```py
|
|
2956
2972
|
class HousingOccupancyStatus(Enum):
|
|
2957
|
-
tenant =
|
|
2958
|
-
owner =
|
|
2959
|
-
free_lodger =
|
|
2960
|
-
homeless =
|
|
2973
|
+
tenant = "Tenant"
|
|
2974
|
+
owner = "Owner"
|
|
2975
|
+
free_lodger = "Free lodger"
|
|
2976
|
+
homeless = "Homeless"
|
|
2961
2977
|
```
|
|
2962
2978
|
|
|
2963
2979
|
> Each Enum item has:
|
|
@@ -2968,11 +2984,11 @@ class HousingOccupancyStatus(Enum):
|
|
|
2968
2984
|
|
|
2969
2985
|
```py
|
|
2970
2986
|
class housing_occupancy_status(Variable):
|
|
2971
|
-
possible_values = HousingOccupancyStatus,
|
|
2987
|
+
possible_values = (HousingOccupancyStatus,)
|
|
2972
2988
|
default_value = HousingOccupancyStatus.tenant
|
|
2973
2989
|
entity = Household
|
|
2974
2990
|
definition_period = MONTH
|
|
2975
|
-
label =
|
|
2991
|
+
label = "Legal housing situation of the household concerning their main residence"
|
|
2976
2992
|
```
|
|
2977
2993
|
|
|
2978
2994
|
|
|
@@ -3017,11 +3033,11 @@ class housing_occupancy_status(Variable):
|
|
|
3017
3033
|
|
|
3018
3034
|
> Example:
|
|
3019
3035
|
```py
|
|
3020
|
-
holder = simulation.household.get_holder(
|
|
3036
|
+
holder = simulation.household.get_holder("housing_occupancy_status")
|
|
3021
3037
|
# Three possibilities
|
|
3022
3038
|
holder.set_input(period, numpy.asarray([HousingOccupancyStatus.owner]))
|
|
3023
|
-
holder.set_input(period, numpy.asarray([
|
|
3024
|
-
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
|
|
3025
3041
|
```
|
|
3026
3042
|
|
|
3027
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).
|
|
@@ -3067,7 +3083,7 @@ Before:
|
|
|
3067
3083
|
|
|
3068
3084
|
```py
|
|
3069
3085
|
class is_citizen(Variable):
|
|
3070
|
-
column = BoolCol(default
|
|
3086
|
+
column = BoolCol(default=True)
|
|
3071
3087
|
entity = Person
|
|
3072
3088
|
definition_period = MONTH
|
|
3073
3089
|
label = "Whether the person is a citizen"
|
|
@@ -3090,9 +3106,9 @@ Before:
|
|
|
3090
3106
|
|
|
3091
3107
|
```py
|
|
3092
3108
|
class zipcode(Variable):
|
|
3093
|
-
column = FixedStrCol(max_length
|
|
3109
|
+
column = FixedStrCol(max_length=5)
|
|
3094
3110
|
entity = Menage
|
|
3095
|
-
label =
|
|
3111
|
+
label = "Code INSEE (depcom) du lieu de résidence"
|
|
3096
3112
|
definition_period = MONTH
|
|
3097
3113
|
```
|
|
3098
3114
|
|
|
@@ -3103,7 +3119,7 @@ class zipcode(Variable):
|
|
|
3103
3119
|
value_type = str
|
|
3104
3120
|
max_length = 5
|
|
3105
3121
|
entity = Menage
|
|
3106
|
-
label =
|
|
3122
|
+
label = "Code INSEE (depcom) du lieu de résidence"
|
|
3107
3123
|
definition_period = MONTH
|
|
3108
3124
|
```
|
|
3109
3125
|
|
|
@@ -3113,16 +3129,10 @@ Before:
|
|
|
3113
3129
|
|
|
3114
3130
|
```py
|
|
3115
3131
|
class housing_occupancy_status(Variable):
|
|
3116
|
-
column = EnumCol(
|
|
3117
|
-
enum = Enum([
|
|
3118
|
-
u'Tenant',
|
|
3119
|
-
u'Owner',
|
|
3120
|
-
u'Free lodger',
|
|
3121
|
-
u'Homeless'])
|
|
3122
|
-
)
|
|
3132
|
+
column = EnumCol(enum=Enum(["Tenant", "Owner", "Free lodger", "Homeless"]))
|
|
3123
3133
|
entity = Household
|
|
3124
3134
|
definition_period = MONTH
|
|
3125
|
-
label =
|
|
3135
|
+
label = "Legal housing situation of the household concerning their main residence"
|
|
3126
3136
|
```
|
|
3127
3137
|
|
|
3128
3138
|
After:
|
|
@@ -3130,15 +3140,10 @@ After:
|
|
|
3130
3140
|
```py
|
|
3131
3141
|
class housing_occupancy_status(Variable):
|
|
3132
3142
|
value_type = Enum
|
|
3133
|
-
possible_values = Enum([
|
|
3134
|
-
u'Tenant',
|
|
3135
|
-
u'Owner',
|
|
3136
|
-
u'Free lodger',
|
|
3137
|
-
u'Homeless'
|
|
3138
|
-
])
|
|
3143
|
+
possible_values = Enum(["Tenant", "Owner", "Free lodger", "Homeless"])
|
|
3139
3144
|
entity = Household
|
|
3140
3145
|
definition_period = MONTH
|
|
3141
|
-
label =
|
|
3146
|
+
label = "Legal housing situation of the household concerning their main residence"
|
|
3142
3147
|
```
|
|
3143
3148
|
|
|
3144
3149
|
- Remove `PeriodSizeIndependentIntCol`:
|
|
@@ -3391,15 +3396,15 @@ For more information, check the [documentation](https://openfisca.org/doc/coding
|
|
|
3391
3396
|
- Before:
|
|
3392
3397
|
```python
|
|
3393
3398
|
new_legislation_parameters = update_legislation(
|
|
3394
|
-
legislation_json
|
|
3395
|
-
path
|
|
3396
|
-
period
|
|
3397
|
-
value
|
|
3398
|
-
|
|
3399
|
+
legislation_json=original_legislation_parameters,
|
|
3400
|
+
path=("children", "impot_revenu", "children", "bareme", "brackets", 1, "threshold"),
|
|
3401
|
+
period=reform_period,
|
|
3402
|
+
value=6011,
|
|
3403
|
+
)
|
|
3399
3404
|
```
|
|
3400
3405
|
- Now:
|
|
3401
3406
|
```python
|
|
3402
|
-
parameters.impot_revenu.bareme[1].threshold.update(period
|
|
3407
|
+
parameters.impot_revenu.bareme[1].threshold.update(period=reform_period, value=6011)
|
|
3403
3408
|
```
|
|
3404
3409
|
|
|
3405
3410
|
* Change the syntax to dynamically create new parameters
|
|
@@ -3415,45 +3420,54 @@ For more information, check the [documentation](https://openfisca.org/doc/coding
|
|
|
3415
3420
|
"format": "integer",
|
|
3416
3421
|
"unit": "currency",
|
|
3417
3422
|
"values": [
|
|
3418
|
-
{
|
|
3419
|
-
|
|
3420
|
-
|
|
3421
|
-
|
|
3423
|
+
{
|
|
3424
|
+
"start": "2016-01-01",
|
|
3425
|
+
},
|
|
3426
|
+
{"start": "2015-01-01", "value": round(1135 * (1 + inflation))},
|
|
3427
|
+
],
|
|
3428
|
+
},
|
|
3422
3429
|
"decote_seuil_couple": {
|
|
3423
3430
|
"@type": "Parameter",
|
|
3424
3431
|
"description": "Seuil de la décôte pour un couple",
|
|
3425
3432
|
"format": "integer",
|
|
3426
3433
|
"unit": "currency",
|
|
3427
3434
|
"values": [
|
|
3428
|
-
{
|
|
3429
|
-
|
|
3430
|
-
|
|
3431
|
-
|
|
3435
|
+
{
|
|
3436
|
+
"start": "2065-01-01",
|
|
3437
|
+
},
|
|
3438
|
+
{"start": "2015-01-01", "value": round(1870 * (1 + inflation))},
|
|
3439
|
+
],
|
|
3432
3440
|
},
|
|
3433
|
-
}
|
|
3434
|
-
|
|
3441
|
+
},
|
|
3442
|
+
}
|
|
3443
|
+
reference_legislation_copy["children"]["plf2016_conterfactual"] = (
|
|
3444
|
+
reform_legislation_subtree
|
|
3445
|
+
)
|
|
3435
3446
|
```
|
|
3436
3447
|
|
|
3437
3448
|
- Now:
|
|
3438
3449
|
```python
|
|
3439
3450
|
from openfisca_core.parameters import ParameterNode
|
|
3440
3451
|
|
|
3441
|
-
inflation = .001
|
|
3442
|
-
reform_parameters_subtree = ParameterNode(
|
|
3443
|
-
|
|
3444
|
-
|
|
3445
|
-
"
|
|
3446
|
-
|
|
3447
|
-
|
|
3448
|
-
|
|
3449
|
-
|
|
3450
|
-
|
|
3451
|
-
"
|
|
3452
|
-
|
|
3453
|
-
|
|
3454
|
-
|
|
3455
|
-
|
|
3456
|
-
|
|
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)
|
|
3457
3471
|
```
|
|
3458
3472
|
|
|
3459
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).
|
|
@@ -3494,12 +3508,14 @@ For more information, check the [documentation](https://openfisca.org/doc/coding
|
|
|
3494
3508
|
|
|
3495
3509
|
dir_path = os.path.dirname(__file__)
|
|
3496
3510
|
|
|
3511
|
+
|
|
3497
3512
|
def reform_modify_parameters(parameters):
|
|
3498
|
-
file_path = os.path.join(dir_path,
|
|
3499
|
-
reform_parameters_subtree = load_parameter_file(name
|
|
3500
|
-
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)
|
|
3501
3516
|
return parameters
|
|
3502
3517
|
|
|
3518
|
+
|
|
3503
3519
|
...
|
|
3504
3520
|
```
|
|
3505
3521
|
|
|
@@ -4099,9 +4115,11 @@ Unlike simple formulas, a `DatedVariable` have several functions. We thus need t
|
|
|
4099
4115
|
Examples:
|
|
4100
4116
|
```python
|
|
4101
4117
|
simulation = scenario.new_simulation(trace=True)
|
|
4102
|
-
simulation.calculate(
|
|
4103
|
-
simulation.calculate(
|
|
4104
|
-
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
|
+
)
|
|
4105
4123
|
```
|
|
4106
4124
|
|
|
4107
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
|
|
@@ -212,7 +196,7 @@ END
|
|
|
212
196
|
|
|
213
197
|
OpenFisca’s toolchain checks whether documentation builds correctly and updates it automatically with each contribution to this repository.
|
|
214
198
|
|
|
215
|
-
In the meantime, please take a look at our [contributing guidelines](CONTRIBUTING.md) for some general tips on how to document your contributions, and at our official documentation's [repository](https://github.com/openfisca/openfisca-doc/blob/
|
|
199
|
+
In the meantime, please take a look at our [contributing guidelines](CONTRIBUTING.md) for some general tips on how to document your contributions, and at our official documentation's [repository](https://github.com/openfisca/openfisca-doc/blob/main/README.md) to in case you want to know how to build it by yourself —and improve it!
|
|
216
200
|
|
|
217
201
|
## Serving the API
|
|
218
202
|
|
|
@@ -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
|
|
@@ -212,7 +196,7 @@ END
|
|
|
212
196
|
|
|
213
197
|
OpenFisca’s toolchain checks whether documentation builds correctly and updates it automatically with each contribution to this repository.
|
|
214
198
|
|
|
215
|
-
In the meantime, please take a look at our [contributing guidelines](CONTRIBUTING.md) for some general tips on how to document your contributions, and at our official documentation's [repository](https://github.com/openfisca/openfisca-doc/blob/
|
|
199
|
+
In the meantime, please take a look at our [contributing guidelines](CONTRIBUTING.md) for some general tips on how to document your contributions, and at our official documentation's [repository](https://github.com/openfisca/openfisca-doc/blob/main/README.md) to in case you want to know how to build it by yourself —and improve it!
|
|
216
200
|
|
|
217
201
|
## Serving the API
|
|
218
202
|
|
|
@@ -131,7 +131,7 @@ END
|
|
|
131
131
|
|
|
132
132
|
OpenFisca’s toolchain checks whether documentation builds correctly and updates it automatically with each contribution to this repository.
|
|
133
133
|
|
|
134
|
-
In the meantime, please take a look at our [contributing guidelines](CONTRIBUTING.md) for some general tips on how to document your contributions, and at our official documentation's [repository](https://github.com/openfisca/openfisca-doc/blob/
|
|
134
|
+
In the meantime, please take a look at our [contributing guidelines](CONTRIBUTING.md) for some general tips on how to document your contributions, and at our official documentation's [repository](https://github.com/openfisca/openfisca-doc/blob/main/README.md) to in case you want to know how to build it by yourself —and improve it!
|
|
135
135
|
|
|
136
136
|
## Serving the API
|
|
137
137
|
|
|
@@ -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.2 → 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",
|