policyengine-core 3.5.3__tar.gz → 3.6.2__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.
- {policyengine_core-3.5.3/policyengine_core.egg-info → policyengine_core-3.6.2}/PKG-INFO +1 -1
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/data/dataset.py +1 -1
- policyengine_core-3.6.2/policyengine_core/simulations/sim_macro_cache.py +84 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/simulations/simulation.py +43 -69
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/taxbenefitsystems/tax_benefit_system.py +2 -1
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/types/data_types/arrays.py +1 -1
- {policyengine_core-3.5.3 → policyengine_core-3.6.2/policyengine_core.egg-info}/PKG-INFO +1 -1
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core.egg-info/SOURCES.txt +1 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/setup.py +1 -1
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/LICENSE +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/MANIFEST.in +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/README.md +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/__init__.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/charts/__init__.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/charts/api.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/charts/bar.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/charts/formatting.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/commons/__init__.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/commons/formulas.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/commons/misc.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/commons/rates.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/country_template/__init__.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/country_template/constants.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/country_template/data/__init__.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/country_template/data/datasets/__init__.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/country_template/data/datasets/country_template_dataset.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/country_template/entities.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/country_template/modelled_policies.yaml +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/country_template/parameters/benefits/basic_income.yaml +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/country_template/parameters/benefits/housing_allowance.yaml +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/country_template/parameters/benefits/index.yaml +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/country_template/parameters/benefits/parenting_allowance/amount.yaml +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/country_template/parameters/benefits/parenting_allowance/income_threshold.yaml +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/country_template/parameters/general/age_of_majority.yaml +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/country_template/parameters/general/age_of_retirement.yaml +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/country_template/parameters/taxes/housing_tax.yaml +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/country_template/parameters/taxes/income_tax_rate.yaml +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/country_template/parameters/taxes/social_security_contribution.yaml +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/country_template/reforms/__init__.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/country_template/reforms/add_dynamic_variable.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/country_template/reforms/add_new_tax.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/country_template/reforms/flat_social_security_contribution.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/country_template/reforms/modify_social_security_taxation.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/country_template/reforms/removal_basic_income.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/country_template/situation_examples/__init__.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/country_template/situation_examples/couple.json +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/country_template/situation_examples/housing.json +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/country_template/situation_examples/single.json +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/country_template/tests/age.yaml +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/country_template/tests/basic_income.yaml +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/country_template/tests/disposable_income.yaml +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/country_template/tests/housing_allowance.yaml +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/country_template/tests/housing_tax.yaml +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/country_template/tests/income_tax.yaml +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/country_template/tests/reforms/add_dynamic_variable.yaml +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/country_template/tests/reforms/add_new_tax.yaml +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/country_template/tests/reforms/modify_social_security_taxation.yaml +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/country_template/tests/situations/income_tax.yaml +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/country_template/tests/situations/parenting_allowance.yaml +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/country_template/tests/social_security_contribution.yaml +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/country_template/tests/test_microsimulation.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/country_template/variables/__init__.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/country_template/variables/benefits.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/country_template/variables/demographics.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/country_template/variables/housing.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/country_template/variables/ids.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/country_template/variables/income.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/country_template/variables/stats.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/country_template/variables/taxes.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/data/__init__.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/data_storage/__init__.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/data_storage/in_memory_storage.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/data_storage/on_disk_storage.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/data_structures/__init__.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/data_structures/parameter_metadata.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/data_structures/parameter_node_metadata.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/data_structures/reference.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/data_structures/unit.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/entities/__init__.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/entities/entity.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/entities/group_entity.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/entities/helpers.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/entities/role.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/enums/__init__.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/enums/config.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/enums/enum.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/enums/enum_array.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/errors/__init__.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/errors/cycle_error.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/errors/empty_argument_error.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/errors/nan_creation_error.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/errors/parameter_not_found_error.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/errors/parameter_parsing_error.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/errors/period_mismatch_error.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/errors/situation_parsing_error.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/errors/spiral_error.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/errors/variable_name_conflict_error.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/errors/variable_not_found_error.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/experimental/__init__.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/experimental/memory_config.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/extension_template/__init__.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/extension_template/local_benefit.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/extension_template/parameters/local_town/child_allowance/amount.yaml +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/extension_template/parameters/local_town/child_allowance/index.yaml +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/extension_template/parameters/local_town/index.yaml +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/extension_template/tests/local_benefit.yaml +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/holders/__init__.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/holders/helpers.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/holders/holder.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/model_api.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/parameters/__init__.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/parameters/at_instant_like.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/parameters/config.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/parameters/helpers.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/parameters/operations/__init__.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/parameters/operations/get_parameter.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/parameters/operations/homogenize_parameters.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/parameters/operations/interpolate_parameters.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/parameters/operations/propagate_parameter_metadata.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/parameters/operations/uprate_parameters.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/parameters/parameter.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/parameters/parameter_at_instant.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/parameters/parameter_node.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/parameters/parameter_node_at_instant.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/parameters/parameter_scale.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/parameters/parameter_scale_bracket.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/parameters/vectorial_parameter_node_at_instant.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/periods/__init__.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/periods/config.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/periods/helpers.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/periods/instant_.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/periods/period_.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/populations/__init__.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/populations/config.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/populations/group_population.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/populations/population.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/projectors/__init__.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/projectors/entity_to_person_projector.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/projectors/first_person_to_entity_projector.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/projectors/helpers.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/projectors/projector.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/projectors/unique_role_to_entity_projector.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/reforms/__init__.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/reforms/reform.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/scripts/__init__.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/scripts/assets/__init__.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/scripts/assets/index.html +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/scripts/policyengine_command.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/scripts/run_data.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/scripts/run_test.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/scripts/simulation_generator.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/simulations/__init__.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/simulations/helpers.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/simulations/individual_sim.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/simulations/microsimulation.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/simulations/simulation_builder.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/taxbenefitsystems/__init__.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/taxscales/__init__.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/taxscales/abstract_rate_tax_scale.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/taxscales/abstract_tax_scale.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/taxscales/amount_tax_scale_like.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/taxscales/helpers.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/taxscales/linear_average_rate_tax_scale.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/taxscales/marginal_amount_tax_scale.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/taxscales/marginal_rate_tax_scale.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/taxscales/rate_tax_scale_like.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/taxscales/single_amount_tax_scale.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/taxscales/tax_scale_like.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/tools/__init__.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/tools/simulation_dumper.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/tools/test_from_situation.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/tools/test_runner.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/tracers/__init__.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/tracers/computation_log.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/tracers/flat_trace.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/tracers/full_tracer.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/tracers/performance_log.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/tracers/simple_tracer.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/tracers/trace_node.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/tracers/tracing_parameter_node_at_instant.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/tracers/variable_graph.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/types/__init__.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/types/data_types/__init__.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/variables/__init__.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/variables/config.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/variables/defined_for.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/variables/helpers.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/variables/typing.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/variables/variable.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/warnings/__init__.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/warnings/libyaml_warning.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/warnings/memory_config_warning.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/warnings/tempfile_warning.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/weighting/__init__.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/weighting/microdf.py +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core.egg-info/dependency_links.txt +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core.egg-info/entry_points.txt +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core.egg-info/requires.txt +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core.egg-info/top_level.txt +0 -0
- {policyengine_core-3.5.3 → policyengine_core-3.6.2}/setup.cfg +0 -0
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import shutil
|
|
2
|
+
from pathlib import Path
|
|
3
|
+
import h5py
|
|
4
|
+
from numpy.typing import ArrayLike
|
|
5
|
+
import importlib.metadata
|
|
6
|
+
|
|
7
|
+
from policyengine_core.taxbenefitsystems import TaxBenefitSystem
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class Singleton(type):
|
|
11
|
+
_instances = {}
|
|
12
|
+
|
|
13
|
+
def __call__(cls, *args, **kwargs):
|
|
14
|
+
if cls not in cls._instances:
|
|
15
|
+
cls._instances[cls] = super(Singleton, cls).__call__(
|
|
16
|
+
*args, **kwargs
|
|
17
|
+
)
|
|
18
|
+
return cls._instances[cls]
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class SimulationMacroCache(metaclass=Singleton):
|
|
22
|
+
def __init__(self, tax_benefit_system: TaxBenefitSystem):
|
|
23
|
+
self.core_version = importlib.metadata.version("policyengine-core")
|
|
24
|
+
self.country_package_metadata = (
|
|
25
|
+
tax_benefit_system.get_package_metadata()
|
|
26
|
+
)
|
|
27
|
+
self.country_version = self.country_package_metadata["version"]
|
|
28
|
+
self.cache_folder_path = None
|
|
29
|
+
self.cache_file_path = None
|
|
30
|
+
|
|
31
|
+
def set_cache_path(
|
|
32
|
+
self,
|
|
33
|
+
parent_path: [Path, str],
|
|
34
|
+
dataset_name: str,
|
|
35
|
+
variable_name: str,
|
|
36
|
+
period: str,
|
|
37
|
+
branch_name: str,
|
|
38
|
+
):
|
|
39
|
+
storage_folder = Path(parent_path) / f"{dataset_name}_variable_cache"
|
|
40
|
+
self.cache_folder_path = storage_folder
|
|
41
|
+
storage_folder.mkdir(exist_ok=True)
|
|
42
|
+
self.cache_file_path = (
|
|
43
|
+
storage_folder / f"{variable_name}_{period}_{branch_name}.h5"
|
|
44
|
+
)
|
|
45
|
+
|
|
46
|
+
def set_cache_value(self, cache_file_path: Path, value: ArrayLike):
|
|
47
|
+
with h5py.File(cache_file_path, "w") as f:
|
|
48
|
+
f.create_dataset(
|
|
49
|
+
"metadata:core_version",
|
|
50
|
+
data=self.core_version,
|
|
51
|
+
)
|
|
52
|
+
f.create_dataset(
|
|
53
|
+
"metadata:country_version",
|
|
54
|
+
data=self.country_version,
|
|
55
|
+
)
|
|
56
|
+
f.create_dataset("values", data=value)
|
|
57
|
+
|
|
58
|
+
def get_cache_path(self):
|
|
59
|
+
return self.cache_file_path
|
|
60
|
+
|
|
61
|
+
def get_cache_value(self, cache_file_path: Path):
|
|
62
|
+
with h5py.File(cache_file_path, "r") as f:
|
|
63
|
+
# Validate both core version and country package metadata are up-to-date, otherwise flush the cache
|
|
64
|
+
if (
|
|
65
|
+
"metadata:core_version" in f
|
|
66
|
+
and "metadata:country_version" in f
|
|
67
|
+
):
|
|
68
|
+
if (
|
|
69
|
+
f["metadata:core_version"][()].decode("utf-8")
|
|
70
|
+
!= self.core_version
|
|
71
|
+
or f["metadata:country_version"][()].decode("utf-8")
|
|
72
|
+
!= self.country_version
|
|
73
|
+
):
|
|
74
|
+
f.close()
|
|
75
|
+
self.clear_cache(self.cache_folder_path)
|
|
76
|
+
return None
|
|
77
|
+
else:
|
|
78
|
+
f.close()
|
|
79
|
+
self.clear_cache(self.cache_folder_path)
|
|
80
|
+
return None
|
|
81
|
+
return f["values"][()]
|
|
82
|
+
|
|
83
|
+
def clear_cache(self, cache_folder_path: Path):
|
|
84
|
+
shutil.rmtree(cache_folder_path)
|
{policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/simulations/simulation.py
RENAMED
|
@@ -6,6 +6,7 @@ import numpy as np
|
|
|
6
6
|
import pandas as pd
|
|
7
7
|
from numpy.typing import ArrayLike
|
|
8
8
|
import logging
|
|
9
|
+
from pathlib import Path
|
|
9
10
|
|
|
10
11
|
from policyengine_core import commons, periods
|
|
11
12
|
from policyengine_core.data.dataset import Dataset
|
|
@@ -21,9 +22,6 @@ from policyengine_core.tracers import (
|
|
|
21
22
|
SimpleTracer,
|
|
22
23
|
TracingParameterNodeAtInstant,
|
|
23
24
|
)
|
|
24
|
-
import h5py
|
|
25
|
-
from pathlib import Path
|
|
26
|
-
import shutil
|
|
27
25
|
|
|
28
26
|
import json
|
|
29
27
|
|
|
@@ -36,6 +34,7 @@ from policyengine_core.tracers import SimpleTracer
|
|
|
36
34
|
from policyengine_core.variables import Variable, QuantityType
|
|
37
35
|
from policyengine_core.reforms.reform import Reform
|
|
38
36
|
from policyengine_core.parameters import get_parameter
|
|
37
|
+
from policyengine_core.simulations.sim_macro_cache import SimulationMacroCache
|
|
39
38
|
|
|
40
39
|
|
|
41
40
|
class Simulation:
|
|
@@ -606,11 +605,30 @@ class Simulation:
|
|
|
606
605
|
if cached_array is not None:
|
|
607
606
|
return cached_array
|
|
608
607
|
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
608
|
+
smc = SimulationMacroCache(self.tax_benefit_system)
|
|
609
|
+
|
|
610
|
+
# Check if cache could be used, if available, check if path exists
|
|
611
|
+
is_cache_available = self.check_macro_cache(variable_name, str(period))
|
|
612
|
+
if is_cache_available:
|
|
613
|
+
smc.set_cache_path(
|
|
614
|
+
self.dataset.file_path.parent,
|
|
615
|
+
self.dataset.name,
|
|
616
|
+
variable_name,
|
|
617
|
+
str(period),
|
|
618
|
+
self.branch_name,
|
|
619
|
+
)
|
|
620
|
+
cache_path = smc.get_cache_path()
|
|
621
|
+
if cache_path.exists():
|
|
622
|
+
if (
|
|
623
|
+
not self.macro_cache_read
|
|
624
|
+
or self.tax_benefit_system.data_modified
|
|
625
|
+
):
|
|
626
|
+
value = None
|
|
627
|
+
else:
|
|
628
|
+
value = smc.get_cache_value(cache_path)
|
|
629
|
+
|
|
630
|
+
if value is not None:
|
|
631
|
+
return value
|
|
614
632
|
|
|
615
633
|
if variable.requires_computation_after is not None:
|
|
616
634
|
if variable.requires_computation_after not in [
|
|
@@ -639,8 +657,8 @@ class Simulation:
|
|
|
639
657
|
values = self.calculate_divide(variable_name, period)
|
|
640
658
|
|
|
641
659
|
if alternate_period_handling:
|
|
642
|
-
if
|
|
643
|
-
|
|
660
|
+
if is_cache_available:
|
|
661
|
+
smc.set_cache_value(cache_path, values)
|
|
644
662
|
return values
|
|
645
663
|
|
|
646
664
|
self._check_period_consistency(period, variable)
|
|
@@ -738,8 +756,8 @@ class Simulation:
|
|
|
738
756
|
f"RecursionError while calculating {variable_name} for period {period}. The full computation stack is:\n{stack_formatted}"
|
|
739
757
|
)
|
|
740
758
|
|
|
741
|
-
if
|
|
742
|
-
|
|
759
|
+
if is_cache_available:
|
|
760
|
+
smc.set_cache_value(cache_path, array)
|
|
743
761
|
|
|
744
762
|
return array
|
|
745
763
|
|
|
@@ -1396,77 +1414,33 @@ class Simulation:
|
|
|
1396
1414
|
|
|
1397
1415
|
return json.loads(json.dumps(situation, cls=NpEncoder))
|
|
1398
1416
|
|
|
1399
|
-
def
|
|
1400
|
-
self,
|
|
1401
|
-
variable_name: str,
|
|
1402
|
-
period: str,
|
|
1403
|
-
):
|
|
1417
|
+
def check_macro_cache(self, variable_name: str, period: str) -> bool:
|
|
1404
1418
|
"""
|
|
1405
|
-
|
|
1419
|
+
Check if the variable is able to have cached value
|
|
1406
1420
|
"""
|
|
1407
|
-
if
|
|
1408
|
-
|
|
1421
|
+
if (
|
|
1422
|
+
hasattr(self, "dataset")
|
|
1423
|
+
and self.dataset.data_format == Dataset.FLAT_FILE
|
|
1424
|
+
):
|
|
1425
|
+
return False
|
|
1426
|
+
|
|
1427
|
+
if self.is_over_dataset:
|
|
1428
|
+
return True
|
|
1409
1429
|
|
|
1410
1430
|
variable = self.tax_benefit_system.get_variable(variable_name)
|
|
1411
1431
|
parameter_deps = variable.exhaustive_parameter_dependencies
|
|
1412
1432
|
|
|
1413
1433
|
if parameter_deps is None:
|
|
1414
|
-
return
|
|
1434
|
+
return False
|
|
1415
1435
|
|
|
1416
1436
|
for parameter in parameter_deps:
|
|
1417
1437
|
param = get_parameter(
|
|
1418
1438
|
self.tax_benefit_system.parameters, parameter
|
|
1419
1439
|
)
|
|
1420
1440
|
if param.modified:
|
|
1421
|
-
return
|
|
1422
|
-
|
|
1423
|
-
storage_folder = (
|
|
1424
|
-
self.dataset.file_path.parent
|
|
1425
|
-
/ f"{self.dataset.name}_variable_cache"
|
|
1426
|
-
)
|
|
1427
|
-
storage_folder.mkdir(exist_ok=True)
|
|
1441
|
+
return False
|
|
1428
1442
|
|
|
1429
|
-
|
|
1430
|
-
storage_folder / f"{variable_name}_{period}_{self.branch_name}.h5"
|
|
1431
|
-
)
|
|
1432
|
-
|
|
1433
|
-
return cache_file_path
|
|
1434
|
-
|
|
1435
|
-
def clear_macro_cache(self):
|
|
1436
|
-
"""
|
|
1437
|
-
Clear the cache of all variables.
|
|
1438
|
-
"""
|
|
1439
|
-
storage_folder = (
|
|
1440
|
-
self.dataset.file_path.parent
|
|
1441
|
-
/ f"{self.dataset.name}_variable_cache"
|
|
1442
|
-
)
|
|
1443
|
-
if storage_folder.exists():
|
|
1444
|
-
shutil.rmtree(storage_folder)
|
|
1445
|
-
|
|
1446
|
-
def _get_macro_cache_value(
|
|
1447
|
-
self,
|
|
1448
|
-
cache_file_path: Path,
|
|
1449
|
-
):
|
|
1450
|
-
"""
|
|
1451
|
-
Get the value of a variable from a cache file.
|
|
1452
|
-
"""
|
|
1453
|
-
if not self.macro_cache_read or self.tax_benefit_system.data_modified:
|
|
1454
|
-
return None
|
|
1455
|
-
with h5py.File(cache_file_path, "r") as f:
|
|
1456
|
-
return f["values"][()]
|
|
1457
|
-
|
|
1458
|
-
def _set_macro_cache_value(
|
|
1459
|
-
self,
|
|
1460
|
-
cache_file_path: Path,
|
|
1461
|
-
value: ArrayLike,
|
|
1462
|
-
):
|
|
1463
|
-
"""
|
|
1464
|
-
Set the value of a variable in a cache file.
|
|
1465
|
-
"""
|
|
1466
|
-
if not self.macro_cache_write or self.tax_benefit_system.data_modified:
|
|
1467
|
-
return None
|
|
1468
|
-
with h5py.File(cache_file_path, "w") as f:
|
|
1469
|
-
f.create_dataset("values", data=value)
|
|
1443
|
+
return True
|
|
1470
1444
|
|
|
1471
1445
|
def to_input_dataframe(
|
|
1472
1446
|
self,
|
|
@@ -152,6 +152,7 @@ policyengine_core/simulations/__init__.py
|
|
|
152
152
|
policyengine_core/simulations/helpers.py
|
|
153
153
|
policyengine_core/simulations/individual_sim.py
|
|
154
154
|
policyengine_core/simulations/microsimulation.py
|
|
155
|
+
policyengine_core/simulations/sim_macro_cache.py
|
|
155
156
|
policyengine_core/simulations/simulation.py
|
|
156
157
|
policyengine_core/simulations/simulation_builder.py
|
|
157
158
|
policyengine_core/taxbenefitsystems/__init__.py
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/country_template/__init__.py
RENAMED
|
File without changes
|
{policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/country_template/constants.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/country_template/entities.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/data_storage/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/data_structures/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/data_structures/reference.py
RENAMED
|
File without changes
|
{policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/data_structures/unit.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/entities/group_entity.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/errors/empty_argument_error.py
RENAMED
|
File without changes
|
{policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/errors/nan_creation_error.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/errors/spiral_error.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/experimental/__init__.py
RENAMED
|
File without changes
|
{policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/experimental/memory_config.py
RENAMED
|
File without changes
|
{policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/extension_template/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/parameters/__init__.py
RENAMED
|
File without changes
|
{policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/parameters/at_instant_like.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/parameters/parameter.py
RENAMED
|
File without changes
|
|
File without changes
|
{policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/parameters/parameter_node.py
RENAMED
|
File without changes
|
|
File without changes
|
{policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/parameters/parameter_scale.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/populations/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/populations/population.py
RENAMED
|
File without changes
|
{policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/projectors/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/projectors/projector.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/scripts/assets/__init__.py
RENAMED
|
File without changes
|
{policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/scripts/assets/index.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/simulations/__init__.py
RENAMED
|
File without changes
|
{policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/simulations/helpers.py
RENAMED
|
File without changes
|
{policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/simulations/individual_sim.py
RENAMED
|
File without changes
|
{policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/simulations/microsimulation.py
RENAMED
|
File without changes
|
|
File without changes
|
{policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/taxbenefitsystems/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/taxscales/tax_scale_like.py
RENAMED
|
File without changes
|
|
File without changes
|
{policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/tools/simulation_dumper.py
RENAMED
|
File without changes
|
{policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/tools/test_from_situation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/tracers/computation_log.py
RENAMED
|
File without changes
|
|
File without changes
|
{policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/tracers/full_tracer.py
RENAMED
|
File without changes
|
{policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/tracers/performance_log.py
RENAMED
|
File without changes
|
{policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/tracers/simple_tracer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/tracers/variable_graph.py
RENAMED
|
File without changes
|
|
File without changes
|
{policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/types/data_types/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/variables/defined_for.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/warnings/libyaml_warning.py
RENAMED
|
File without changes
|
|
File without changes
|
{policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core/warnings/tempfile_warning.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core.egg-info/entry_points.txt
RENAMED
|
File without changes
|
|
File without changes
|
{policyengine_core-3.5.3 → policyengine_core-3.6.2}/policyengine_core.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|