taxcalc 5.3.0__tar.gz → 6.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.
- {taxcalc-5.3.0 → taxcalc-6.0.0}/.github/workflows/build_and_test.yml +1 -1
- {taxcalc-5.3.0 → taxcalc-6.0.0}/.gitignore +5 -3
- {taxcalc-5.3.0 → taxcalc-6.0.0}/MANIFEST.in +0 -2
- {taxcalc-5.3.0 → taxcalc-6.0.0}/Makefile +12 -13
- {taxcalc-5.3.0/taxcalc.egg-info → taxcalc-6.0.0}/PKG-INFO +1 -1
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/about/releases.md +13 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/contributing/RELEASING.md +3 -1
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/contributing/contributor_guide.md +5 -5
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/contributing/testing.md +24 -43
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/index.md +1 -1
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/recipes/md_src/recipe00.md +1 -10
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/usage/data.md +14 -16
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/usage/overview.md +21 -20
- {taxcalc-5.3.0 → taxcalc-6.0.0}/pytest.ini +2 -6
- {taxcalc-5.3.0 → taxcalc-6.0.0}/setup.py +1 -1
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/__init__.py +1 -1
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/calculator.py +1 -1
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/cli/tc.py +1 -8
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/data.py +1 -2
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/policy.py +0 -18
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/records.py +78 -82
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/records_variables.json +106 -106
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/taxcalcio.py +60 -51
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/tests/conftest.py +19 -14
- taxcalc-6.0.0/taxcalc/tests/reforms_expect.csv +61 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/tests/test_calculator.py +197 -160
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/tests/test_cpscsv.py +0 -22
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/tests/test_data.py +11 -3
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/tests/test_parameters.py +42 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/tests/test_records.py +139 -8
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/tests/test_reforms.py +4 -6
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/tests/test_taxcalcio.py +3 -58
- {taxcalc-5.3.0 → taxcalc-6.0.0/taxcalc.egg-info}/PKG-INFO +1 -1
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc.egg-info/SOURCES.txt +0 -6
- taxcalc-5.3.0/taxcalc/puf_ratios.csv +0 -26
- taxcalc-5.3.0/taxcalc/puf_weights.csv.gz +0 -0
- taxcalc-5.3.0/taxcalc/tests/reforms_expect.csv +0 -61
- taxcalc-5.3.0/taxcalc/tests/test_compare.py +0 -330
- taxcalc-5.3.0/taxcalc/tests/test_compatible_data.py +0 -334
- taxcalc-5.3.0/taxcalc/tests/test_puf_var_stats.py +0 -194
- taxcalc-5.3.0/taxcalc/tests/test_pufcsv.py +0 -328
- {taxcalc-5.3.0 → taxcalc-6.0.0}/.coveragerc +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/.github/FUNDING.yml +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/.github/workflows/check_jupyterbook.yml +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/.github/workflows/deploy_jupyterbook.yml +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/.github/workflows/deploy_parameters_docs.yml +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/LICENSE +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/PSL_catalog.json +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/README.md +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/codecov.yml +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/conda.recipe/bld.bat +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/conda.recipe/build.sh +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/conda.recipe/meta.yaml +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/csv_show.sh +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/csv_vars.sh +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/PSL.svg +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/_config.yml +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/_static/atr.png +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/_static/mtr.png +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/_static/pch.png +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/_toc.yml +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/about/LICENSE.md +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/about/history.md +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/about/roadmap.md +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/api/calcfunctions.rst +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/api/calculator.rst +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/api/consumption.rst +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/api/data.rst +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/api/decorators.rst +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/api/growdiff.rst +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/api/growfactors.rst +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/api/parameters.rst +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/api/policy.rst +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/api/public_api.rst +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/api/records.rst +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/api/taxcalcio.rst +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/api/utils.rst +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/api/utilsprvt.rst +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/contributing/param_naming.md +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/contributing/pr_workflow.md +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/guide/README.md +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/guide/assumption_params.md +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/guide/cli.md +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/guide/index.md +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/guide/input_vars.md +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/guide/make/make_io_vars.py +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/guide/make/make_params.py +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/guide/make/make_uguide.py +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/guide/output_vars.md +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/guide/policy_params.md +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/guide/python_interface.md +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/guide/templates/assumption_params_template.md +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/guide/templates/input_vars_template.md +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/guide/templates/output_vars_template.md +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/guide/templates/policy_params_template.md +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/recipes/README.md +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/recipes/_static/reformA.json +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/recipes/_static/reformB.json +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/recipes/_static/reformC.json +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/recipes/convert_all.sh +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/recipes/index.md +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/recipes/md_src/recipe01.md +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/recipes/md_src/recipe02.md +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/recipes/md_src/recipe03.md +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/recipes/md_src/recipe04.md +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/recipes/md_src/recipe04_pandas.md +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/recipes/md_src/recipe05.md +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/recipes/md_src/recipe06.md +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/recipes/recipe00.ipynb +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/recipes/recipe01.ipynb +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/recipes/recipe02.ipynb +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/recipes/recipe03.ipynb +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/recipes/recipe04.ipynb +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/recipes/recipe04_pandas.ipynb +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/recipes/recipe05.ipynb +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/recipes/recipe06.ipynb +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/usage/starting.md +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/usage/tcja_after_2025.md +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/use_cases.md +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/environment.yml +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/gitpr +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/gitpr.bat +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/gitsync +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/gitsync.bat +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/pyproject.toml +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/setup.cfg +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/assumptions/ASSUMPTIONS.md +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/assumptions/README.md +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/assumptions/economic_assumptions_template.json +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/calcfunctions.py +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/cli/__init__.py +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/conftest.py +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/consumption.json +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/consumption.py +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/cps.csv.gz +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/cps_weights.csv.gz +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/decorators.py +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/growdiff.json +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/growdiff.py +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/growfactors.csv +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/growfactors.py +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/parameters.py +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/policy_current_law.json +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/2017_law.json +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/2017_law.out.csv +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/ARPA.json +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/ARPA.out.csv +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/BrownKhanna.json +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/BrownKhanna.out.csv +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/CARES.json +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/CARES.out.csv +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/ConsolidatedAppropriationsAct2021.json +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/ConsolidatedAppropriationsAct2021.out.csv +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/Larson2019.json +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/Larson2019.out.csv +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/README.md +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/REFORMS.md +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/Renacci.json +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/Renacci.out.csv +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/SandersDeFazio.json +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/SandersDeFazio.out.csv +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/TCJA.json +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/TCJA.md +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/TCJA.out.csv +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/Trump2016.json +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/Trump2016.out.csv +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/Trump2017.json +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/Trump2017.out.csv +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/archive/Clinton2016.json +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/archive/RyanBrady.json +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/archive/TCJA_House.json +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/archive/TCJA_House_Amended.json +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/archive/TCJA_Reconciliation.json +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/archive/TCJA_Senate.json +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/archive/TCJA_Senate_111417.json +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/archive/TCJA_Senate_120117.json +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/cases.csv +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/ext.json +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/growfactors_ext.csv +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/ptaxes0.json +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/ptaxes0.out.csv +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/ptaxes1.json +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/ptaxes1.out.csv +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/ptaxes2.json +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/ptaxes2.out.csv +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/ptaxes3.json +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/ptaxes3.out.csv +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/tests/benefits_expect.csv +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/tests/cmpi_cps_expect.txt +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/tests/cmpi_puf_expect.txt +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/tests/cpscsv_agg_expect.csv +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/tests/puf_var_correl_coeffs_2016.csv +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/tests/puf_var_wght_means_by_year.csv +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/tests/pufcsv_agg_expect.csv +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/tests/pufcsv_mtr_expect.txt +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/tests/reforms.json +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/tests/test_4package.py +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/tests/test_benefits.py +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/tests/test_calcfunctions.py +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/tests/test_consumption.py +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/tests/test_decorators.py +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/tests/test_growdiff.py +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/tests/test_growfactors.py +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/tests/test_policy.py +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/tests/test_responses.py +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/tests/test_utils.py +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/utils.py +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/utilsprvt.py +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/validation/CSV_INPUT_VARS.md +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/validation/CSV_OUTPUT_VARS.md +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/validation/README.md +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/validation/taxsim35/Differences_Explained.md +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/validation/taxsim35/README.md +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/validation/taxsim35/expected_differences/a17-taxdiffs-expect.csv +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/validation/taxsim35/expected_differences/a18-taxdiffs-expect.csv +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/validation/taxsim35/expected_differences/a19-taxdiffs-expect.csv +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/validation/taxsim35/expected_differences/a20-taxdiffs-expect.csv +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/validation/taxsim35/expected_differences/a21-taxdiffs-expect.csv +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/validation/taxsim35/expected_differences/b17-taxdiffs-expect.csv +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/validation/taxsim35/expected_differences/b18-taxdiffs-expect.csv +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/validation/taxsim35/expected_differences/b19-taxdiffs-expect.csv +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/validation/taxsim35/expected_differences/b20-taxdiffs-expect.csv +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/validation/taxsim35/expected_differences/b21-taxdiffs-expect.csv +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/validation/taxsim35/expected_differences/c17-taxdiffs-expect.csv +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/validation/taxsim35/expected_differences/c18-taxdiffs-expect.csv +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/validation/taxsim35/expected_differences/c19-taxdiffs-expect.csv +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/validation/taxsim35/input_setup.py +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/validation/taxsim35/main_comparison.py +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/validation/taxsim35/prepare_taxcalc_input.py +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/validation/taxsim35/process_taxcalc_output.py +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/validation/taxsim35/taxsim_emulation.json +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/validation/taxsim35/taxsim_input.py +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/validation/taxsim35/tc_sims.py +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/validation/taxsim35/tests_35.py +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/validation/tests_35.sh +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc.egg-info/dependency_links.txt +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc.egg-info/entry_points.txt +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc.egg-info/requires.txt +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc.egg-info/top_level.txt +0 -0
- {taxcalc-5.3.0 → taxcalc-6.0.0}/tctest-nojit.sh +0 -0
@@ -35,7 +35,7 @@ jobs:
|
|
35
35
|
shell: bash -l {0}
|
36
36
|
working-directory: ./
|
37
37
|
run: |
|
38
|
-
pytest -m 'not
|
38
|
+
pytest -m 'not requires_puf and not requires_tmd and not local' --cov=./ --cov-report=xml
|
39
39
|
|
40
40
|
- name: Upload coverage to Codecov
|
41
41
|
if: matrix.os == 'ubuntu-latest' && contains(github.repository, 'PSLmodels/Tax-Calculator')
|
@@ -13,9 +13,11 @@ read-the-docs/_build/
|
|
13
13
|
# Mac OS X
|
14
14
|
*.DS_Store
|
15
15
|
|
16
|
-
# IRS-SOI PUF data
|
17
|
-
puf
|
18
|
-
|
16
|
+
# Non-public IRS-SOI PUF and TMD data files
|
17
|
+
puf*csv*
|
18
|
+
puf*zip
|
19
|
+
*tmd*csv*
|
20
|
+
tmd*zip
|
19
21
|
|
20
22
|
# Jupyter notebook checkpoints
|
21
23
|
*.ipynb_checkpoints*
|
@@ -12,10 +12,8 @@ help:
|
|
12
12
|
@echo "help : show help message"
|
13
13
|
@echo "clean : remove .pyc files and local taxcalc package"
|
14
14
|
@echo "package : build and install local package"
|
15
|
-
@echo "pytest-cps : generate report for and cleanup after"
|
16
|
-
@echo " pytest -m 'not requires_pufcsv and not pre_release'"
|
17
15
|
@echo "pytest : generate report for and cleanup after"
|
18
|
-
@echo " pytest -m 'not
|
16
|
+
@echo " pytest -m 'not requires_puf and not requires_tmd'"
|
19
17
|
@echo "pytest-all : generate report for and cleanup after"
|
20
18
|
@echo " pytest -m ''"
|
21
19
|
@echo "tctest : generate report for and cleanup after"
|
@@ -24,6 +22,8 @@ help:
|
|
24
22
|
@echo " tc --test when environment var NOTAXCALCJIT is set"
|
25
23
|
@echo "cstest : generate coding-style errors using the"
|
26
24
|
@echo " pycodestyle (nee pep8) and pylint tools"
|
25
|
+
@echo "idtest : generate report for and cleanup after executing"
|
26
|
+
@echo " taxcalc/cli/input_data_tests/tests.sh"
|
27
27
|
@echo "coverage : generate test coverage report"
|
28
28
|
@echo "git-sync : synchronize local, origin, and upstream Git repos"
|
29
29
|
@echo "git-pr N=n : create local pr-n branch containing upstream PR"
|
@@ -36,7 +36,7 @@ clean:
|
|
36
36
|
|
37
37
|
.PHONY=package
|
38
38
|
package:
|
39
|
-
@pip install -e .
|
39
|
+
@pip install -e . | tail -1
|
40
40
|
|
41
41
|
define pytest-setup
|
42
42
|
rm -f taxcalc/tests/reforms_actual_init
|
@@ -48,19 +48,13 @@ rm -f df-??-#-*
|
|
48
48
|
rm -f tmp??????-??-#-tmp*
|
49
49
|
endef
|
50
50
|
|
51
|
-
.PHONY=pytest-cps
|
52
|
-
pytest-cps: clean
|
53
|
-
@$(pytest-setup)
|
54
|
-
@cd taxcalc ; pytest -n4 --disable-warnings --durations=0 --durations-min=2 -m "not requires_pufcsv and not pre_release"
|
55
|
-
@$(pytest-cleanup)
|
56
|
-
|
57
51
|
.PHONY=pytest
|
58
52
|
pytest: clean
|
59
53
|
@$(pytest-setup)
|
60
|
-
@cd taxcalc ; pytest -n4 --disable-warnings --durations=0 --durations-min=2 -m "not
|
54
|
+
@cd taxcalc ; pytest -n4 --disable-warnings --durations=0 --durations-min=2 -m "not requires_puf and not requires_tmd"
|
61
55
|
@$(pytest-cleanup)
|
62
56
|
|
63
|
-
.PHONY=pytest
|
57
|
+
.PHONY=pytest
|
64
58
|
pytest-all: clean
|
65
59
|
@$(pytest-setup)
|
66
60
|
@cd taxcalc ; pytest -n4 --disable-warnings --durations=0 --durations-min=2 -m ""
|
@@ -97,11 +91,16 @@ cstest:
|
|
97
91
|
@-pycodestyle --ignore=E501,E121 $(TESTS_JSON_FILES)
|
98
92
|
@-pylint $(PYLINT_OPTIONS) --ignore-paths=$(EXCLUDED_PATHS) .
|
99
93
|
|
94
|
+
.PHONY=idtest
|
95
|
+
idtest: package
|
96
|
+
@echo "Executing taxcalc/cli/input_data_tests"
|
97
|
+
@cd taxcalc/cli/input_data_tests ; ./tests.sh
|
98
|
+
|
100
99
|
define coverage-cleanup
|
101
100
|
rm -f .coverage htmlcov/*
|
102
101
|
endef
|
103
102
|
|
104
|
-
COVMARK = "not
|
103
|
+
COVMARK = "not requires_puf and not requires_tmd"
|
105
104
|
|
106
105
|
OS := $(shell uname -s)
|
107
106
|
|
@@ -3,6 +3,19 @@ Release history
|
|
3
3
|
Go [here](https://github.com/PSLmodels/Tax-Calculator/pulls?q=is%3Apr+is%3Aclosed)
|
4
4
|
for a complete commit history.
|
5
5
|
|
6
|
+
2025-09-24 Release 6.0.0
|
7
|
+
------------------------
|
8
|
+
(last merged pull request is
|
9
|
+
[#2961](https://github.com/PSLmodels/Tax-Calculator/pull/2961))
|
10
|
+
|
11
|
+
**This is a major release with changes that make Tax-Calculator incompatible with earlier releases.**
|
12
|
+
|
13
|
+
**API Changes**
|
14
|
+
- Removes the taxdata-produced `puf_weights.csv.gz` and `puf_ratios.csv` files. Adds a new `Records.puf_constructor` method for use with PUF data. Users will need to supply their own weights and growfactors files for the PUF as they are no longer included in Tax-Calculator. [[#2961](https://github.com/PSLmodels/Tax-Calculator/pull/2961) by Martin Holmer]
|
15
|
+
|
16
|
+
**New Features**
|
17
|
+
|
18
|
+
|
6
19
|
2025-09-19 Release 5.3.0
|
7
20
|
------------------------
|
8
21
|
(last merged pull request is
|
@@ -22,7 +22,9 @@ In the top-level Tax-Calculator directory, do the following:
|
|
22
22
|
|
23
23
|
--> run `make cstest` [to confirm project coding style is being followed]
|
24
24
|
|
25
|
-
--> run `make pytest-all` [
|
25
|
+
--> run `make pytest-all` [to confirm all pytest test are passing]
|
26
|
+
|
27
|
+
--> run `make idtest` [to check CLI results for CPS, PUF, TMD input data]
|
26
28
|
|
27
29
|
--> run `make tctest-jit` [to make sure JIT decorators are not hiding bugs]
|
28
30
|
|
@@ -115,11 +115,11 @@ page](https://github.com).
|
|
115
115
|
the command line in the Tax-Calculator directory:
|
116
116
|
```
|
117
117
|
cd taxcalc
|
118
|
-
pytest -m "not
|
118
|
+
pytest -m "not requires_puf and not requires_tmd" -n4
|
119
119
|
```
|
120
|
-
If you do have
|
121
|
-
|
122
|
-
|
120
|
+
If you do have the PUF-related files used by Tax-Calculator and
|
121
|
+
the TMD-related files used by Tax-Calculator, then the second line
|
122
|
+
above can be simplified to `pytest -n4`.
|
123
123
|
|
124
124
|
If all the tests pass, you're good to go. If they don't pass, enter
|
125
125
|
the following updates at the command line and then try running the
|
@@ -227,7 +227,7 @@ situations, in which case other contributors are here to help.
|
|
227
227
|
from the command line in the Tax-Calculator directory:
|
228
228
|
```
|
229
229
|
make cstest
|
230
|
-
make pytest
|
230
|
+
make pytest
|
231
231
|
```
|
232
232
|
Consult {doc}`testing` for more details.
|
233
233
|
|
@@ -38,56 +38,38 @@ all these coding-style tests, proceed to the second phase of testing.
|
|
38
38
|
## Testing with pytest
|
39
39
|
|
40
40
|
There are two variants of this second testing phase depending on
|
41
|
-
whether or not you have access to
|
42
|
-
|
43
|
-
IRS-SOI PUF data.
|
44
|
-
|
45
|
-
A brief description of the `puf.csv` file is followed by instructions
|
46
|
-
on how to run the two variants of the second-phase tests.
|
47
|
-
|
48
|
-
The Tax-Calculator `puf.csv` file has been constructed by the core
|
49
|
-
development team by merging information from a publicly available
|
50
|
-
IRS-SOI PUF file for 2011 and from the Census CPS file for the
|
51
|
-
corresponding year. If you have acquired from IRS the 2011 SOI PUF
|
52
|
-
file and want to execute the tests that require the `puf.csv` file,
|
53
|
-
contact the core development team to discuss your options.
|
54
|
-
|
55
|
-
**NO PUF.CSV**: If you do not have access to the `puf.csv` file (or if
|
56
|
-
you just want to do a quick test), run the second-phase of testing as
|
57
|
-
follows at the command prompt in the Tax-Calculator directory:
|
58
|
-
|
59
|
-
```
|
60
|
-
make pytest-cps
|
61
|
-
```
|
41
|
+
whether or not you have access to the PUF-related and TMD-related
|
42
|
+
input data files.
|
62
43
|
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
prepared.
|
67
|
-
|
68
|
-
**HAVE PUF.CSV**: If you do have access to the `puf.csv` file, copy it
|
69
|
-
into the Tax-Calculator directory at the top of the repository
|
70
|
-
directory tree (but **never** add it to your repository) and run the
|
71
|
-
second-phase of testing as follows at the command prompt in the
|
72
|
-
Tax-Calculator directory:
|
44
|
+
**NO PUF AND NO TMD**: If you do not have access to the PUF or TMD
|
45
|
+
input data files, run the second-phase of testing as follows at the
|
46
|
+
command prompt in the Tax-Calculator directory:
|
73
47
|
|
74
48
|
```
|
75
49
|
make pytest
|
76
50
|
```
|
77
51
|
|
78
52
|
This will start executing a pytest suite containing hundreds of tests,
|
79
|
-
|
80
|
-
|
81
|
-
is being prepared.
|
53
|
+
but will skip the tests that require the `puf.csv` file or the `tmd.csv`
|
54
|
+
file as input.
|
82
55
|
|
83
|
-
|
84
|
-
|
85
|
-
|
56
|
+
**HAVE PUF AND HAVE TMD**: If you do have access to the PUF-related
|
57
|
+
files and the TMD-related files, copy them into the Tax-Calculator
|
58
|
+
directory at the top of the repository directory tree (but **never**
|
59
|
+
add them to your repository) and run the second-phase of testing as
|
60
|
+
follows at the command prompt in the Tax-Calculator directory:
|
86
61
|
|
87
62
|
```
|
88
63
|
make pytest-all
|
64
|
+
make idtest
|
89
65
|
```
|
90
66
|
|
67
|
+
The first command will start executing a pytest suite containing
|
68
|
+
hundreds of tests, including the tests that require the `puf.csv` file
|
69
|
+
as input and the tests that require the `tmd.csv` file as input. The
|
70
|
+
second command checks that the Tax-Calculator CLI generates expected
|
71
|
+
results when using the CPS, PUF, and TMD input data.
|
72
|
+
|
91
73
|
## Interpreting test results
|
92
74
|
|
93
75
|
If you are adding an enhancement that expands the capabilities of the
|
@@ -108,9 +90,8 @@ demonstrate that the newly-added test, which used to fail, now passes.
|
|
108
90
|
|
109
91
|
After an enhancement or bug fix, you may be convinced that the new and
|
110
92
|
different second-phase test results are, in fact, correct. How do you
|
111
|
-
eliminate the test failures?
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
to update the test results.
|
93
|
+
eliminate the test failures? Simply edit the appropriate
|
94
|
+
`taxcalc/tests/test_*.py` file so that the test passes when you rerun
|
95
|
+
pytest. If there are failures for the tests that write results files,
|
96
|
+
read the test error message for instructions about how to update the
|
97
|
+
test results.
|
@@ -54,7 +54,7 @@ cross-model validation work with NBER's TAXSIM-35 model is described
|
|
54
54
|
|
55
55
|
## Latest release
|
56
56
|
|
57
|
-
{doc}`
|
57
|
+
{doc}`6.0.0 (2025-09-24) <about/releases>`
|
58
58
|
|
59
59
|
If you are already using Tax-Calculator, upgrade using the following command:
|
60
60
|
```
|
@@ -45,16 +45,7 @@ from bokeh.io import show, output_notebook
|
|
45
45
|
|
46
46
|
## Setup
|
47
47
|
|
48
|
-
Use publicly-available CPS input
|
49
|
-
|
50
|
-
NOTE: if you have access to the restricted-use IRS-SOI PUF-based input file
|
51
|
-
and you have that file (named ‘puf.csv’) located in the directory
|
52
|
-
where this script is located, then you can substitute the following
|
53
|
-
statement for the prior statement:
|
54
|
-
|
55
|
-
``
|
56
|
-
recs = tc.Records()
|
57
|
-
``
|
48
|
+
Use publicly-available CPS input data included in Tax-Calculator.
|
58
49
|
|
59
50
|
```{code-cell} ipython3
|
60
51
|
:hide-output: false
|
@@ -41,21 +41,20 @@ validation of those data.
|
|
41
41
|
|
42
42
|
The taxdata repository also produces a weights file and growth
|
43
43
|
factors file for use with the 2011 IRS-SOI Public Use File (PUF). For
|
44
|
-
users who have purchased their own version of the 2011 PUF, the
|
45
|
-
`puf_weights.csv.gz` and `
|
46
|
-
|
47
|
-
|
44
|
+
users who have purchased their own version of the 2011 PUF, the `puf.csv`,
|
45
|
+
`puf_weights.csv.gz` and `puf_ratios.csv` files from the taxdata repository,
|
46
|
+
can be used by Tax-Calculator using the `Records.puf_constructor(...)`
|
47
|
+
static method.
|
48
48
|
|
49
49
|
We refer users of the PUF to the IRS limitations on the use of those
|
50
|
-
data and their distribution. We also refer users of the PUF
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
file.
|
50
|
+
data and their distribution. We also refer users of the PUF input
|
51
|
+
data to the [taxdata](https://github.com/PSLmodels/taxdata)
|
52
|
+
documentation for details on how to use these files with the PUF and
|
53
|
+
to see how well the resulting tax calculations hit aggregate targets
|
54
|
+
published by the IRS. However, we do note that analysis with a
|
55
|
+
PUF-based data file tends to be more accurate than the `cps.csv` file
|
56
|
+
and that the validation of Tax-Calculator with other microsimulation
|
57
|
+
models uses the `puf.csv` file.
|
59
58
|
|
60
59
|
### 2015 IRS public use data (`tmd.csv`)
|
61
60
|
|
@@ -71,9 +70,8 @@ tax-microdata repository. The three TMD files can be used with
|
|
71
70
|
Tax-Calculator in two ways:
|
72
71
|
- with the **Python API** by instantiating a GrowFactors object that
|
73
72
|
uses TMD growth factors [`gf=GrowFactors("path/to/tmd_growfactors.csv")`]
|
74
|
-
and by using the `Records.tmd_constructor()`
|
75
|
-
|
76
|
-
object and a Policy object, or
|
73
|
+
and by using the `Records.tmd_constructor(...)` static method to
|
74
|
+
instantiate a Records object, or
|
77
75
|
- with the **CLI tool**, `tc`, when the three TMD files are all in
|
78
76
|
the same folder and the `tmd.csv.gz` file has been unzipped.
|
79
77
|
|
@@ -1,32 +1,32 @@
|
|
1
1
|
Structural overview
|
2
2
|
===================
|
3
3
|
|
4
|
-
Tax-Calculator has been designed using [object-oriented programming
|
5
|
-
|
6
|
-
There are seven classes and a collection of global
|
7
|
-
but most Python programming involves using only a
|
4
|
+
Tax-Calculator has been designed using [object-oriented programming
|
5
|
+
(OOP)](https://www.programiz.com/python-programming/object-oriented-programming)
|
6
|
+
principles. There are seven classes and a collection of global
|
7
|
+
utility functions, but most Python programming involves using only a
|
8
|
+
few methods in three classes.
|
8
9
|
|
9
10
|
## Quick summary
|
10
11
|
|
11
|
-
Typical Tax-Calculator usage involves creating two Calculator class
|
12
|
-
both containing the same sample of filing units (that is,
|
13
|
-
but each containing a different tax policy
|
14
|
-
The idea is to compare the calculated
|
15
|
-
the two different tax
|
16
|
-
one of which is usually current-law policy and the other is
|
17
|
-
interest.
|
12
|
+
Typical Tax-Calculator usage involves creating two Calculator class
|
13
|
+
objects: both containing the same sample of filing units (that is,
|
14
|
+
Records class object), but each containing a different tax policy
|
15
|
+
(that is, Policy class object). The idea is to compare the calculated
|
16
|
+
tax liabilities of the sample units under the two different tax
|
17
|
+
policies, one of which is usually current-law policy and the other is
|
18
|
+
a tax reform of interest.
|
18
19
|
|
19
20
|
* `rec` → Records class object.
|
20
|
-
Created by `Records()` when containing
|
21
|
-
|
22
|
-
filing-unit data.
|
21
|
+
Created by `Records.cps_constructor()` when containing CPS-derived
|
22
|
+
filing-unit data.
|
23
23
|
|
24
24
|
* `clp` → `Policy` class object containing parameters that characterize
|
25
25
|
current-law policy.
|
26
26
|
Created by `Policy()`.
|
27
27
|
|
28
|
-
*
|
29
|
-
reform.
|
28
|
+
* `ref` → `Policy` class object containing parameters that
|
29
|
+
characterize a tax reform.
|
30
30
|
Created using a Python dictionary `refdict` representing the reform by
|
31
31
|
using the `implement_reform(refdict)` method on a `Policy` object created
|
32
32
|
by `Policy()`.
|
@@ -68,10 +68,11 @@ for Calculator class and all its methods.
|
|
68
68
|
|
69
69
|
## Complete story
|
70
70
|
|
71
|
-
Tax-Calculator contains eight basic classes, and a collection of
|
72
|
-
functions, that together provide the full range of
|
73
|
-
Here is a description of their role in
|
74
|
-
|
71
|
+
Tax-Calculator contains eight basic classes, and a collection of
|
72
|
+
global utility functions, that together provide the full range of
|
73
|
+
Tax-Calculator capabilities. Here is a description of their role in
|
74
|
+
Tax-Calculator and a link to each the detailed documentation and
|
75
|
+
source code for each class and all its methods.
|
75
76
|
|
76
77
|
### Classes
|
77
78
|
|
@@ -81,7 +81,7 @@ class Calculator():
|
|
81
81
|
The most efficient way to specify current-law and reform Calculator
|
82
82
|
objects is as follows:
|
83
83
|
pol = Policy()
|
84
|
-
rec = Records()
|
84
|
+
rec = Records.cps_constructor()
|
85
85
|
calc1 = Calculator(policy=pol, records=rec) # current-law
|
86
86
|
pol.implement_reform(...)
|
87
87
|
calc2 = Calculator(policy=pol, records=rec) # reform
|
@@ -229,12 +229,6 @@ def cli_tc_main():
|
|
229
229
|
sys.stderr.write(msg)
|
230
230
|
sys.stderr.write('USAGE: tc --help\n')
|
231
231
|
return 1
|
232
|
-
# specify if aging input data
|
233
|
-
aging_data = (
|
234
|
-
inputfn.endswith('puf.csv') or
|
235
|
-
inputfn.endswith('cps.csv') or
|
236
|
-
inputfn.endswith('tmd.csv')
|
237
|
-
)
|
238
232
|
# check args.dumpdb and args.dumpvars consistency
|
239
233
|
if not args.dumpdb and args.dumpvars:
|
240
234
|
msg = 'ERROR: DUMPVARS file specified without --dumpdb option\n'
|
@@ -299,7 +293,6 @@ def cli_tc_main():
|
|
299
293
|
baseline=args.baseline,
|
300
294
|
reform=args.reform,
|
301
295
|
assump=args.assump,
|
302
|
-
aging_input_data=aging_data,
|
303
296
|
exact_calculations=args.exact,
|
304
297
|
)
|
305
298
|
if tcio.errmsg:
|
@@ -346,7 +339,7 @@ def cli_tc_main():
|
|
346
339
|
return 0
|
347
340
|
# analyze years after taxyear if args.numyears is greater than one
|
348
341
|
for xyear in range(1, args.numyears):
|
349
|
-
tcio.advance_to_year(taxyear + xyear
|
342
|
+
tcio.advance_to_year(taxyear + xyear)
|
350
343
|
tcio.analyze(
|
351
344
|
output_params=args.params,
|
352
345
|
output_tables=args.tables,
|
@@ -236,8 +236,7 @@ class Data():
|
|
236
236
|
self.IGNORED_VARS.add(varname)
|
237
237
|
# check that MUST_READ_VARS are all present in taxdf
|
238
238
|
if not self.MUST_READ_VARS.issubset(READ_VARS):
|
239
|
-
|
240
|
-
raise ValueError(msg)
|
239
|
+
raise ValueError('data missing one or more MUST_READ_VARS')
|
241
240
|
# delete intermediate taxdf object
|
242
241
|
del taxdf
|
243
242
|
# create other class variables that are set to all zeros
|
@@ -7,7 +7,6 @@ Tax-Calculator federal tax policy Policy class.
|
|
7
7
|
|
8
8
|
import os
|
9
9
|
import json
|
10
|
-
from pathlib import Path
|
11
10
|
import paramtools
|
12
11
|
from taxcalc.parameters import Parameters
|
13
12
|
from taxcalc.growfactors import GrowFactors
|
@@ -141,23 +140,6 @@ class Policy(Parameters):
|
|
141
140
|
Policy.REDEFINED_PARAMS,
|
142
141
|
Policy.WAGE_INDEXED_PARAMS, **kwargs)
|
143
142
|
|
144
|
-
@staticmethod
|
145
|
-
def tmd_constructor(
|
146
|
-
growfactors: Path | GrowFactors,
|
147
|
-
last_budget_year=LAST_BUDGET_YEAR,
|
148
|
-
): # pragma: no cover
|
149
|
-
"""
|
150
|
-
Static method returns a Policy object instantiated with TMD
|
151
|
-
input data. This convenience method works in a analogous way
|
152
|
-
to Policy(), which returns a Policy object instantiated with
|
153
|
-
non-TMD input data.
|
154
|
-
"""
|
155
|
-
if isinstance(growfactors, Path):
|
156
|
-
growfactors = GrowFactors(growfactors_filename=str(growfactors))
|
157
|
-
else:
|
158
|
-
assert isinstance(growfactors, GrowFactors)
|
159
|
-
return Policy(gfactors=growfactors, last_budget_year=last_budget_year)
|
160
|
-
|
161
143
|
@staticmethod
|
162
144
|
def read_json_reform(obj):
|
163
145
|
"""
|