OpenFisca-Core 45.0.4__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.
Files changed (219) hide show
  1. {openfisca_core-45.0.4 → openfisca_core-46.0.0/OpenFisca_Core.egg-info}/PKG-INFO +30 -86
  2. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/OpenFisca_Core.egg-info/SOURCES.txt +17 -4
  3. openfisca_core-46.0.0/OpenFisca_Core.egg-info/requires.txt +31 -0
  4. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/OpenFisca_Core.egg-info/top_level.txt +3 -0
  5. {openfisca_core-45.0.4/OpenFisca_Core.egg-info → openfisca_core-46.0.0}/PKG-INFO +30 -86
  6. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/README.md +11 -47
  7. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/entities/types.py +3 -1
  8. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/indexed_enums/enum_array.py +1 -2
  9. openfisca_core-46.0.0/openfisca_core/scripts/__pycache__/__init__.cpython-313.pyc +0 -0
  10. openfisca_core-46.0.0/openfisca_core/scripts/__pycache__/find_placeholders.cpython-313.pyc +0 -0
  11. openfisca_core-46.0.0/openfisca_core/scripts/__pycache__/measure_numpy_condition_notations.cpython-313.pyc +0 -0
  12. openfisca_core-46.0.0/openfisca_core/scripts/__pycache__/measure_performances.cpython-313.pyc +0 -0
  13. openfisca_core-46.0.0/openfisca_core/scripts/__pycache__/measure_performances_fancy_indexing.cpython-313.pyc +0 -0
  14. openfisca_core-46.0.0/openfisca_core/scripts/__pycache__/openfisca_command.cpython-313.pyc +0 -0
  15. openfisca_core-46.0.0/openfisca_core/scripts/__pycache__/remove_fuzzy.cpython-313.pyc +0 -0
  16. openfisca_core-46.0.0/openfisca_core/scripts/__pycache__/run_test.cpython-313.pyc +0 -0
  17. openfisca_core-46.0.0/openfisca_core/scripts/__pycache__/simulation_generator.cpython-313.pyc +0 -0
  18. openfisca_core-46.0.0/openfisca_core/scripts/assets/__pycache__/__init__.cpython-313.pyc +0 -0
  19. openfisca_core-46.0.0/openfisca_core/scripts/migrations/__pycache__/__init__.cpython-313.pyc +0 -0
  20. openfisca_core-46.0.0/openfisca_core/scripts/migrations/__pycache__/v24_to_25.cpython-313.pyc +0 -0
  21. openfisca_core-46.0.0/openfisca_core/scripts/migrations/v16_2_to_v17/__pycache__/__init__.cpython-313.pyc +0 -0
  22. openfisca_core-46.0.0/openfisca_core/scripts/migrations/v16_2_to_v17/__pycache__/xml_to_yaml_country_template.cpython-313.pyc +0 -0
  23. openfisca_core-46.0.0/openfisca_core/scripts/migrations/v16_2_to_v17/__pycache__/xml_to_yaml_extension_template.cpython-313.pyc +0 -0
  24. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/simulations/_build_default_simulation.py +2 -1
  25. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/simulations/_build_from_variables.py +1 -1
  26. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/simulations/typing.py +1 -2
  27. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/tools/simulation_dumper.py +5 -13
  28. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/tools/test_runner.py +3 -3
  29. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/types.py +2 -2
  30. openfisca_core-46.0.0/pyproject.toml +146 -0
  31. openfisca_core-46.0.0/setup.cfg +4 -0
  32. openfisca_core-46.0.0/stubs/numexpr/__init__.pyi +9 -0
  33. openfisca_core-45.0.4/CHANGELOG.md +0 -4188
  34. openfisca_core-45.0.4/OpenFisca_Core.egg-info/requires.txt +0 -43
  35. openfisca_core-45.0.4/pyproject.toml +0 -25
  36. openfisca_core-45.0.4/setup.cfg +0 -32
  37. openfisca_core-45.0.4/setup.py +0 -113
  38. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/LICENSE +0 -0
  39. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/MANIFEST.in +0 -0
  40. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/OpenFisca_Core.egg-info/dependency_links.txt +0 -0
  41. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/OpenFisca_Core.egg-info/entry_points.txt +0 -0
  42. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/__init__.py +0 -0
  43. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/commons/__init__.py +0 -0
  44. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/commons/dummy.py +0 -0
  45. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/commons/formulas.py +0 -0
  46. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/commons/misc.py +0 -0
  47. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/commons/py.typed +0 -0
  48. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/commons/rates.py +0 -0
  49. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/commons/tests/__init__.py +0 -0
  50. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/commons/tests/test_dummy.py +0 -0
  51. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/commons/tests/test_formulas.py +0 -0
  52. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/commons/tests/test_rates.py +0 -0
  53. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/data_storage/__init__.py +0 -0
  54. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/data_storage/in_memory_storage.py +0 -0
  55. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/data_storage/on_disk_storage.py +0 -0
  56. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/data_storage/types.py +0 -0
  57. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/entities/__init__.py +0 -0
  58. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/entities/_core_entity.py +0 -0
  59. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/entities/_description.py +0 -0
  60. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/entities/entity.py +0 -0
  61. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/entities/group_entity.py +0 -0
  62. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/entities/helpers.py +0 -0
  63. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/entities/py.typed +0 -0
  64. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/entities/role.py +0 -0
  65. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/entities/tests/__init__.py +0 -0
  66. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/entities/tests/test_entity.py +0 -0
  67. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/entities/tests/test_group_entity.py +0 -0
  68. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/entities/tests/test_role.py +0 -0
  69. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/errors/__init__.py +0 -0
  70. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/errors/cycle_error.py +0 -0
  71. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/errors/empty_argument_error.py +0 -0
  72. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/errors/nan_creation_error.py +0 -0
  73. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/errors/parameter_not_found_error.py +0 -0
  74. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/errors/parameter_parsing_error.py +0 -0
  75. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/errors/period_mismatch_error.py +0 -0
  76. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/errors/situation_parsing_error.py +0 -0
  77. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/errors/spiral_error.py +0 -0
  78. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/errors/variable_name_config_error.py +0 -0
  79. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/errors/variable_not_found_error.py +0 -0
  80. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/experimental/__init__.py +0 -0
  81. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/experimental/_errors.py +0 -0
  82. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/experimental/_memory_config.py +0 -0
  83. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/formula_helpers.py +0 -0
  84. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/holders/__init__.py +0 -0
  85. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/holders/helpers.py +0 -0
  86. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/holders/holder.py +0 -0
  87. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/holders/tests/__init__.py +0 -0
  88. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/holders/tests/test_helpers.py +0 -0
  89. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/holders/types.py +0 -0
  90. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/indexed_enums/__init__.py +0 -0
  91. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/indexed_enums/_enum_type.py +0 -0
  92. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/indexed_enums/_errors.py +0 -0
  93. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/indexed_enums/_guards.py +0 -0
  94. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/indexed_enums/_utils.py +0 -0
  95. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/indexed_enums/config.py +0 -0
  96. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/indexed_enums/enum.py +0 -0
  97. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/indexed_enums/py.typed +0 -0
  98. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/indexed_enums/tests/__init__.py +0 -0
  99. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/indexed_enums/tests/test_enum.py +0 -0
  100. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/indexed_enums/tests/test_enum_array.py +0 -0
  101. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/indexed_enums/types.py +0 -0
  102. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/memory_config.py +0 -0
  103. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/model_api.py +0 -0
  104. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/parameters/__init__.py +0 -0
  105. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/parameters/at_instant_like.py +0 -0
  106. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/parameters/config.py +0 -0
  107. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/parameters/helpers.py +0 -0
  108. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/parameters/parameter.py +0 -0
  109. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/parameters/parameter_at_instant.py +0 -0
  110. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/parameters/parameter_node.py +0 -0
  111. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/parameters/parameter_node_at_instant.py +0 -0
  112. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/parameters/parameter_scale.py +0 -0
  113. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/parameters/parameter_scale_bracket.py +0 -0
  114. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/parameters/values_history.py +0 -0
  115. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/parameters/vectorial_parameter_node_at_instant.py +0 -0
  116. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/periods/__init__.py +0 -0
  117. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/periods/_errors.py +0 -0
  118. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/periods/_parsers.py +0 -0
  119. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/periods/config.py +0 -0
  120. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/periods/date_unit.py +0 -0
  121. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/periods/helpers.py +0 -0
  122. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/periods/instant_.py +0 -0
  123. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/periods/period_.py +0 -0
  124. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/periods/py.typed +0 -0
  125. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/periods/tests/__init__.py +0 -0
  126. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/periods/tests/helpers/__init__.py +0 -0
  127. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/periods/tests/helpers/test_helpers.py +0 -0
  128. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/periods/tests/helpers/test_instant.py +0 -0
  129. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/periods/tests/helpers/test_period.py +0 -0
  130. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/periods/tests/test_instant.py +0 -0
  131. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/periods/tests/test_parsers.py +0 -0
  132. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/periods/tests/test_period.py +0 -0
  133. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/populations/__init__.py +0 -0
  134. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/populations/_core_population.py +0 -0
  135. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/populations/_errors.py +0 -0
  136. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/populations/group_population.py +0 -0
  137. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/populations/population.py +0 -0
  138. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/populations/tests/__init__.py +0 -0
  139. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/populations/tests/test_members_position.py +0 -0
  140. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/populations/types.py +0 -0
  141. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/projectors/__init__.py +0 -0
  142. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/projectors/entity_to_person_projector.py +0 -0
  143. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/projectors/first_person_to_entity_projector.py +0 -0
  144. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/projectors/helpers.py +0 -0
  145. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/projectors/projector.py +0 -0
  146. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/projectors/typing.py +0 -0
  147. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/projectors/unique_role_to_entity_projector.py +0 -0
  148. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/rates.py +0 -0
  149. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/reforms/__init__.py +0 -0
  150. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/reforms/in_yaml_test_reform.py +0 -0
  151. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/reforms/reform.py +0 -0
  152. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/scripts/__init__.py +0 -0
  153. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/scripts/assets/__init__.py +0 -0
  154. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/scripts/assets/index.html +0 -0
  155. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/scripts/find_placeholders.py +0 -0
  156. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/scripts/measure_numpy_condition_notations.py +0 -0
  157. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/scripts/measure_performances.py +0 -0
  158. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/scripts/measure_performances_fancy_indexing.py +0 -0
  159. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/scripts/migrations/__init__.py +0 -0
  160. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/scripts/migrations/v16_2_to_v17/__init__.py +0 -0
  161. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/scripts/migrations/v16_2_to_v17/legislation.xsd +0 -0
  162. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/scripts/migrations/v16_2_to_v17/xml_to_yaml_country_template.py +0 -0
  163. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/scripts/migrations/v16_2_to_v17/xml_to_yaml_extension_template.py +0 -0
  164. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/scripts/migrations/v24_to_25.py +0 -0
  165. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/scripts/openfisca_command.py +0 -0
  166. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/scripts/remove_fuzzy.py +0 -0
  167. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/scripts/run_test.py +0 -0
  168. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/scripts/simulation_generator.py +0 -0
  169. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/simulation_builder.py +0 -0
  170. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/simulations/__init__.py +0 -0
  171. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/simulations/_type_guards.py +0 -0
  172. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/simulations/helpers.py +0 -0
  173. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/simulations/simulation.py +0 -0
  174. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/simulations/simulation_builder.py +0 -0
  175. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/taxbenefitsystems/__init__.py +0 -0
  176. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/taxbenefitsystems/tax_benefit_system.py +0 -0
  177. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/taxscales/__init__.py +0 -0
  178. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/taxscales/abstract_rate_tax_scale.py +0 -0
  179. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/taxscales/abstract_tax_scale.py +0 -0
  180. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/taxscales/amount_tax_scale_like.py +0 -0
  181. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/taxscales/helpers.py +0 -0
  182. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/taxscales/linear_average_rate_tax_scale.py +0 -0
  183. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/taxscales/marginal_amount_tax_scale.py +0 -0
  184. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/taxscales/marginal_rate_tax_scale.py +0 -0
  185. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/taxscales/rate_tax_scale_like.py +0 -0
  186. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/taxscales/single_amount_tax_scale.py +0 -0
  187. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/taxscales/tax_scale_like.py +0 -0
  188. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/tools/__init__.py +0 -0
  189. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/tools/parallel_plugin.py +0 -0
  190. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/tracers/__init__.py +0 -0
  191. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/tracers/computation_log.py +0 -0
  192. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/tracers/flat_trace.py +0 -0
  193. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/tracers/full_tracer.py +0 -0
  194. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/tracers/performance_log.py +0 -0
  195. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/tracers/simple_tracer.py +0 -0
  196. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/tracers/trace_node.py +0 -0
  197. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/tracers/tracing_parameter_node_at_instant.py +0 -0
  198. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/variables/__init__.py +0 -0
  199. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/variables/config.py +0 -0
  200. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/variables/helpers.py +0 -0
  201. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/variables/tests/__init__.py +0 -0
  202. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/variables/tests/test_definition_period.py +0 -0
  203. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/variables/variable.py +0 -0
  204. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/warnings/__init__.py +0 -0
  205. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/warnings/libyaml_warning.py +0 -0
  206. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_core/warnings/tempfile_warning.py +0 -0
  207. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_web_api/__init__.py +0 -0
  208. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_web_api/app.py +0 -0
  209. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_web_api/errors.py +0 -0
  210. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_web_api/handlers.py +0 -0
  211. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_web_api/loader/__init__.py +0 -0
  212. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_web_api/loader/entities.py +0 -0
  213. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_web_api/loader/parameters.py +0 -0
  214. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_web_api/loader/spec.py +0 -0
  215. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_web_api/loader/tax_benefit_system.py +0 -0
  216. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_web_api/loader/variables.py +0 -0
  217. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_web_api/openAPI.yml +0 -0
  218. {openfisca_core-45.0.4 → openfisca_core-46.0.0}/openfisca_web_api/scripts/__init__.py +0 -0
  219. {openfisca_core-45.0.4 → 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: 45.0.4
3
+ Version: 46.0.0
4
4
  Summary: A versatile microsimulation free software
5
- Home-page: https://github.com/openfisca/openfisca-core
6
- Author: OpenFisca Team
7
- Author-email: contact@openfisca.org
8
- License: License-Expression :: AGPL-3.0-or-later
9
- Keywords: benefit microsimulation social tax
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<2.0,>=1.24.2; python_version < "3.11"
25
- Requires-Dist: numpy<=3,>=1.26.0; python_version <= "3.12"
26
- Requires-Dist: numpy<=3,>=2.1.0; python_version >= "3.13"
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<9.0,>=8.3.3
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.5.0
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: build<0.11.0,>=0.10.0; extra == "ci"
49
- Requires-Dist: twine<7.0,>=6.0; extra == "ci"
50
- Requires-Dist: wheel<0.41.0,>=0.40.0; extra == "ci"
51
- Provides-Extra: tracker
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 [setup.py](setup.py) for supported versions.
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 you can use one of these two options:
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 `pip`
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
- python3 -m venv .venv
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,2 +1,5 @@
1
+ dist
1
2
  openfisca_core
2
3
  openfisca_web_api
4
+ stubs
5
+ tasks
@@ -1,67 +1,47 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: OpenFisca-Core
3
- Version: 45.0.4
3
+ Version: 46.0.0
4
4
  Summary: A versatile microsimulation free software
5
- Home-page: https://github.com/openfisca/openfisca-core
6
- Author: OpenFisca Team
7
- Author-email: contact@openfisca.org
8
- License: License-Expression :: AGPL-3.0-or-later
9
- Keywords: benefit microsimulation social tax
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<2.0,>=1.24.2; python_version < "3.11"
25
- Requires-Dist: numpy<=3,>=1.26.0; python_version <= "3.12"
26
- Requires-Dist: numpy<=3,>=2.1.0; python_version >= "3.13"
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<9.0,>=8.3.3
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.5.0
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: build<0.11.0,>=0.10.0; extra == "ci"
49
- Requires-Dist: twine<7.0,>=6.0; extra == "ci"
50
- Requires-Dist: wheel<0.41.0,>=0.40.0; extra == "ci"
51
- Provides-Extra: tracker
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 [setup.py](setup.py) for supported versions.
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 you can use one of these two options:
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 `pip`
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
- python3 -m venv .venv
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 [setup.py](setup.py) for supported versions.
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 you can use one of these two options:
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 `pip`
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
- python3 -m venv .venv
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
- ```
@@ -1,4 +1,6 @@
1
- from typing_extensions import Required, TypedDict
1
+ from typing import Required
2
+
3
+ from typing_extensions import TypedDict
2
4
 
3
5
  from openfisca_core.types import (
4
6
  CoreEntity,
@@ -1,9 +1,8 @@
1
1
  from __future__ import annotations
2
2
 
3
- from typing import NoReturn
3
+ from typing import NoReturn, Self
4
4
 
5
5
  import numpy
6
- from typing_extensions import Self
7
6
 
8
7
  from . import types as t
9
8