OpenFisca-Core 45.0.5__tar.gz → 46.0.0__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.5 → openfisca_core-46.0.0/OpenFisca_Core.egg-info}/PKG-INFO +30 -86
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/OpenFisca_Core.egg-info/SOURCES.txt +17 -4
- openfisca_core-46.0.0/OpenFisca_Core.egg-info/requires.txt +31 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/OpenFisca_Core.egg-info/top_level.txt +3 -0
- {openfisca_core-45.0.5/OpenFisca_Core.egg-info → openfisca_core-46.0.0}/PKG-INFO +30 -86
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/README.md +11 -47
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/entities/types.py +3 -1
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/indexed_enums/enum_array.py +1 -2
- openfisca_core-46.0.0/openfisca_core/scripts/__pycache__/__init__.cpython-313.pyc +0 -0
- openfisca_core-46.0.0/openfisca_core/scripts/__pycache__/find_placeholders.cpython-313.pyc +0 -0
- openfisca_core-46.0.0/openfisca_core/scripts/__pycache__/measure_numpy_condition_notations.cpython-313.pyc +0 -0
- openfisca_core-46.0.0/openfisca_core/scripts/__pycache__/measure_performances.cpython-313.pyc +0 -0
- openfisca_core-46.0.0/openfisca_core/scripts/__pycache__/measure_performances_fancy_indexing.cpython-313.pyc +0 -0
- openfisca_core-46.0.0/openfisca_core/scripts/__pycache__/openfisca_command.cpython-313.pyc +0 -0
- openfisca_core-46.0.0/openfisca_core/scripts/__pycache__/remove_fuzzy.cpython-313.pyc +0 -0
- openfisca_core-46.0.0/openfisca_core/scripts/__pycache__/run_test.cpython-313.pyc +0 -0
- openfisca_core-46.0.0/openfisca_core/scripts/__pycache__/simulation_generator.cpython-313.pyc +0 -0
- openfisca_core-46.0.0/openfisca_core/scripts/assets/__pycache__/__init__.cpython-313.pyc +0 -0
- openfisca_core-46.0.0/openfisca_core/scripts/migrations/__pycache__/__init__.cpython-313.pyc +0 -0
- openfisca_core-46.0.0/openfisca_core/scripts/migrations/__pycache__/v24_to_25.cpython-313.pyc +0 -0
- openfisca_core-46.0.0/openfisca_core/scripts/migrations/v16_2_to_v17/__pycache__/__init__.cpython-313.pyc +0 -0
- openfisca_core-46.0.0/openfisca_core/scripts/migrations/v16_2_to_v17/__pycache__/xml_to_yaml_country_template.cpython-313.pyc +0 -0
- openfisca_core-46.0.0/openfisca_core/scripts/migrations/v16_2_to_v17/__pycache__/xml_to_yaml_extension_template.cpython-313.pyc +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/simulations/_build_default_simulation.py +2 -1
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/simulations/_build_from_variables.py +1 -1
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/simulations/typing.py +1 -2
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/tools/test_runner.py +3 -3
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/types.py +2 -2
- openfisca_core-46.0.0/pyproject.toml +146 -0
- openfisca_core-46.0.0/setup.cfg +4 -0
- openfisca_core-46.0.0/stubs/numexpr/__init__.pyi +9 -0
- openfisca_core-45.0.5/CHANGELOG.md +0 -4197
- openfisca_core-45.0.5/OpenFisca_Core.egg-info/requires.txt +0 -43
- openfisca_core-45.0.5/pyproject.toml +0 -25
- openfisca_core-45.0.5/setup.cfg +0 -32
- openfisca_core-45.0.5/setup.py +0 -113
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/LICENSE +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/MANIFEST.in +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/OpenFisca_Core.egg-info/dependency_links.txt +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/OpenFisca_Core.egg-info/entry_points.txt +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/__init__.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/commons/__init__.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/commons/dummy.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/commons/formulas.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/commons/misc.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/commons/py.typed +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/commons/rates.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/commons/tests/__init__.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/commons/tests/test_dummy.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/commons/tests/test_formulas.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/commons/tests/test_rates.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/data_storage/__init__.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/data_storage/in_memory_storage.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/data_storage/on_disk_storage.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/data_storage/types.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/entities/__init__.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/entities/_core_entity.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/entities/_description.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/entities/entity.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/entities/group_entity.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/entities/helpers.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/entities/py.typed +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/entities/role.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/entities/tests/__init__.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/entities/tests/test_entity.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/entities/tests/test_group_entity.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/entities/tests/test_role.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/errors/__init__.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/errors/cycle_error.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/errors/empty_argument_error.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/errors/nan_creation_error.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/errors/parameter_not_found_error.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/errors/parameter_parsing_error.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/errors/period_mismatch_error.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/errors/situation_parsing_error.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/errors/spiral_error.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/errors/variable_name_config_error.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/errors/variable_not_found_error.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/experimental/__init__.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/experimental/_errors.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/experimental/_memory_config.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/formula_helpers.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/holders/__init__.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/holders/helpers.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/holders/holder.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/holders/tests/__init__.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/holders/tests/test_helpers.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/holders/types.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/indexed_enums/__init__.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/indexed_enums/_enum_type.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/indexed_enums/_errors.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/indexed_enums/_guards.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/indexed_enums/_utils.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/indexed_enums/config.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/indexed_enums/enum.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/indexed_enums/py.typed +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/indexed_enums/tests/__init__.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/indexed_enums/tests/test_enum.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/indexed_enums/tests/test_enum_array.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/indexed_enums/types.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/memory_config.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/model_api.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/parameters/__init__.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/parameters/at_instant_like.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/parameters/config.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/parameters/helpers.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/parameters/parameter.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/parameters/parameter_at_instant.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/parameters/parameter_node.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/parameters/parameter_node_at_instant.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/parameters/parameter_scale.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/parameters/parameter_scale_bracket.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/parameters/values_history.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/parameters/vectorial_parameter_node_at_instant.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/periods/__init__.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/periods/_errors.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/periods/_parsers.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/periods/config.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/periods/date_unit.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/periods/helpers.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/periods/instant_.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/periods/period_.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/periods/py.typed +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/periods/tests/__init__.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/periods/tests/helpers/__init__.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/periods/tests/helpers/test_helpers.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/periods/tests/helpers/test_instant.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/periods/tests/helpers/test_period.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/periods/tests/test_instant.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/periods/tests/test_parsers.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/periods/tests/test_period.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/populations/__init__.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/populations/_core_population.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/populations/_errors.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/populations/group_population.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/populations/population.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/populations/tests/__init__.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/populations/tests/test_members_position.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/populations/types.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/projectors/__init__.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/projectors/entity_to_person_projector.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/projectors/first_person_to_entity_projector.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/projectors/helpers.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/projectors/projector.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/projectors/typing.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/projectors/unique_role_to_entity_projector.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/rates.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/reforms/__init__.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/reforms/in_yaml_test_reform.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/reforms/reform.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/scripts/__init__.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/scripts/assets/__init__.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/scripts/assets/index.html +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/scripts/find_placeholders.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/scripts/measure_numpy_condition_notations.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/scripts/measure_performances.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/scripts/measure_performances_fancy_indexing.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/scripts/migrations/__init__.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/scripts/migrations/v16_2_to_v17/__init__.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/scripts/migrations/v16_2_to_v17/legislation.xsd +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/scripts/migrations/v16_2_to_v17/xml_to_yaml_country_template.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/scripts/migrations/v16_2_to_v17/xml_to_yaml_extension_template.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/scripts/migrations/v24_to_25.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/scripts/openfisca_command.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/scripts/remove_fuzzy.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/scripts/run_test.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/scripts/simulation_generator.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/simulation_builder.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/simulations/__init__.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/simulations/_type_guards.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/simulations/helpers.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/simulations/simulation.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/simulations/simulation_builder.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/taxbenefitsystems/__init__.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/taxbenefitsystems/tax_benefit_system.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/taxscales/__init__.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/taxscales/abstract_rate_tax_scale.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/taxscales/abstract_tax_scale.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/taxscales/amount_tax_scale_like.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/taxscales/helpers.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/taxscales/linear_average_rate_tax_scale.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/taxscales/marginal_amount_tax_scale.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/taxscales/marginal_rate_tax_scale.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/taxscales/rate_tax_scale_like.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/taxscales/single_amount_tax_scale.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/taxscales/tax_scale_like.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/tools/__init__.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/tools/parallel_plugin.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/tools/simulation_dumper.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/tracers/__init__.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/tracers/computation_log.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/tracers/flat_trace.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/tracers/full_tracer.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/tracers/performance_log.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/tracers/simple_tracer.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/tracers/trace_node.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/tracers/tracing_parameter_node_at_instant.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/variables/__init__.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/variables/config.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/variables/helpers.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/variables/tests/__init__.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/variables/tests/test_definition_period.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/variables/variable.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/warnings/__init__.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/warnings/libyaml_warning.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_core/warnings/tempfile_warning.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_web_api/__init__.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_web_api/app.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_web_api/errors.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_web_api/handlers.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_web_api/loader/__init__.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_web_api/loader/entities.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_web_api/loader/parameters.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_web_api/loader/spec.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_web_api/loader/tax_benefit_system.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_web_api/loader/variables.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_web_api/openAPI.yml +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_web_api/scripts/__init__.py +0 -0
- {openfisca_core-45.0.5 → openfisca_core-46.0.0}/openfisca_web_api/scripts/serve.py +0 -0
|
@@ -1,67 +1,47 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: OpenFisca-Core
|
|
3
|
-
Version:
|
|
3
|
+
Version: 46.0.0
|
|
4
4
|
Summary: A versatile microsimulation free software
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
Author-email: OpenFisca Team <contact@openfisca.org>
|
|
6
|
+
License-Expression: AGPL-3.0-or-later
|
|
7
|
+
Project-URL: Homepage, https://github.com/openfisca/openfisca-core
|
|
8
|
+
Project-URL: Documentation, https://openfisca.org/doc/
|
|
9
|
+
Project-URL: Repository, https://github.com/openfisca/openfisca-core.git
|
|
10
|
+
Keywords: benefit,microsimulation,social,tax
|
|
10
11
|
Classifier: Development Status :: 5 - Production/Stable
|
|
11
12
|
Classifier: Operating System :: POSIX
|
|
12
13
|
Classifier: Programming Language :: Python
|
|
13
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
14
14
|
Classifier: Programming Language :: Python :: 3.11
|
|
15
15
|
Classifier: Programming Language :: Python :: 3.12
|
|
16
16
|
Classifier: Programming Language :: Python :: 3.13
|
|
17
17
|
Classifier: Topic :: Scientific/Engineering :: Information Analysis
|
|
18
|
+
Requires-Python: >=3.11
|
|
18
19
|
Description-Content-Type: text/markdown
|
|
19
20
|
License-File: LICENSE
|
|
20
|
-
Requires-Dist: PyYAML<7.0,>=6.0
|
|
21
|
+
Requires-Dist: PyYAML<7.0,>=6.0.1
|
|
22
|
+
Requires-Dist: PyYAML<7.0,>=6.0.2; python_version >= "3.13"
|
|
21
23
|
Requires-Dist: StrEnum<0.5.0,>=0.4.8
|
|
22
24
|
Requires-Dist: dpath<3.0,>=2.2.0
|
|
23
25
|
Requires-Dist: numexpr<3.0,>=2.10.1
|
|
24
|
-
Requires-Dist: numpy
|
|
25
|
-
Requires-Dist: numpy<=3,>=1.26
|
|
26
|
-
Requires-Dist: numpy<=3,>=2.1
|
|
26
|
+
Requires-Dist: numpy<=3,>=1.25; python_version >= "3.11"
|
|
27
|
+
Requires-Dist: numpy<=3,>=1.26; python_version >= "3.12"
|
|
28
|
+
Requires-Dist: numpy<=3,>=2.1; python_version >= "3.13"
|
|
27
29
|
Requires-Dist: pendulum<4.0.0,>=3.0.0
|
|
28
30
|
Requires-Dist: psutil<6.0,>=5.9.4
|
|
29
|
-
Requires-Dist: pytest<
|
|
31
|
+
Requires-Dist: pytest<10.0,>=8.3.3
|
|
30
32
|
Requires-Dist: sortedcontainers<3.0,>=2.4.0
|
|
31
|
-
Requires-Dist: typing_extensions<5.0,>=4.
|
|
33
|
+
Requires-Dist: typing_extensions<5.0,>=4.16.0
|
|
32
34
|
Provides-Extra: web-api
|
|
33
35
|
Requires-Dist: Flask<4.0,>=2.2.3; extra == "web-api"
|
|
34
36
|
Requires-Dist: Flask-Cors<4.0,>=3.0.10; extra == "web-api"
|
|
35
37
|
Requires-Dist: gunicorn<22.0,>=21.0; extra == "web-api"
|
|
36
38
|
Requires-Dist: Werkzeug<4.0,>=2.2.3; extra == "web-api"
|
|
37
|
-
Provides-Extra: dev
|
|
38
|
-
Requires-Dist: codespell<3.0,>=2.3.0; extra == "dev"
|
|
39
|
-
Requires-Dist: colorama<0.5,>=0.4.4; extra == "dev"
|
|
40
|
-
Requires-Dist: mypy<2.0,>=1.11.2; extra == "dev"
|
|
41
|
-
Requires-Dist: openapi-spec-validator<0.8.0,>=0.7.1; extra == "dev"
|
|
42
|
-
Requires-Dist: ruff<1.0,>=0.6.9; extra == "dev"
|
|
43
|
-
Requires-Dist: Flask<4.0,>=2.2.3; extra == "dev"
|
|
44
|
-
Requires-Dist: Flask-Cors<4.0,>=3.0.10; extra == "dev"
|
|
45
|
-
Requires-Dist: gunicorn<22.0,>=21.0; extra == "dev"
|
|
46
|
-
Requires-Dist: Werkzeug<4.0,>=2.2.3; extra == "dev"
|
|
47
39
|
Provides-Extra: ci
|
|
48
|
-
Requires-Dist:
|
|
49
|
-
Requires-Dist:
|
|
50
|
-
Requires-Dist:
|
|
51
|
-
|
|
52
|
-
Requires-Dist: OpenFisca-Tracker<0.5.0,>=0.4.0; extra == "tracker"
|
|
53
|
-
Dynamic: author
|
|
54
|
-
Dynamic: author-email
|
|
55
|
-
Dynamic: classifier
|
|
56
|
-
Dynamic: description
|
|
57
|
-
Dynamic: description-content-type
|
|
58
|
-
Dynamic: home-page
|
|
59
|
-
Dynamic: keywords
|
|
60
|
-
Dynamic: license
|
|
40
|
+
Requires-Dist: openapi-spec-validator<0.8.0,>=0.7.1; extra == "ci"
|
|
41
|
+
Requires-Dist: OpenFisca-Core[web-api]; extra == "ci"
|
|
42
|
+
Requires-Dist: openfisca-country-template<9,>=8; extra == "ci"
|
|
43
|
+
Requires-Dist: openfisca-extension-template<3,>=2.0.7; extra == "ci"
|
|
61
44
|
Dynamic: license-file
|
|
62
|
-
Dynamic: provides-extra
|
|
63
|
-
Dynamic: requires-dist
|
|
64
|
-
Dynamic: summary
|
|
65
45
|
|
|
66
46
|
# OpenFisca Core
|
|
67
47
|
|
|
@@ -81,7 +61,7 @@ This package contains the core features of OpenFisca, which are meant to be used
|
|
|
81
61
|
|
|
82
62
|
## Environment
|
|
83
63
|
|
|
84
|
-
OpenFisca runs on Python. See [
|
|
64
|
+
OpenFisca runs on Python. See [pyproject.toml](pyproject.toml) for supported versions.
|
|
85
65
|
|
|
86
66
|
OpenFisca also relies strongly on NumPy. The last four minor versions should work, but only the latest/stable is tested.
|
|
87
67
|
|
|
@@ -89,10 +69,9 @@ OpenFisca also relies strongly on NumPy. The last four minor versions should wor
|
|
|
89
69
|
|
|
90
70
|
If you're developing your own country package, you don't need to explicitly install OpenFisca-Core. It just needs to appear [in your package dependencies](https://github.com/openfisca/openfisca-france/blob/100.0.0/setup.py#L60).
|
|
91
71
|
If you want to contribute to OpenFisca-Core itself, welcome!
|
|
92
|
-
To install it locally
|
|
93
|
-
* or standard Python [pip](https://packaging.python.org/en/latest/key_projects/#pip) package manager.
|
|
72
|
+
To install it locally we recommend to use [uv](https://docs.astral.sh/uv/getting-started/).
|
|
94
73
|
|
|
95
|
-
### Installing `openfisca-core` with `
|
|
74
|
+
### Installing `openfisca-core` with `uv`
|
|
96
75
|
|
|
97
76
|
This installation requires [Python](https://www.python.org/downloads/) and [GIT](https://git-scm.com) installations.
|
|
98
77
|
|
|
@@ -101,19 +80,11 @@ To install `openfisca-core` locally in development mode run the following comman
|
|
|
101
80
|
```bash
|
|
102
81
|
git clone https://github.com/openfisca/openfisca-core.git
|
|
103
82
|
cd openfisca-core
|
|
104
|
-
|
|
105
|
-
source .venv/bin/activate
|
|
106
|
-
make install-deps install-edit
|
|
83
|
+
uv run make test
|
|
107
84
|
```
|
|
108
85
|
|
|
109
86
|
## Testing
|
|
110
87
|
|
|
111
|
-
Install the test dependencies:
|
|
112
|
-
|
|
113
|
-
```
|
|
114
|
-
make install-deps install-edit install-test
|
|
115
|
-
```
|
|
116
|
-
|
|
117
88
|
> For integration testing purposes, `openfisca-core` relies on
|
|
118
89
|
> [country-template](https://github.com/openfisca/country-template.git) and
|
|
119
90
|
> [extension-template](https://github.com/openfisca/extension-template.git).
|
|
@@ -123,12 +94,12 @@ make install-deps install-edit install-test
|
|
|
123
94
|
To run the entire test suite:
|
|
124
95
|
|
|
125
96
|
```sh
|
|
126
|
-
make test
|
|
97
|
+
uv run make test
|
|
127
98
|
```
|
|
128
99
|
|
|
129
100
|
If you have many tests, you could run them in parallel :
|
|
130
101
|
```sh
|
|
131
|
-
make test-core openfisca_args="--in-parallel"
|
|
102
|
+
uv run make test-core openfisca_args="--in-parallel"
|
|
132
103
|
```
|
|
133
104
|
|
|
134
105
|
You could add an option `--num-workers=4` to limit to 4 threads. Default is your CPU Core number minus 1.
|
|
@@ -138,13 +109,13 @@ Be aware that this add overhead so use it only for huge test suite.
|
|
|
138
109
|
To run all the tests defined on a test file:
|
|
139
110
|
|
|
140
111
|
```sh
|
|
141
|
-
pytest tests/core/test_parameters.py
|
|
112
|
+
uv run pytest tests/core/test_parameters.py
|
|
142
113
|
```
|
|
143
114
|
|
|
144
115
|
To run a single test:
|
|
145
116
|
|
|
146
117
|
```sh
|
|
147
|
-
pytest tests/core/test_parameters.py -k test_parameter_for_period
|
|
118
|
+
uv run pytest tests/core/test_parameters.py -k test_parameter_for_period
|
|
148
119
|
```
|
|
149
120
|
|
|
150
121
|
## Types
|
|
@@ -156,7 +127,7 @@ As NumPy introduced the `typing` module in 1.20.0, to ensure type hints do not b
|
|
|
156
127
|
Type checking is already run with `make test`. To run the type checker alone:
|
|
157
128
|
|
|
158
129
|
```sh
|
|
159
|
-
make check-types
|
|
130
|
+
uv run make check-types
|
|
160
131
|
```
|
|
161
132
|
|
|
162
133
|
## Style
|
|
@@ -166,13 +137,13 @@ This repository adheres to a [certain coding style](STYLEGUIDE.md), and we invit
|
|
|
166
137
|
Style checking is already run with `make test`. To run the style checker alone:
|
|
167
138
|
|
|
168
139
|
```sh
|
|
169
|
-
make check-style
|
|
140
|
+
uv run make check-style
|
|
170
141
|
```
|
|
171
142
|
|
|
172
143
|
To automatically style-format your code changes:
|
|
173
144
|
|
|
174
145
|
```sh
|
|
175
|
-
make format-style
|
|
146
|
+
uv run make format-style
|
|
176
147
|
```
|
|
177
148
|
|
|
178
149
|
To automatically style-format your code changes each time you commit:
|
|
@@ -218,30 +189,3 @@ You can test that the API is running by executing the command:
|
|
|
218
189
|
curl http://localhost:2000/parameters
|
|
219
190
|
```
|
|
220
191
|
For more information about endpoints and input formatting, see the [official documentation](https://openfisca.org/doc/openfisca-web-api).
|
|
221
|
-
|
|
222
|
-
### Tracker
|
|
223
|
-
|
|
224
|
-
The OpenFisca Web API comes with an [optional tracker](https://github.com/openfisca/tracker) which allows you to measure the usage of the API.
|
|
225
|
-
|
|
226
|
-
#### Tracker installation
|
|
227
|
-
|
|
228
|
-
The tracker is not installed by default. To install it, run:
|
|
229
|
-
|
|
230
|
-
```sh
|
|
231
|
-
pip install openfisca_core[tracker] --use-deprecated=legacy-resolver # Or `pip install --editable ".[tracker]"` for an editable installation
|
|
232
|
-
```
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
#### Tracker configuration
|
|
236
|
-
|
|
237
|
-
The tracker is activated when these two options are set:
|
|
238
|
-
|
|
239
|
-
* `--tracker-url`: An URL ending with `piwik.php`. It defines the Piwik instance that will receive the tracking information. To use the main OpenFisca Piwik instance, use `https://stats.data.gouv.fr/piwik.php`.
|
|
240
|
-
* `--tracker-idsite`: An integer. It defines the identifier of the tracked site on your Piwik instance. To use the main OpenFisca piwik instance, use `4`.
|
|
241
|
-
* `--tracker-token`: A string. It defines the Piwik API Authentication token to differentiate API calls based on the user IP. Otherwise, all API calls will seem to come from your server. The Piwik API Authentication token can be found in your Piwik interface when you are logged in.
|
|
242
|
-
|
|
243
|
-
For instance, to run the Web API with the mock country package `openfisca_country_template` and the tracker activated, run:
|
|
244
|
-
|
|
245
|
-
```sh
|
|
246
|
-
openfisca serve --country-package openfisca_country_template --port 5000 --tracker-url https://stats.data.gouv.fr/piwik.php --tracker-idsite 4 --tracker-token $TRACKER_TOKEN
|
|
247
|
-
```
|
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
CHANGELOG.md
|
|
2
1
|
LICENSE
|
|
3
2
|
MANIFEST.in
|
|
4
3
|
README.md
|
|
5
4
|
pyproject.toml
|
|
6
|
-
setup.cfg
|
|
7
|
-
setup.py
|
|
8
5
|
OpenFisca_Core.egg-info/PKG-INFO
|
|
9
6
|
OpenFisca_Core.egg-info/SOURCES.txt
|
|
10
7
|
OpenFisca_Core.egg-info/dependency_links.txt
|
|
@@ -134,14 +131,29 @@ openfisca_core/scripts/openfisca_command.py
|
|
|
134
131
|
openfisca_core/scripts/remove_fuzzy.py
|
|
135
132
|
openfisca_core/scripts/run_test.py
|
|
136
133
|
openfisca_core/scripts/simulation_generator.py
|
|
134
|
+
openfisca_core/scripts/__pycache__/__init__.cpython-313.pyc
|
|
135
|
+
openfisca_core/scripts/__pycache__/find_placeholders.cpython-313.pyc
|
|
136
|
+
openfisca_core/scripts/__pycache__/measure_numpy_condition_notations.cpython-313.pyc
|
|
137
|
+
openfisca_core/scripts/__pycache__/measure_performances.cpython-313.pyc
|
|
138
|
+
openfisca_core/scripts/__pycache__/measure_performances_fancy_indexing.cpython-313.pyc
|
|
139
|
+
openfisca_core/scripts/__pycache__/openfisca_command.cpython-313.pyc
|
|
140
|
+
openfisca_core/scripts/__pycache__/remove_fuzzy.cpython-313.pyc
|
|
141
|
+
openfisca_core/scripts/__pycache__/run_test.cpython-313.pyc
|
|
142
|
+
openfisca_core/scripts/__pycache__/simulation_generator.cpython-313.pyc
|
|
137
143
|
openfisca_core/scripts/assets/__init__.py
|
|
138
144
|
openfisca_core/scripts/assets/index.html
|
|
145
|
+
openfisca_core/scripts/assets/__pycache__/__init__.cpython-313.pyc
|
|
139
146
|
openfisca_core/scripts/migrations/__init__.py
|
|
140
147
|
openfisca_core/scripts/migrations/v24_to_25.py
|
|
148
|
+
openfisca_core/scripts/migrations/__pycache__/__init__.cpython-313.pyc
|
|
149
|
+
openfisca_core/scripts/migrations/__pycache__/v24_to_25.cpython-313.pyc
|
|
141
150
|
openfisca_core/scripts/migrations/v16_2_to_v17/__init__.py
|
|
142
151
|
openfisca_core/scripts/migrations/v16_2_to_v17/legislation.xsd
|
|
143
152
|
openfisca_core/scripts/migrations/v16_2_to_v17/xml_to_yaml_country_template.py
|
|
144
153
|
openfisca_core/scripts/migrations/v16_2_to_v17/xml_to_yaml_extension_template.py
|
|
154
|
+
openfisca_core/scripts/migrations/v16_2_to_v17/__pycache__/__init__.cpython-313.pyc
|
|
155
|
+
openfisca_core/scripts/migrations/v16_2_to_v17/__pycache__/xml_to_yaml_country_template.cpython-313.pyc
|
|
156
|
+
openfisca_core/scripts/migrations/v16_2_to_v17/__pycache__/xml_to_yaml_extension_template.cpython-313.pyc
|
|
145
157
|
openfisca_core/simulations/__init__.py
|
|
146
158
|
openfisca_core/simulations/_build_default_simulation.py
|
|
147
159
|
openfisca_core/simulations/_build_from_variables.py
|
|
@@ -196,4 +208,5 @@ openfisca_web_api/loader/spec.py
|
|
|
196
208
|
openfisca_web_api/loader/tax_benefit_system.py
|
|
197
209
|
openfisca_web_api/loader/variables.py
|
|
198
210
|
openfisca_web_api/scripts/__init__.py
|
|
199
|
-
openfisca_web_api/scripts/serve.py
|
|
211
|
+
openfisca_web_api/scripts/serve.py
|
|
212
|
+
stubs/numexpr/__init__.pyi
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
PyYAML<7.0,>=6.0.1
|
|
2
|
+
StrEnum<0.5.0,>=0.4.8
|
|
3
|
+
dpath<3.0,>=2.2.0
|
|
4
|
+
numexpr<3.0,>=2.10.1
|
|
5
|
+
pendulum<4.0.0,>=3.0.0
|
|
6
|
+
psutil<6.0,>=5.9.4
|
|
7
|
+
pytest<10.0,>=8.3.3
|
|
8
|
+
sortedcontainers<3.0,>=2.4.0
|
|
9
|
+
typing_extensions<5.0,>=4.16.0
|
|
10
|
+
|
|
11
|
+
[:python_version >= "3.11"]
|
|
12
|
+
numpy<=3,>=1.25
|
|
13
|
+
|
|
14
|
+
[:python_version >= "3.12"]
|
|
15
|
+
numpy<=3,>=1.26
|
|
16
|
+
|
|
17
|
+
[:python_version >= "3.13"]
|
|
18
|
+
PyYAML<7.0,>=6.0.2
|
|
19
|
+
numpy<=3,>=2.1
|
|
20
|
+
|
|
21
|
+
[ci]
|
|
22
|
+
openapi-spec-validator<0.8.0,>=0.7.1
|
|
23
|
+
OpenFisca-Core[web-api]
|
|
24
|
+
openfisca-country-template<9,>=8
|
|
25
|
+
openfisca-extension-template<3,>=2.0.7
|
|
26
|
+
|
|
27
|
+
[web-api]
|
|
28
|
+
Flask<4.0,>=2.2.3
|
|
29
|
+
Flask-Cors<4.0,>=3.0.10
|
|
30
|
+
gunicorn<22.0,>=21.0
|
|
31
|
+
Werkzeug<4.0,>=2.2.3
|
|
@@ -1,67 +1,47 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: OpenFisca-Core
|
|
3
|
-
Version:
|
|
3
|
+
Version: 46.0.0
|
|
4
4
|
Summary: A versatile microsimulation free software
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
Author-email: OpenFisca Team <contact@openfisca.org>
|
|
6
|
+
License-Expression: AGPL-3.0-or-later
|
|
7
|
+
Project-URL: Homepage, https://github.com/openfisca/openfisca-core
|
|
8
|
+
Project-URL: Documentation, https://openfisca.org/doc/
|
|
9
|
+
Project-URL: Repository, https://github.com/openfisca/openfisca-core.git
|
|
10
|
+
Keywords: benefit,microsimulation,social,tax
|
|
10
11
|
Classifier: Development Status :: 5 - Production/Stable
|
|
11
12
|
Classifier: Operating System :: POSIX
|
|
12
13
|
Classifier: Programming Language :: Python
|
|
13
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
14
14
|
Classifier: Programming Language :: Python :: 3.11
|
|
15
15
|
Classifier: Programming Language :: Python :: 3.12
|
|
16
16
|
Classifier: Programming Language :: Python :: 3.13
|
|
17
17
|
Classifier: Topic :: Scientific/Engineering :: Information Analysis
|
|
18
|
+
Requires-Python: >=3.11
|
|
18
19
|
Description-Content-Type: text/markdown
|
|
19
20
|
License-File: LICENSE
|
|
20
|
-
Requires-Dist: PyYAML<7.0,>=6.0
|
|
21
|
+
Requires-Dist: PyYAML<7.0,>=6.0.1
|
|
22
|
+
Requires-Dist: PyYAML<7.0,>=6.0.2; python_version >= "3.13"
|
|
21
23
|
Requires-Dist: StrEnum<0.5.0,>=0.4.8
|
|
22
24
|
Requires-Dist: dpath<3.0,>=2.2.0
|
|
23
25
|
Requires-Dist: numexpr<3.0,>=2.10.1
|
|
24
|
-
Requires-Dist: numpy
|
|
25
|
-
Requires-Dist: numpy<=3,>=1.26
|
|
26
|
-
Requires-Dist: numpy<=3,>=2.1
|
|
26
|
+
Requires-Dist: numpy<=3,>=1.25; python_version >= "3.11"
|
|
27
|
+
Requires-Dist: numpy<=3,>=1.26; python_version >= "3.12"
|
|
28
|
+
Requires-Dist: numpy<=3,>=2.1; python_version >= "3.13"
|
|
27
29
|
Requires-Dist: pendulum<4.0.0,>=3.0.0
|
|
28
30
|
Requires-Dist: psutil<6.0,>=5.9.4
|
|
29
|
-
Requires-Dist: pytest<
|
|
31
|
+
Requires-Dist: pytest<10.0,>=8.3.3
|
|
30
32
|
Requires-Dist: sortedcontainers<3.0,>=2.4.0
|
|
31
|
-
Requires-Dist: typing_extensions<5.0,>=4.
|
|
33
|
+
Requires-Dist: typing_extensions<5.0,>=4.16.0
|
|
32
34
|
Provides-Extra: web-api
|
|
33
35
|
Requires-Dist: Flask<4.0,>=2.2.3; extra == "web-api"
|
|
34
36
|
Requires-Dist: Flask-Cors<4.0,>=3.0.10; extra == "web-api"
|
|
35
37
|
Requires-Dist: gunicorn<22.0,>=21.0; extra == "web-api"
|
|
36
38
|
Requires-Dist: Werkzeug<4.0,>=2.2.3; extra == "web-api"
|
|
37
|
-
Provides-Extra: dev
|
|
38
|
-
Requires-Dist: codespell<3.0,>=2.3.0; extra == "dev"
|
|
39
|
-
Requires-Dist: colorama<0.5,>=0.4.4; extra == "dev"
|
|
40
|
-
Requires-Dist: mypy<2.0,>=1.11.2; extra == "dev"
|
|
41
|
-
Requires-Dist: openapi-spec-validator<0.8.0,>=0.7.1; extra == "dev"
|
|
42
|
-
Requires-Dist: ruff<1.0,>=0.6.9; extra == "dev"
|
|
43
|
-
Requires-Dist: Flask<4.0,>=2.2.3; extra == "dev"
|
|
44
|
-
Requires-Dist: Flask-Cors<4.0,>=3.0.10; extra == "dev"
|
|
45
|
-
Requires-Dist: gunicorn<22.0,>=21.0; extra == "dev"
|
|
46
|
-
Requires-Dist: Werkzeug<4.0,>=2.2.3; extra == "dev"
|
|
47
39
|
Provides-Extra: ci
|
|
48
|
-
Requires-Dist:
|
|
49
|
-
Requires-Dist:
|
|
50
|
-
Requires-Dist:
|
|
51
|
-
|
|
52
|
-
Requires-Dist: OpenFisca-Tracker<0.5.0,>=0.4.0; extra == "tracker"
|
|
53
|
-
Dynamic: author
|
|
54
|
-
Dynamic: author-email
|
|
55
|
-
Dynamic: classifier
|
|
56
|
-
Dynamic: description
|
|
57
|
-
Dynamic: description-content-type
|
|
58
|
-
Dynamic: home-page
|
|
59
|
-
Dynamic: keywords
|
|
60
|
-
Dynamic: license
|
|
40
|
+
Requires-Dist: openapi-spec-validator<0.8.0,>=0.7.1; extra == "ci"
|
|
41
|
+
Requires-Dist: OpenFisca-Core[web-api]; extra == "ci"
|
|
42
|
+
Requires-Dist: openfisca-country-template<9,>=8; extra == "ci"
|
|
43
|
+
Requires-Dist: openfisca-extension-template<3,>=2.0.7; extra == "ci"
|
|
61
44
|
Dynamic: license-file
|
|
62
|
-
Dynamic: provides-extra
|
|
63
|
-
Dynamic: requires-dist
|
|
64
|
-
Dynamic: summary
|
|
65
45
|
|
|
66
46
|
# OpenFisca Core
|
|
67
47
|
|
|
@@ -81,7 +61,7 @@ This package contains the core features of OpenFisca, which are meant to be used
|
|
|
81
61
|
|
|
82
62
|
## Environment
|
|
83
63
|
|
|
84
|
-
OpenFisca runs on Python. See [
|
|
64
|
+
OpenFisca runs on Python. See [pyproject.toml](pyproject.toml) for supported versions.
|
|
85
65
|
|
|
86
66
|
OpenFisca also relies strongly on NumPy. The last four minor versions should work, but only the latest/stable is tested.
|
|
87
67
|
|
|
@@ -89,10 +69,9 @@ OpenFisca also relies strongly on NumPy. The last four minor versions should wor
|
|
|
89
69
|
|
|
90
70
|
If you're developing your own country package, you don't need to explicitly install OpenFisca-Core. It just needs to appear [in your package dependencies](https://github.com/openfisca/openfisca-france/blob/100.0.0/setup.py#L60).
|
|
91
71
|
If you want to contribute to OpenFisca-Core itself, welcome!
|
|
92
|
-
To install it locally
|
|
93
|
-
* or standard Python [pip](https://packaging.python.org/en/latest/key_projects/#pip) package manager.
|
|
72
|
+
To install it locally we recommend to use [uv](https://docs.astral.sh/uv/getting-started/).
|
|
94
73
|
|
|
95
|
-
### Installing `openfisca-core` with `
|
|
74
|
+
### Installing `openfisca-core` with `uv`
|
|
96
75
|
|
|
97
76
|
This installation requires [Python](https://www.python.org/downloads/) and [GIT](https://git-scm.com) installations.
|
|
98
77
|
|
|
@@ -101,19 +80,11 @@ To install `openfisca-core` locally in development mode run the following comman
|
|
|
101
80
|
```bash
|
|
102
81
|
git clone https://github.com/openfisca/openfisca-core.git
|
|
103
82
|
cd openfisca-core
|
|
104
|
-
|
|
105
|
-
source .venv/bin/activate
|
|
106
|
-
make install-deps install-edit
|
|
83
|
+
uv run make test
|
|
107
84
|
```
|
|
108
85
|
|
|
109
86
|
## Testing
|
|
110
87
|
|
|
111
|
-
Install the test dependencies:
|
|
112
|
-
|
|
113
|
-
```
|
|
114
|
-
make install-deps install-edit install-test
|
|
115
|
-
```
|
|
116
|
-
|
|
117
88
|
> For integration testing purposes, `openfisca-core` relies on
|
|
118
89
|
> [country-template](https://github.com/openfisca/country-template.git) and
|
|
119
90
|
> [extension-template](https://github.com/openfisca/extension-template.git).
|
|
@@ -123,12 +94,12 @@ make install-deps install-edit install-test
|
|
|
123
94
|
To run the entire test suite:
|
|
124
95
|
|
|
125
96
|
```sh
|
|
126
|
-
make test
|
|
97
|
+
uv run make test
|
|
127
98
|
```
|
|
128
99
|
|
|
129
100
|
If you have many tests, you could run them in parallel :
|
|
130
101
|
```sh
|
|
131
|
-
make test-core openfisca_args="--in-parallel"
|
|
102
|
+
uv run make test-core openfisca_args="--in-parallel"
|
|
132
103
|
```
|
|
133
104
|
|
|
134
105
|
You could add an option `--num-workers=4` to limit to 4 threads. Default is your CPU Core number minus 1.
|
|
@@ -138,13 +109,13 @@ Be aware that this add overhead so use it only for huge test suite.
|
|
|
138
109
|
To run all the tests defined on a test file:
|
|
139
110
|
|
|
140
111
|
```sh
|
|
141
|
-
pytest tests/core/test_parameters.py
|
|
112
|
+
uv run pytest tests/core/test_parameters.py
|
|
142
113
|
```
|
|
143
114
|
|
|
144
115
|
To run a single test:
|
|
145
116
|
|
|
146
117
|
```sh
|
|
147
|
-
pytest tests/core/test_parameters.py -k test_parameter_for_period
|
|
118
|
+
uv run pytest tests/core/test_parameters.py -k test_parameter_for_period
|
|
148
119
|
```
|
|
149
120
|
|
|
150
121
|
## Types
|
|
@@ -156,7 +127,7 @@ As NumPy introduced the `typing` module in 1.20.0, to ensure type hints do not b
|
|
|
156
127
|
Type checking is already run with `make test`. To run the type checker alone:
|
|
157
128
|
|
|
158
129
|
```sh
|
|
159
|
-
make check-types
|
|
130
|
+
uv run make check-types
|
|
160
131
|
```
|
|
161
132
|
|
|
162
133
|
## Style
|
|
@@ -166,13 +137,13 @@ This repository adheres to a [certain coding style](STYLEGUIDE.md), and we invit
|
|
|
166
137
|
Style checking is already run with `make test`. To run the style checker alone:
|
|
167
138
|
|
|
168
139
|
```sh
|
|
169
|
-
make check-style
|
|
140
|
+
uv run make check-style
|
|
170
141
|
```
|
|
171
142
|
|
|
172
143
|
To automatically style-format your code changes:
|
|
173
144
|
|
|
174
145
|
```sh
|
|
175
|
-
make format-style
|
|
146
|
+
uv run make format-style
|
|
176
147
|
```
|
|
177
148
|
|
|
178
149
|
To automatically style-format your code changes each time you commit:
|
|
@@ -218,30 +189,3 @@ You can test that the API is running by executing the command:
|
|
|
218
189
|
curl http://localhost:2000/parameters
|
|
219
190
|
```
|
|
220
191
|
For more information about endpoints and input formatting, see the [official documentation](https://openfisca.org/doc/openfisca-web-api).
|
|
221
|
-
|
|
222
|
-
### Tracker
|
|
223
|
-
|
|
224
|
-
The OpenFisca Web API comes with an [optional tracker](https://github.com/openfisca/tracker) which allows you to measure the usage of the API.
|
|
225
|
-
|
|
226
|
-
#### Tracker installation
|
|
227
|
-
|
|
228
|
-
The tracker is not installed by default. To install it, run:
|
|
229
|
-
|
|
230
|
-
```sh
|
|
231
|
-
pip install openfisca_core[tracker] --use-deprecated=legacy-resolver # Or `pip install --editable ".[tracker]"` for an editable installation
|
|
232
|
-
```
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
#### Tracker configuration
|
|
236
|
-
|
|
237
|
-
The tracker is activated when these two options are set:
|
|
238
|
-
|
|
239
|
-
* `--tracker-url`: An URL ending with `piwik.php`. It defines the Piwik instance that will receive the tracking information. To use the main OpenFisca Piwik instance, use `https://stats.data.gouv.fr/piwik.php`.
|
|
240
|
-
* `--tracker-idsite`: An integer. It defines the identifier of the tracked site on your Piwik instance. To use the main OpenFisca piwik instance, use `4`.
|
|
241
|
-
* `--tracker-token`: A string. It defines the Piwik API Authentication token to differentiate API calls based on the user IP. Otherwise, all API calls will seem to come from your server. The Piwik API Authentication token can be found in your Piwik interface when you are logged in.
|
|
242
|
-
|
|
243
|
-
For instance, to run the Web API with the mock country package `openfisca_country_template` and the tracker activated, run:
|
|
244
|
-
|
|
245
|
-
```sh
|
|
246
|
-
openfisca serve --country-package openfisca_country_template --port 5000 --tracker-url https://stats.data.gouv.fr/piwik.php --tracker-idsite 4 --tracker-token $TRACKER_TOKEN
|
|
247
|
-
```
|
|
@@ -16,7 +16,7 @@ This package contains the core features of OpenFisca, which are meant to be used
|
|
|
16
16
|
|
|
17
17
|
## Environment
|
|
18
18
|
|
|
19
|
-
OpenFisca runs on Python. See [
|
|
19
|
+
OpenFisca runs on Python. See [pyproject.toml](pyproject.toml) for supported versions.
|
|
20
20
|
|
|
21
21
|
OpenFisca also relies strongly on NumPy. The last four minor versions should work, but only the latest/stable is tested.
|
|
22
22
|
|
|
@@ -24,10 +24,9 @@ OpenFisca also relies strongly on NumPy. The last four minor versions should wor
|
|
|
24
24
|
|
|
25
25
|
If you're developing your own country package, you don't need to explicitly install OpenFisca-Core. It just needs to appear [in your package dependencies](https://github.com/openfisca/openfisca-france/blob/100.0.0/setup.py#L60).
|
|
26
26
|
If you want to contribute to OpenFisca-Core itself, welcome!
|
|
27
|
-
To install it locally
|
|
28
|
-
* or standard Python [pip](https://packaging.python.org/en/latest/key_projects/#pip) package manager.
|
|
27
|
+
To install it locally we recommend to use [uv](https://docs.astral.sh/uv/getting-started/).
|
|
29
28
|
|
|
30
|
-
### Installing `openfisca-core` with `
|
|
29
|
+
### Installing `openfisca-core` with `uv`
|
|
31
30
|
|
|
32
31
|
This installation requires [Python](https://www.python.org/downloads/) and [GIT](https://git-scm.com) installations.
|
|
33
32
|
|
|
@@ -36,19 +35,11 @@ To install `openfisca-core` locally in development mode run the following comman
|
|
|
36
35
|
```bash
|
|
37
36
|
git clone https://github.com/openfisca/openfisca-core.git
|
|
38
37
|
cd openfisca-core
|
|
39
|
-
|
|
40
|
-
source .venv/bin/activate
|
|
41
|
-
make install-deps install-edit
|
|
38
|
+
uv run make test
|
|
42
39
|
```
|
|
43
40
|
|
|
44
41
|
## Testing
|
|
45
42
|
|
|
46
|
-
Install the test dependencies:
|
|
47
|
-
|
|
48
|
-
```
|
|
49
|
-
make install-deps install-edit install-test
|
|
50
|
-
```
|
|
51
|
-
|
|
52
43
|
> For integration testing purposes, `openfisca-core` relies on
|
|
53
44
|
> [country-template](https://github.com/openfisca/country-template.git) and
|
|
54
45
|
> [extension-template](https://github.com/openfisca/extension-template.git).
|
|
@@ -58,12 +49,12 @@ make install-deps install-edit install-test
|
|
|
58
49
|
To run the entire test suite:
|
|
59
50
|
|
|
60
51
|
```sh
|
|
61
|
-
make test
|
|
52
|
+
uv run make test
|
|
62
53
|
```
|
|
63
54
|
|
|
64
55
|
If you have many tests, you could run them in parallel :
|
|
65
56
|
```sh
|
|
66
|
-
make test-core openfisca_args="--in-parallel"
|
|
57
|
+
uv run make test-core openfisca_args="--in-parallel"
|
|
67
58
|
```
|
|
68
59
|
|
|
69
60
|
You could add an option `--num-workers=4` to limit to 4 threads. Default is your CPU Core number minus 1.
|
|
@@ -73,13 +64,13 @@ Be aware that this add overhead so use it only for huge test suite.
|
|
|
73
64
|
To run all the tests defined on a test file:
|
|
74
65
|
|
|
75
66
|
```sh
|
|
76
|
-
pytest tests/core/test_parameters.py
|
|
67
|
+
uv run pytest tests/core/test_parameters.py
|
|
77
68
|
```
|
|
78
69
|
|
|
79
70
|
To run a single test:
|
|
80
71
|
|
|
81
72
|
```sh
|
|
82
|
-
pytest tests/core/test_parameters.py -k test_parameter_for_period
|
|
73
|
+
uv run pytest tests/core/test_parameters.py -k test_parameter_for_period
|
|
83
74
|
```
|
|
84
75
|
|
|
85
76
|
## Types
|
|
@@ -91,7 +82,7 @@ As NumPy introduced the `typing` module in 1.20.0, to ensure type hints do not b
|
|
|
91
82
|
Type checking is already run with `make test`. To run the type checker alone:
|
|
92
83
|
|
|
93
84
|
```sh
|
|
94
|
-
make check-types
|
|
85
|
+
uv run make check-types
|
|
95
86
|
```
|
|
96
87
|
|
|
97
88
|
## Style
|
|
@@ -101,13 +92,13 @@ This repository adheres to a [certain coding style](STYLEGUIDE.md), and we invit
|
|
|
101
92
|
Style checking is already run with `make test`. To run the style checker alone:
|
|
102
93
|
|
|
103
94
|
```sh
|
|
104
|
-
make check-style
|
|
95
|
+
uv run make check-style
|
|
105
96
|
```
|
|
106
97
|
|
|
107
98
|
To automatically style-format your code changes:
|
|
108
99
|
|
|
109
100
|
```sh
|
|
110
|
-
make format-style
|
|
101
|
+
uv run make format-style
|
|
111
102
|
```
|
|
112
103
|
|
|
113
104
|
To automatically style-format your code changes each time you commit:
|
|
@@ -153,30 +144,3 @@ You can test that the API is running by executing the command:
|
|
|
153
144
|
curl http://localhost:2000/parameters
|
|
154
145
|
```
|
|
155
146
|
For more information about endpoints and input formatting, see the [official documentation](https://openfisca.org/doc/openfisca-web-api).
|
|
156
|
-
|
|
157
|
-
### Tracker
|
|
158
|
-
|
|
159
|
-
The OpenFisca Web API comes with an [optional tracker](https://github.com/openfisca/tracker) which allows you to measure the usage of the API.
|
|
160
|
-
|
|
161
|
-
#### Tracker installation
|
|
162
|
-
|
|
163
|
-
The tracker is not installed by default. To install it, run:
|
|
164
|
-
|
|
165
|
-
```sh
|
|
166
|
-
pip install openfisca_core[tracker] --use-deprecated=legacy-resolver # Or `pip install --editable ".[tracker]"` for an editable installation
|
|
167
|
-
```
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
#### Tracker configuration
|
|
171
|
-
|
|
172
|
-
The tracker is activated when these two options are set:
|
|
173
|
-
|
|
174
|
-
* `--tracker-url`: An URL ending with `piwik.php`. It defines the Piwik instance that will receive the tracking information. To use the main OpenFisca Piwik instance, use `https://stats.data.gouv.fr/piwik.php`.
|
|
175
|
-
* `--tracker-idsite`: An integer. It defines the identifier of the tracked site on your Piwik instance. To use the main OpenFisca piwik instance, use `4`.
|
|
176
|
-
* `--tracker-token`: A string. It defines the Piwik API Authentication token to differentiate API calls based on the user IP. Otherwise, all API calls will seem to come from your server. The Piwik API Authentication token can be found in your Piwik interface when you are logged in.
|
|
177
|
-
|
|
178
|
-
For instance, to run the Web API with the mock country package `openfisca_country_template` and the tracker activated, run:
|
|
179
|
-
|
|
180
|
-
```sh
|
|
181
|
-
openfisca serve --country-package openfisca_country_template --port 5000 --tracker-url https://stats.data.gouv.fr/piwik.php --tracker-idsite 4 --tracker-token $TRACKER_TOKEN
|
|
182
|
-
```
|
|
Binary file
|