OpenFisca-Core 45.0.2__tar.gz → 45.0.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/CHANGELOG.md +105 -87
  2. {openfisca_core-45.0.2 → openfisca_core-45.0.4/OpenFisca_Core.egg-info}/PKG-INFO +2 -18
  3. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/OpenFisca_Core.egg-info/requires.txt +0 -17
  4. {openfisca_core-45.0.2/OpenFisca_Core.egg-info → openfisca_core-45.0.4}/PKG-INFO +2 -18
  5. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/README.md +1 -1
  6. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/commons/formulas.py +3 -3
  7. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/data_storage/on_disk_storage.py +1 -2
  8. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/entities/_core_entity.py +1 -2
  9. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/entities/entity.py +1 -2
  10. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/entities/group_entity.py +2 -3
  11. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/errors/__init__.py +6 -0
  12. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/errors/empty_argument_error.py +5 -5
  13. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/errors/situation_parsing_error.py +1 -2
  14. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/errors/variable_not_found_error.py +1 -1
  15. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/experimental/_memory_config.py +7 -8
  16. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/holders/holder.py +8 -5
  17. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/indexed_enums/enum_array.py +3 -5
  18. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/indexed_enums/types.py +12 -5
  19. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/model_api.py +31 -23
  20. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/parameters/__init__.py +13 -10
  21. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/parameters/config.py +1 -1
  22. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/parameters/parameter_node.py +1 -2
  23. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/parameters/vectorial_parameter_node_at_instant.py +8 -8
  24. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/periods/helpers.py +1 -2
  25. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/periods/instant_.py +3 -3
  26. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/periods/period_.py +1 -2
  27. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/populations/_core_population.py +1 -2
  28. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/populations/types.py +21 -14
  29. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/projectors/helpers.py +1 -2
  30. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/reforms/in_yaml_test_reform.py +1 -2
  31. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/reforms/reform.py +3 -4
  32. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/scripts/remove_fuzzy.py +1 -0
  33. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/simulations/_build_default_simulation.py +2 -4
  34. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/simulations/_type_guards.py +1 -1
  35. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/simulations/simulation.py +11 -9
  36. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/simulations/simulation_builder.py +3 -5
  37. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/simulations/typing.py +29 -28
  38. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/taxbenefitsystems/tax_benefit_system.py +10 -13
  39. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/taxscales/abstract_rate_tax_scale.py +2 -3
  40. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/taxscales/abstract_tax_scale.py +3 -4
  41. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/taxscales/amount_tax_scale_like.py +3 -4
  42. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/taxscales/helpers.py +2 -3
  43. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/taxscales/linear_average_rate_tax_scale.py +2 -3
  44. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/taxscales/marginal_amount_tax_scale.py +1 -1
  45. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/taxscales/marginal_rate_tax_scale.py +3 -4
  46. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/taxscales/rate_tax_scale_like.py +4 -5
  47. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/taxscales/single_amount_tax_scale.py +1 -1
  48. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/taxscales/tax_scale_like.py +4 -5
  49. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/tools/__init__.py +12 -12
  50. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/tools/test_runner.py +15 -17
  51. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/tracers/computation_log.py +2 -4
  52. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/tracers/full_tracer.py +1 -2
  53. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/tracers/performance_log.py +1 -2
  54. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/tracers/tracing_parameter_node_at_instant.py +4 -6
  55. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/types.py +23 -8
  56. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/variables/variable.py +3 -3
  57. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_web_api/errors.py +1 -2
  58. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_web_api/handlers.py +1 -1
  59. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_web_api/loader/spec.py +2 -2
  60. openfisca_core-45.0.4/pyproject.toml +25 -0
  61. openfisca_core-45.0.4/setup.cfg +32 -0
  62. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/setup.py +1 -20
  63. openfisca_core-45.0.2/pyproject.toml +0 -14
  64. openfisca_core-45.0.2/setup.cfg +0 -96
  65. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/LICENSE +0 -0
  66. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/MANIFEST.in +0 -0
  67. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/OpenFisca_Core.egg-info/SOURCES.txt +0 -0
  68. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/OpenFisca_Core.egg-info/dependency_links.txt +0 -0
  69. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/OpenFisca_Core.egg-info/entry_points.txt +0 -0
  70. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/OpenFisca_Core.egg-info/top_level.txt +0 -0
  71. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/__init__.py +0 -0
  72. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/commons/__init__.py +0 -0
  73. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/commons/dummy.py +0 -0
  74. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/commons/misc.py +0 -0
  75. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/commons/py.typed +0 -0
  76. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/commons/rates.py +0 -0
  77. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/commons/tests/__init__.py +0 -0
  78. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/commons/tests/test_dummy.py +0 -0
  79. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/commons/tests/test_formulas.py +0 -0
  80. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/commons/tests/test_rates.py +0 -0
  81. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/data_storage/__init__.py +0 -0
  82. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/data_storage/in_memory_storage.py +0 -0
  83. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/data_storage/types.py +0 -0
  84. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/entities/__init__.py +0 -0
  85. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/entities/_description.py +0 -0
  86. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/entities/helpers.py +0 -0
  87. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/entities/py.typed +0 -0
  88. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/entities/role.py +0 -0
  89. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/entities/tests/__init__.py +0 -0
  90. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/entities/tests/test_entity.py +0 -0
  91. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/entities/tests/test_group_entity.py +0 -0
  92. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/entities/tests/test_role.py +0 -0
  93. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/entities/types.py +0 -0
  94. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/errors/cycle_error.py +0 -0
  95. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/errors/nan_creation_error.py +0 -0
  96. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/errors/parameter_not_found_error.py +0 -0
  97. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/errors/parameter_parsing_error.py +0 -0
  98. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/errors/period_mismatch_error.py +0 -0
  99. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/errors/spiral_error.py +0 -0
  100. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/errors/variable_name_config_error.py +0 -0
  101. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/experimental/__init__.py +0 -0
  102. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/experimental/_errors.py +0 -0
  103. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/formula_helpers.py +0 -0
  104. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/holders/__init__.py +0 -0
  105. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/holders/helpers.py +0 -0
  106. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/holders/tests/__init__.py +0 -0
  107. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/holders/tests/test_helpers.py +0 -0
  108. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/holders/types.py +0 -0
  109. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/indexed_enums/__init__.py +0 -0
  110. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/indexed_enums/_enum_type.py +0 -0
  111. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/indexed_enums/_errors.py +0 -0
  112. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/indexed_enums/_guards.py +1 -1
  113. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/indexed_enums/_utils.py +0 -0
  114. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/indexed_enums/config.py +0 -0
  115. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/indexed_enums/enum.py +0 -0
  116. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/indexed_enums/py.typed +0 -0
  117. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/indexed_enums/tests/__init__.py +0 -0
  118. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/indexed_enums/tests/test_enum.py +0 -0
  119. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/indexed_enums/tests/test_enum_array.py +0 -0
  120. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/memory_config.py +0 -0
  121. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/parameters/at_instant_like.py +0 -0
  122. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/parameters/helpers.py +0 -0
  123. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/parameters/parameter.py +0 -0
  124. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/parameters/parameter_at_instant.py +0 -0
  125. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/parameters/parameter_node_at_instant.py +0 -0
  126. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/parameters/parameter_scale.py +0 -0
  127. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/parameters/parameter_scale_bracket.py +0 -0
  128. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/parameters/values_history.py +0 -0
  129. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/periods/__init__.py +0 -0
  130. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/periods/_errors.py +0 -0
  131. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/periods/_parsers.py +0 -0
  132. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/periods/config.py +0 -0
  133. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/periods/date_unit.py +0 -0
  134. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/periods/py.typed +0 -0
  135. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/periods/tests/__init__.py +0 -0
  136. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/periods/tests/helpers/__init__.py +0 -0
  137. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/periods/tests/helpers/test_helpers.py +0 -0
  138. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/periods/tests/helpers/test_instant.py +0 -0
  139. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/periods/tests/helpers/test_period.py +0 -0
  140. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/periods/tests/test_instant.py +0 -0
  141. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/periods/tests/test_parsers.py +0 -0
  142. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/periods/tests/test_period.py +0 -0
  143. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/populations/__init__.py +0 -0
  144. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/populations/_errors.py +0 -0
  145. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/populations/group_population.py +0 -0
  146. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/populations/population.py +0 -0
  147. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/populations/tests/__init__.py +0 -0
  148. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/populations/tests/test_members_position.py +0 -0
  149. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/projectors/__init__.py +2 -2
  150. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/projectors/entity_to_person_projector.py +0 -0
  151. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/projectors/first_person_to_entity_projector.py +0 -0
  152. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/projectors/projector.py +0 -0
  153. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/projectors/typing.py +0 -0
  154. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/projectors/unique_role_to_entity_projector.py +0 -0
  155. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/rates.py +0 -0
  156. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/reforms/__init__.py +0 -0
  157. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/scripts/__init__.py +0 -0
  158. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/scripts/assets/__init__.py +0 -0
  159. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/scripts/assets/index.html +0 -0
  160. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/scripts/find_placeholders.py +0 -0
  161. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/scripts/measure_numpy_condition_notations.py +0 -0
  162. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/scripts/measure_performances.py +0 -0
  163. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/scripts/measure_performances_fancy_indexing.py +0 -0
  164. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/scripts/migrations/__init__.py +0 -0
  165. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/scripts/migrations/v16_2_to_v17/__init__.py +0 -0
  166. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/scripts/migrations/v16_2_to_v17/legislation.xsd +0 -0
  167. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/scripts/migrations/v16_2_to_v17/xml_to_yaml_country_template.py +0 -0
  168. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/scripts/migrations/v16_2_to_v17/xml_to_yaml_extension_template.py +0 -0
  169. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/scripts/migrations/v24_to_25.py +0 -0
  170. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/scripts/openfisca_command.py +0 -0
  171. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/scripts/run_test.py +0 -0
  172. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/scripts/simulation_generator.py +0 -0
  173. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/simulation_builder.py +0 -0
  174. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/simulations/__init__.py +0 -0
  175. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/simulations/_build_from_variables.py +0 -0
  176. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/simulations/helpers.py +0 -0
  177. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/taxbenefitsystems/__init__.py +0 -0
  178. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/taxscales/__init__.py +0 -0
  179. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/tools/parallel_plugin.py +0 -0
  180. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/tools/simulation_dumper.py +0 -0
  181. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/tracers/__init__.py +0 -0
  182. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/tracers/flat_trace.py +0 -0
  183. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/tracers/simple_tracer.py +0 -0
  184. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/tracers/trace_node.py +0 -0
  185. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/variables/__init__.py +0 -0
  186. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/variables/config.py +0 -0
  187. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/variables/helpers.py +0 -0
  188. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/variables/tests/__init__.py +0 -0
  189. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/variables/tests/test_definition_period.py +0 -0
  190. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/warnings/__init__.py +0 -0
  191. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/warnings/libyaml_warning.py +0 -0
  192. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_core/warnings/tempfile_warning.py +0 -0
  193. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_web_api/__init__.py +0 -0
  194. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_web_api/app.py +0 -0
  195. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_web_api/loader/__init__.py +0 -0
  196. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_web_api/loader/entities.py +0 -0
  197. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_web_api/loader/parameters.py +0 -0
  198. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_web_api/loader/tax_benefit_system.py +0 -0
  199. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_web_api/loader/variables.py +0 -0
  200. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_web_api/openAPI.yml +0 -0
  201. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_web_api/scripts/__init__.py +0 -0
  202. {openfisca_core-45.0.2 → openfisca_core-45.0.4}/openfisca_web_api/scripts/serve.py +0 -0
@@ -1,5 +1,17 @@
1
1
  # Changelog
2
2
 
3
+ ### 45.0.4 [#1397](https://github.com/openfisca/openfisca-core/pull/1397)
4
+
5
+ #### Technical changes
6
+
7
+ - Replace black, isort, flake8 by ruff
8
+
9
+ ### 45.0.3 [#1395](https://github.com/openfisca/openfisca-core/pull/1395)
10
+
11
+ #### Technical changes
12
+
13
+ - Migrate from a master branch to a main branch
14
+
3
15
  ### 45.0.2 [#1394](https://github.com/openfisca/openfisca-core/pull/1394)
4
16
 
5
17
  #### Technical changes
@@ -352,9 +364,11 @@ population simulations, it has been marked as a major release.
352
364
  ```python
353
365
  from openfisca_core import indexed_enums as enum
354
366
 
367
+
355
368
  class TestEnum(enum.Enum):
356
- ONE = "one"
357
- TWO = "two"
369
+ ONE = "one"
370
+ TWO = "two"
371
+
358
372
 
359
373
  TestEnum.encode([2])
360
374
  # EnumArray([0])
@@ -365,14 +379,16 @@ TestEnum.encode([2])
365
379
  ```python
366
380
  from openfisca_core import indexed_enums as enum
367
381
 
382
+
368
383
  class TestEnum(enum.Enum):
369
- ONE = "one"
370
- TWO = "two"
384
+ ONE = "one"
385
+ TWO = "two"
386
+
371
387
 
372
388
  TestEnum.encode([2])
373
389
  # EnumArray([])
374
390
 
375
- TestEnum.encode([0,1,2,5])
391
+ TestEnum.encode([0, 1, 2, 5])
376
392
  # EnumArray([<TestEnum.ONE: 'one'> <TestEnum.TWO: 'two'>])
377
393
  ```
378
394
 
@@ -1732,7 +1748,9 @@ For additional details, see the PR's [description](https://github.com/openfisca/
1732
1748
  **Before**
1733
1749
 
1734
1750
  ```Python
1735
- simulation = SimulationBuilder().build_from_entities(tax_benefit_system, input_data, trace = True)
1751
+ simulation = SimulationBuilder().build_from_entities(
1752
+ tax_benefit_system, input_data, trace=True
1753
+ )
1736
1754
  ```
1737
1755
 
1738
1756
  **After**
@@ -2065,7 +2083,7 @@ Before:
2065
2083
 
2066
2084
  ```py
2067
2085
  simulation = ...
2068
- holder = simulation.persons.get_holder('salary')
2086
+ holder = simulation.persons.get_holder("salary")
2069
2087
  holder.get_known_periods()
2070
2088
  ```
2071
2089
 
@@ -2073,7 +2091,7 @@ After:
2073
2091
 
2074
2092
  ```py
2075
2093
  simulation = ...
2076
- simulation.get_known_periods('salary')
2094
+ simulation.get_known_periods("salary")
2077
2095
  ```
2078
2096
 
2079
2097
  ## 24.10.0 [#784](https://github.com/openfisca/openfisca-core/pull/784)
@@ -2084,15 +2102,15 @@ Before:
2084
2102
 
2085
2103
  ```py
2086
2104
  simulation = ...
2087
- holder = simulation.persons.get_holder('salary')
2088
- holder.delete_arrays('2018-08')
2105
+ holder = simulation.persons.get_holder("salary")
2106
+ holder.delete_arrays("2018-08")
2089
2107
  ```
2090
2108
 
2091
2109
  After:
2092
2110
 
2093
2111
  ```py
2094
2112
  simulation = ...
2095
- simulation.delete_arrays('salary', '2018-08')
2113
+ simulation.delete_arrays("salary", "2018-08")
2096
2114
  ```
2097
2115
 
2098
2116
  ### 24.9.9 [#786](https://github.com/openfisca/openfisca-core/pull/786)
@@ -2264,15 +2282,15 @@ Before:
2264
2282
 
2265
2283
  ```py
2266
2284
  simulation = ...
2267
- holder = simulation.persons.get_holder('salary')
2268
- holder.set_input('2018-08', [4000])
2285
+ holder = simulation.persons.get_holder("salary")
2286
+ holder.set_input("2018-08", [4000])
2269
2287
  ```
2270
2288
 
2271
2289
  After:
2272
2290
 
2273
2291
  ```py
2274
2292
  simulation = ...
2275
- simulation.set_input('salary', '2018-08', [4000])
2293
+ simulation.set_input("salary", "2018-08", [4000])
2276
2294
  ```
2277
2295
 
2278
2296
  ## 24.4.0 [#717](https://github.com/openfisca/openfisca-core/pull/717)
@@ -2334,14 +2352,16 @@ Dump:
2334
2352
 
2335
2353
  ```py
2336
2354
  from openfisca_core.tools.simulation_dumper import dump_simulation
2337
- dump_simulation(simulation, '/path/to/directory')
2355
+
2356
+ dump_simulation(simulation, "/path/to/directory")
2338
2357
  ```
2339
2358
 
2340
2359
  Restore:
2341
2360
 
2342
2361
  ```py
2343
2362
  from openfisca_core.tools.simulation_dumper import restore_simulation
2344
- simulation = restore_simulation('/path/to/directory', tax_benefit_system)
2363
+
2364
+ simulation = restore_simulation("/path/to/directory", tax_benefit_system)
2345
2365
  ```
2346
2366
 
2347
2367
  ### 24.1.0 [#713](https://github.com/openfisca/openfisca-core/pull/713)
@@ -2943,21 +2963,17 @@ _Note: the 21.0.1 and 21.0.0 versions have been unpublished due to performance i
2943
2963
  Before:
2944
2964
 
2945
2965
  ```py
2946
- HOUSING_OCCUPANCY_STATUS = Enum([
2947
- u'Tenant',
2948
- u'Owner',
2949
- u'Free lodger',
2950
- u'Homeless'])
2966
+ HOUSING_OCCUPANCY_STATUS = Enum(["Tenant", "Owner", "Free lodger", "Homeless"])
2951
2967
  ```
2952
2968
 
2953
2969
  Now:
2954
2970
 
2955
2971
  ```py
2956
2972
  class HousingOccupancyStatus(Enum):
2957
- tenant = u'Tenant'
2958
- owner = u'Owner'
2959
- free_lodger = u'Free lodger'
2960
- homeless = u'Homeless'
2973
+ tenant = "Tenant"
2974
+ owner = "Owner"
2975
+ free_lodger = "Free lodger"
2976
+ homeless = "Homeless"
2961
2977
  ```
2962
2978
 
2963
2979
  > Each Enum item has:
@@ -2968,11 +2984,11 @@ class HousingOccupancyStatus(Enum):
2968
2984
 
2969
2985
  ```py
2970
2986
  class housing_occupancy_status(Variable):
2971
- possible_values = HousingOccupancyStatus,
2987
+ possible_values = (HousingOccupancyStatus,)
2972
2988
  default_value = HousingOccupancyStatus.tenant
2973
2989
  entity = Household
2974
2990
  definition_period = MONTH
2975
- label = u"Legal housing situation of the household concerning their main residence"
2991
+ label = "Legal housing situation of the household concerning their main residence"
2976
2992
  ```
2977
2993
 
2978
2994
 
@@ -3017,11 +3033,11 @@ class housing_occupancy_status(Variable):
3017
3033
 
3018
3034
  > Example:
3019
3035
  ```py
3020
- holder = simulation.household.get_holder('housing_occupancy_status')
3036
+ holder = simulation.household.get_holder("housing_occupancy_status")
3021
3037
  # Three possibilities
3022
3038
  holder.set_input(period, numpy.asarray([HousingOccupancyStatus.owner]))
3023
- holder.set_input(period, numpy.asarray(['owner']))
3024
- holder.set_input(period, numpy.asarray([0])) # Highly not recommended
3039
+ holder.set_input(period, numpy.asarray(["owner"]))
3040
+ holder.set_input(period, numpy.asarray([0])) # Highly not recommended
3025
3041
  ```
3026
3042
 
3027
3043
  - When calculating an Enum variable, the output will be an [EnumArray](https://openfisca.org/doc/openfisca-python-api/enum_array.html#module-openfisca_core.indexed_enums).
@@ -3067,7 +3083,7 @@ Before:
3067
3083
 
3068
3084
  ```py
3069
3085
  class is_citizen(Variable):
3070
- column = BoolCol(default = True)
3086
+ column = BoolCol(default=True)
3071
3087
  entity = Person
3072
3088
  definition_period = MONTH
3073
3089
  label = "Whether the person is a citizen"
@@ -3090,9 +3106,9 @@ Before:
3090
3106
 
3091
3107
  ```py
3092
3108
  class zipcode(Variable):
3093
- column = FixedStrCol(max_length = 5)
3109
+ column = FixedStrCol(max_length=5)
3094
3110
  entity = Menage
3095
- label = u"Code INSEE (depcom) du lieu de résidence"
3111
+ label = "Code INSEE (depcom) du lieu de résidence"
3096
3112
  definition_period = MONTH
3097
3113
  ```
3098
3114
 
@@ -3103,7 +3119,7 @@ class zipcode(Variable):
3103
3119
  value_type = str
3104
3120
  max_length = 5
3105
3121
  entity = Menage
3106
- label = u"Code INSEE (depcom) du lieu de résidence"
3122
+ label = "Code INSEE (depcom) du lieu de résidence"
3107
3123
  definition_period = MONTH
3108
3124
  ```
3109
3125
 
@@ -3113,16 +3129,10 @@ Before:
3113
3129
 
3114
3130
  ```py
3115
3131
  class housing_occupancy_status(Variable):
3116
- column = EnumCol(
3117
- enum = Enum([
3118
- u'Tenant',
3119
- u'Owner',
3120
- u'Free lodger',
3121
- u'Homeless'])
3122
- )
3132
+ column = EnumCol(enum=Enum(["Tenant", "Owner", "Free lodger", "Homeless"]))
3123
3133
  entity = Household
3124
3134
  definition_period = MONTH
3125
- label = u"Legal housing situation of the household concerning their main residence"
3135
+ label = "Legal housing situation of the household concerning their main residence"
3126
3136
  ```
3127
3137
 
3128
3138
  After:
@@ -3130,15 +3140,10 @@ After:
3130
3140
  ```py
3131
3141
  class housing_occupancy_status(Variable):
3132
3142
  value_type = Enum
3133
- possible_values = Enum([
3134
- u'Tenant',
3135
- u'Owner',
3136
- u'Free lodger',
3137
- u'Homeless'
3138
- ])
3143
+ possible_values = Enum(["Tenant", "Owner", "Free lodger", "Homeless"])
3139
3144
  entity = Household
3140
3145
  definition_period = MONTH
3141
- label = u"Legal housing situation of the household concerning their main residence"
3146
+ label = "Legal housing situation of the household concerning their main residence"
3142
3147
  ```
3143
3148
 
3144
3149
  - Remove `PeriodSizeIndependentIntCol`:
@@ -3391,15 +3396,15 @@ For more information, check the [documentation](https://openfisca.org/doc/coding
3391
3396
  - Before:
3392
3397
  ```python
3393
3398
  new_legislation_parameters = update_legislation(
3394
- legislation_json = original_legislation_parameters,
3395
- path = ('children', 'impot_revenu', 'children', 'bareme', 'brackets', 1, 'threshold'),
3396
- period = reform_period,
3397
- value = 6011,
3398
- )
3399
+ legislation_json=original_legislation_parameters,
3400
+ path=("children", "impot_revenu", "children", "bareme", "brackets", 1, "threshold"),
3401
+ period=reform_period,
3402
+ value=6011,
3403
+ )
3399
3404
  ```
3400
3405
  - Now:
3401
3406
  ```python
3402
- parameters.impot_revenu.bareme[1].threshold.update(period = reform_period, value = 6011)
3407
+ parameters.impot_revenu.bareme[1].threshold.update(period=reform_period, value=6011)
3403
3408
  ```
3404
3409
 
3405
3410
  * Change the syntax to dynamically create new parameters
@@ -3415,45 +3420,54 @@ For more information, check the [documentation](https://openfisca.org/doc/coding
3415
3420
  "format": "integer",
3416
3421
  "unit": "currency",
3417
3422
  "values": [
3418
- {'start': u'2016-01-01', },
3419
- {'start': u'2015-01-01', 'value': round(1135 * (1 + inflation))},
3420
- ],
3421
- },
3423
+ {
3424
+ "start": "2016-01-01",
3425
+ },
3426
+ {"start": "2015-01-01", "value": round(1135 * (1 + inflation))},
3427
+ ],
3428
+ },
3422
3429
  "decote_seuil_couple": {
3423
3430
  "@type": "Parameter",
3424
3431
  "description": "Seuil de la décôte pour un couple",
3425
3432
  "format": "integer",
3426
3433
  "unit": "currency",
3427
3434
  "values": [
3428
- {'start': u'2065-01-01', },
3429
- {'start': u'2015-01-01', 'value': round(1870 * (1 + inflation))},
3430
- ],
3431
- },
3435
+ {
3436
+ "start": "2065-01-01",
3437
+ },
3438
+ {"start": "2015-01-01", "value": round(1870 * (1 + inflation))},
3439
+ ],
3432
3440
  },
3433
- }
3434
- reference_legislation_copy['children']['plf2016_conterfactual'] = reform_legislation_subtree
3441
+ },
3442
+ }
3443
+ reference_legislation_copy["children"]["plf2016_conterfactual"] = (
3444
+ reform_legislation_subtree
3445
+ )
3435
3446
  ```
3436
3447
 
3437
3448
  - Now:
3438
3449
  ```python
3439
3450
  from openfisca_core.parameters import ParameterNode
3440
3451
 
3441
- inflation = .001
3442
- reform_parameters_subtree = ParameterNode('plf2016_conterfactual', data = {
3443
- 'decote_seuil_celib': {
3444
- 'values': {
3445
- "2015-01-01": {'value': round(1135 * (1 + inflation))},
3446
- "2016-01-01": {'value': None}
3447
- }
3448
- },
3449
- 'decote_seuil_couple': {
3450
- 'values': {
3451
- "2015-01-01": {'value': round(1870 * (1 + inflation))},
3452
- "2065-01-01": {'value': None}
3453
- }
3454
- },
3455
- })
3456
- reference_parameters.add_child('plf2016_conterfactual', reform_parameters_subtree)
3452
+ inflation = 0.001
3453
+ reform_parameters_subtree = ParameterNode(
3454
+ "plf2016_conterfactual",
3455
+ data={
3456
+ "decote_seuil_celib": {
3457
+ "values": {
3458
+ "2015-01-01": {"value": round(1135 * (1 + inflation))},
3459
+ "2016-01-01": {"value": None},
3460
+ }
3461
+ },
3462
+ "decote_seuil_couple": {
3463
+ "values": {
3464
+ "2015-01-01": {"value": round(1870 * (1 + inflation))},
3465
+ "2065-01-01": {"value": None},
3466
+ }
3467
+ },
3468
+ },
3469
+ )
3470
+ reference_parameters.add_child("plf2016_conterfactual", reform_parameters_subtree)
3457
3471
  ```
3458
3472
 
3459
3473
  - Note that this way of creating parameters is only recommended when using dynamically computed values (for instance `round(1135 * (1 + inflation))` in the previous example). If the values are static, the new parameters can be directly built from YAML (See New features section).
@@ -3494,12 +3508,14 @@ For more information, check the [documentation](https://openfisca.org/doc/coding
3494
3508
 
3495
3509
  dir_path = os.path.dirname(__file__)
3496
3510
 
3511
+
3497
3512
  def reform_modify_parameters(parameters):
3498
- file_path = os.path.join(dir_path, 'plf2016.yaml')
3499
- reform_parameters_subtree = load_parameter_file(name = 'plf2016', file_path=file_path)
3500
- parameters.add_child('plf2016', reform_parameters_subtree)
3513
+ file_path = os.path.join(dir_path, "plf2016.yaml")
3514
+ reform_parameters_subtree = load_parameter_file(name="plf2016", file_path=file_path)
3515
+ parameters.add_child("plf2016", reform_parameters_subtree)
3501
3516
  return parameters
3502
3517
 
3518
+
3503
3519
  ...
3504
3520
  ```
3505
3521
 
@@ -4099,9 +4115,11 @@ Unlike simple formulas, a `DatedVariable` have several functions. We thus need t
4099
4115
  Examples:
4100
4116
  ```python
4101
4117
  simulation = scenario.new_simulation(trace=True)
4102
- simulation.calculate('irpp', 2014, print_trace=True)
4103
- simulation.calculate('irpp', 2014, print_trace=True, max_depth=-1)
4104
- simulation.calculate('irpp', 2014, print_trace=True, max_depth=-1, show_default_values=False)
4118
+ simulation.calculate("irpp", 2014, print_trace=True)
4119
+ simulation.calculate("irpp", 2014, print_trace=True, max_depth=-1)
4120
+ simulation.calculate(
4121
+ "irpp", 2014, print_trace=True, max_depth=-1, show_default_values=False
4122
+ )
4105
4123
  ```
4106
4124
 
4107
4125
  ## 2.1.0 – [diff](https://github.com/openfisca/openfisca-core/compare/2.0.3...2.0.4)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: OpenFisca-Core
3
- Version: 45.0.2
3
+ Version: 45.0.4
4
4
  Summary: A versatile microsimulation free software
5
5
  Home-page: https://github.com/openfisca/openfisca-core
6
6
  Author: OpenFisca Team
@@ -35,37 +35,21 @@ Requires-Dist: Flask-Cors<4.0,>=3.0.10; extra == "web-api"
35
35
  Requires-Dist: gunicorn<22.0,>=21.0; extra == "web-api"
36
36
  Requires-Dist: Werkzeug<4.0,>=2.2.3; extra == "web-api"
37
37
  Provides-Extra: dev
38
- Requires-Dist: black<25.0,>=24.8.0; extra == "dev"
39
38
  Requires-Dist: codespell<3.0,>=2.3.0; extra == "dev"
40
39
  Requires-Dist: colorama<0.5,>=0.4.4; extra == "dev"
41
- Requires-Dist: darglint<2.0,>=1.8.1; extra == "dev"
42
- Requires-Dist: flake8<8.0.0,>=7.1.1; extra == "dev"
43
- Requires-Dist: flake8-bugbear<25.0,>=24.8.19; extra == "dev"
44
- Requires-Dist: flake8-docstrings<2.0,>=1.7.0; extra == "dev"
45
- Requires-Dist: flake8-print<6.0,>=5.0.0; extra == "dev"
46
- Requires-Dist: flake8-rst-docstrings<0.4.0,>=0.3.0; extra == "dev"
47
- Requires-Dist: idna<4.0,>=3.10; extra == "dev"
48
- Requires-Dist: isort<6.0,>=5.13.2; extra == "dev"
49
40
  Requires-Dist: mypy<2.0,>=1.11.2; extra == "dev"
50
41
  Requires-Dist: openapi-spec-validator<0.8.0,>=0.7.1; extra == "dev"
51
- Requires-Dist: pylint<4.0,>=3.3.1; extra == "dev"
52
- Requires-Dist: pylint-per-file-ignores<2.0,>=1.3.2; extra == "dev"
53
- Requires-Dist: pyright<2.0,>=1.1.382; extra == "dev"
54
42
  Requires-Dist: ruff<1.0,>=0.6.9; extra == "dev"
55
- Requires-Dist: ruff-lsp<1.0,>=0.0.57; extra == "dev"
56
43
  Requires-Dist: Flask<4.0,>=2.2.3; extra == "dev"
57
44
  Requires-Dist: Flask-Cors<4.0,>=3.0.10; extra == "dev"
58
45
  Requires-Dist: gunicorn<22.0,>=21.0; extra == "dev"
59
46
  Requires-Dist: Werkzeug<4.0,>=2.2.3; extra == "dev"
60
- Requires-Dist: openpyxl<4.0,>=3.1.2; extra == "dev"
61
47
  Provides-Extra: ci
62
48
  Requires-Dist: build<0.11.0,>=0.10.0; extra == "ci"
63
49
  Requires-Dist: twine<7.0,>=6.0; extra == "ci"
64
50
  Requires-Dist: wheel<0.41.0,>=0.40.0; extra == "ci"
65
51
  Provides-Extra: tracker
66
52
  Requires-Dist: OpenFisca-Tracker<0.5.0,>=0.4.0; extra == "tracker"
67
- Provides-Extra: excel
68
- Requires-Dist: openpyxl<4.0,>=3.1.2; extra == "excel"
69
53
  Dynamic: author
70
54
  Dynamic: author-email
71
55
  Dynamic: classifier
@@ -212,7 +196,7 @@ END
212
196
 
213
197
  OpenFisca’s toolchain checks whether documentation builds correctly and updates it automatically with each contribution to this repository.
214
198
 
215
- In the meantime, please take a look at our [contributing guidelines](CONTRIBUTING.md) for some general tips on how to document your contributions, and at our official documentation's [repository](https://github.com/openfisca/openfisca-doc/blob/master/README.md) to in case you want to know how to build it by yourself —and improve it!
199
+ In the meantime, please take a look at our [contributing guidelines](CONTRIBUTING.md) for some general tips on how to document your contributions, and at our official documentation's [repository](https://github.com/openfisca/openfisca-doc/blob/main/README.md) to in case you want to know how to build it by yourself —and improve it!
216
200
 
217
201
  ## Serving the API
218
202
 
@@ -23,32 +23,15 @@ twine<7.0,>=6.0
23
23
  wheel<0.41.0,>=0.40.0
24
24
 
25
25
  [dev]
26
- black<25.0,>=24.8.0
27
26
  codespell<3.0,>=2.3.0
28
27
  colorama<0.5,>=0.4.4
29
- darglint<2.0,>=1.8.1
30
- flake8<8.0.0,>=7.1.1
31
- flake8-bugbear<25.0,>=24.8.19
32
- flake8-docstrings<2.0,>=1.7.0
33
- flake8-print<6.0,>=5.0.0
34
- flake8-rst-docstrings<0.4.0,>=0.3.0
35
- idna<4.0,>=3.10
36
- isort<6.0,>=5.13.2
37
28
  mypy<2.0,>=1.11.2
38
29
  openapi-spec-validator<0.8.0,>=0.7.1
39
- pylint<4.0,>=3.3.1
40
- pylint-per-file-ignores<2.0,>=1.3.2
41
- pyright<2.0,>=1.1.382
42
30
  ruff<1.0,>=0.6.9
43
- ruff-lsp<1.0,>=0.0.57
44
31
  Flask<4.0,>=2.2.3
45
32
  Flask-Cors<4.0,>=3.0.10
46
33
  gunicorn<22.0,>=21.0
47
34
  Werkzeug<4.0,>=2.2.3
48
- openpyxl<4.0,>=3.1.2
49
-
50
- [excel]
51
- openpyxl<4.0,>=3.1.2
52
35
 
53
36
  [tracker]
54
37
  OpenFisca-Tracker<0.5.0,>=0.4.0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: OpenFisca-Core
3
- Version: 45.0.2
3
+ Version: 45.0.4
4
4
  Summary: A versatile microsimulation free software
5
5
  Home-page: https://github.com/openfisca/openfisca-core
6
6
  Author: OpenFisca Team
@@ -35,37 +35,21 @@ Requires-Dist: Flask-Cors<4.0,>=3.0.10; extra == "web-api"
35
35
  Requires-Dist: gunicorn<22.0,>=21.0; extra == "web-api"
36
36
  Requires-Dist: Werkzeug<4.0,>=2.2.3; extra == "web-api"
37
37
  Provides-Extra: dev
38
- Requires-Dist: black<25.0,>=24.8.0; extra == "dev"
39
38
  Requires-Dist: codespell<3.0,>=2.3.0; extra == "dev"
40
39
  Requires-Dist: colorama<0.5,>=0.4.4; extra == "dev"
41
- Requires-Dist: darglint<2.0,>=1.8.1; extra == "dev"
42
- Requires-Dist: flake8<8.0.0,>=7.1.1; extra == "dev"
43
- Requires-Dist: flake8-bugbear<25.0,>=24.8.19; extra == "dev"
44
- Requires-Dist: flake8-docstrings<2.0,>=1.7.0; extra == "dev"
45
- Requires-Dist: flake8-print<6.0,>=5.0.0; extra == "dev"
46
- Requires-Dist: flake8-rst-docstrings<0.4.0,>=0.3.0; extra == "dev"
47
- Requires-Dist: idna<4.0,>=3.10; extra == "dev"
48
- Requires-Dist: isort<6.0,>=5.13.2; extra == "dev"
49
40
  Requires-Dist: mypy<2.0,>=1.11.2; extra == "dev"
50
41
  Requires-Dist: openapi-spec-validator<0.8.0,>=0.7.1; extra == "dev"
51
- Requires-Dist: pylint<4.0,>=3.3.1; extra == "dev"
52
- Requires-Dist: pylint-per-file-ignores<2.0,>=1.3.2; extra == "dev"
53
- Requires-Dist: pyright<2.0,>=1.1.382; extra == "dev"
54
42
  Requires-Dist: ruff<1.0,>=0.6.9; extra == "dev"
55
- Requires-Dist: ruff-lsp<1.0,>=0.0.57; extra == "dev"
56
43
  Requires-Dist: Flask<4.0,>=2.2.3; extra == "dev"
57
44
  Requires-Dist: Flask-Cors<4.0,>=3.0.10; extra == "dev"
58
45
  Requires-Dist: gunicorn<22.0,>=21.0; extra == "dev"
59
46
  Requires-Dist: Werkzeug<4.0,>=2.2.3; extra == "dev"
60
- Requires-Dist: openpyxl<4.0,>=3.1.2; extra == "dev"
61
47
  Provides-Extra: ci
62
48
  Requires-Dist: build<0.11.0,>=0.10.0; extra == "ci"
63
49
  Requires-Dist: twine<7.0,>=6.0; extra == "ci"
64
50
  Requires-Dist: wheel<0.41.0,>=0.40.0; extra == "ci"
65
51
  Provides-Extra: tracker
66
52
  Requires-Dist: OpenFisca-Tracker<0.5.0,>=0.4.0; extra == "tracker"
67
- Provides-Extra: excel
68
- Requires-Dist: openpyxl<4.0,>=3.1.2; extra == "excel"
69
53
  Dynamic: author
70
54
  Dynamic: author-email
71
55
  Dynamic: classifier
@@ -212,7 +196,7 @@ END
212
196
 
213
197
  OpenFisca’s toolchain checks whether documentation builds correctly and updates it automatically with each contribution to this repository.
214
198
 
215
- In the meantime, please take a look at our [contributing guidelines](CONTRIBUTING.md) for some general tips on how to document your contributions, and at our official documentation's [repository](https://github.com/openfisca/openfisca-doc/blob/master/README.md) to in case you want to know how to build it by yourself —and improve it!
199
+ In the meantime, please take a look at our [contributing guidelines](CONTRIBUTING.md) for some general tips on how to document your contributions, and at our official documentation's [repository](https://github.com/openfisca/openfisca-doc/blob/main/README.md) to in case you want to know how to build it by yourself —and improve it!
216
200
 
217
201
  ## Serving the API
218
202
 
@@ -131,7 +131,7 @@ END
131
131
 
132
132
  OpenFisca’s toolchain checks whether documentation builds correctly and updates it automatically with each contribution to this repository.
133
133
 
134
- In the meantime, please take a look at our [contributing guidelines](CONTRIBUTING.md) for some general tips on how to document your contributions, and at our official documentation's [repository](https://github.com/openfisca/openfisca-doc/blob/master/README.md) to in case you want to know how to build it by yourself —and improve it!
134
+ In the meantime, please take a look at our [contributing guidelines](CONTRIBUTING.md) for some general tips on how to document your contributions, and at our official documentation's [repository](https://github.com/openfisca/openfisca-doc/blob/main/README.md) to in case you want to know how to build it by yourself —and improve it!
135
135
 
136
136
  ## Serving the API
137
137
 
@@ -109,9 +109,9 @@ def switch(
109
109
  array([80, 80, 80, 90])
110
110
 
111
111
  """
112
- assert (
113
- len(value_by_condition) > 0
114
- ), "'switch' must be called with at least one value."
112
+ assert len(value_by_condition) > 0, (
113
+ "'switch' must be called with at least one value."
114
+ )
115
115
 
116
116
  condlist = [conditions == condition for condition in value_by_condition]
117
117
 
@@ -1,9 +1,8 @@
1
1
  from __future__ import annotations
2
2
 
3
- from collections.abc import KeysView, MutableMapping
4
-
5
3
  import os
6
4
  import shutil
5
+ from collections.abc import KeysView, MutableMapping
7
6
 
8
7
  import numpy
9
8
 
@@ -1,9 +1,8 @@
1
1
  from __future__ import annotations
2
2
 
3
- from typing import ClassVar
4
-
5
3
  import abc
6
4
  import os
5
+ from typing import ClassVar
7
6
 
8
7
  from . import types as t
9
8
  from .role import Role
@@ -1,6 +1,5 @@
1
- from typing import ClassVar
2
-
3
1
  import textwrap
2
+ from typing import ClassVar
4
3
 
5
4
  from . import types as t
6
5
  from ._core_entity import CoreEntity
@@ -1,10 +1,9 @@
1
1
  from __future__ import annotations
2
2
 
3
- from collections.abc import Iterable, Sequence
4
- from typing import ClassVar
5
-
6
3
  import textwrap
4
+ from collections.abc import Iterable, Sequence
7
5
  from itertools import chain
6
+ from typing import ClassVar
8
7
 
9
8
  from . import types as t
10
9
  from ._core_entity import CoreEntity
@@ -26,6 +26,8 @@ from .empty_argument_error import EmptyArgumentError
26
26
  from .nan_creation_error import NaNCreationError
27
27
  from .parameter_not_found_error import (
28
28
  ParameterNotFoundError,
29
+ )
30
+ from .parameter_not_found_error import (
29
31
  ParameterNotFoundError as ParameterNotFound,
30
32
  )
31
33
  from .parameter_parsing_error import ParameterParsingError
@@ -34,10 +36,14 @@ from .situation_parsing_error import SituationParsingError
34
36
  from .spiral_error import SpiralError
35
37
  from .variable_name_config_error import (
36
38
  VariableNameConflictError,
39
+ )
40
+ from .variable_name_config_error import (
37
41
  VariableNameConflictError as VariableNameConflict,
38
42
  )
39
43
  from .variable_not_found_error import (
40
44
  VariableNotFoundError,
45
+ )
46
+ from .variable_not_found_error import (
41
47
  VariableNotFoundError as VariableNotFound,
42
48
  )
43
49
 
@@ -1,5 +1,3 @@
1
- import typing
2
-
3
1
  import os
4
2
  import traceback
5
3
 
@@ -16,7 +14,7 @@ class EmptyArgumentError(IndexError):
16
14
  class_name: str,
17
15
  method_name: str,
18
16
  arg_name: str,
19
- arg_value: typing.Union[list, numpy.ndarray],
17
+ arg_value: list | numpy.ndarray,
20
18
  ) -> None:
21
19
  message = [
22
20
  f"'{class_name}.{method_name}' can't be run with an empty '{arg_name}':\n",
@@ -24,8 +22,10 @@ class EmptyArgumentError(IndexError):
24
22
  f"{arg_value}\n",
25
23
  "Here are some hints to help you get this working:\n",
26
24
  f"- Check that '{class_name}' isn't empty (see '{class_name}.add_bracket')",
27
- f"- Check that '{arg_name}' is being properly assigned "
28
- f"('{arg_name}' should be a non empty '{type(arg_value).__name__}')\n",
25
+ (
26
+ f"- Check that '{arg_name}' is being properly assigned "
27
+ f"('{arg_name}' should be a non empty '{type(arg_value).__name__}')\n"
28
+ ),
29
29
  "For further support, please do not hesitate to:\n",
30
30
  "- Take a look at the official documentation https://openfisca.org/doc",
31
31
  "- Open an issue on https://github.com/openfisca/openfisca-core/issues/new",
@@ -1,8 +1,7 @@
1
1
  from __future__ import annotations
2
2
 
3
- from collections.abc import Iterable
4
-
5
3
  import os
4
+ from collections.abc import Iterable
6
5
 
7
6
  import dpath
8
7