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.
Files changed (240) hide show
  1. {taxcalc-5.3.0 → taxcalc-6.0.0}/.github/workflows/build_and_test.yml +1 -1
  2. {taxcalc-5.3.0 → taxcalc-6.0.0}/.gitignore +5 -3
  3. {taxcalc-5.3.0 → taxcalc-6.0.0}/MANIFEST.in +0 -2
  4. {taxcalc-5.3.0 → taxcalc-6.0.0}/Makefile +12 -13
  5. {taxcalc-5.3.0/taxcalc.egg-info → taxcalc-6.0.0}/PKG-INFO +1 -1
  6. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/about/releases.md +13 -0
  7. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/contributing/RELEASING.md +3 -1
  8. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/contributing/contributor_guide.md +5 -5
  9. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/contributing/testing.md +24 -43
  10. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/index.md +1 -1
  11. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/recipes/md_src/recipe00.md +1 -10
  12. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/usage/data.md +14 -16
  13. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/usage/overview.md +21 -20
  14. {taxcalc-5.3.0 → taxcalc-6.0.0}/pytest.ini +2 -6
  15. {taxcalc-5.3.0 → taxcalc-6.0.0}/setup.py +1 -1
  16. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/__init__.py +1 -1
  17. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/calculator.py +1 -1
  18. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/cli/tc.py +1 -8
  19. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/data.py +1 -2
  20. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/policy.py +0 -18
  21. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/records.py +78 -82
  22. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/records_variables.json +106 -106
  23. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/taxcalcio.py +60 -51
  24. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/tests/conftest.py +19 -14
  25. taxcalc-6.0.0/taxcalc/tests/reforms_expect.csv +61 -0
  26. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/tests/test_calculator.py +197 -160
  27. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/tests/test_cpscsv.py +0 -22
  28. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/tests/test_data.py +11 -3
  29. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/tests/test_parameters.py +42 -0
  30. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/tests/test_records.py +139 -8
  31. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/tests/test_reforms.py +4 -6
  32. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/tests/test_taxcalcio.py +3 -58
  33. {taxcalc-5.3.0 → taxcalc-6.0.0/taxcalc.egg-info}/PKG-INFO +1 -1
  34. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc.egg-info/SOURCES.txt +0 -6
  35. taxcalc-5.3.0/taxcalc/puf_ratios.csv +0 -26
  36. taxcalc-5.3.0/taxcalc/puf_weights.csv.gz +0 -0
  37. taxcalc-5.3.0/taxcalc/tests/reforms_expect.csv +0 -61
  38. taxcalc-5.3.0/taxcalc/tests/test_compare.py +0 -330
  39. taxcalc-5.3.0/taxcalc/tests/test_compatible_data.py +0 -334
  40. taxcalc-5.3.0/taxcalc/tests/test_puf_var_stats.py +0 -194
  41. taxcalc-5.3.0/taxcalc/tests/test_pufcsv.py +0 -328
  42. {taxcalc-5.3.0 → taxcalc-6.0.0}/.coveragerc +0 -0
  43. {taxcalc-5.3.0 → taxcalc-6.0.0}/.github/FUNDING.yml +0 -0
  44. {taxcalc-5.3.0 → taxcalc-6.0.0}/.github/workflows/check_jupyterbook.yml +0 -0
  45. {taxcalc-5.3.0 → taxcalc-6.0.0}/.github/workflows/deploy_jupyterbook.yml +0 -0
  46. {taxcalc-5.3.0 → taxcalc-6.0.0}/.github/workflows/deploy_parameters_docs.yml +0 -0
  47. {taxcalc-5.3.0 → taxcalc-6.0.0}/LICENSE +0 -0
  48. {taxcalc-5.3.0 → taxcalc-6.0.0}/PSL_catalog.json +0 -0
  49. {taxcalc-5.3.0 → taxcalc-6.0.0}/README.md +0 -0
  50. {taxcalc-5.3.0 → taxcalc-6.0.0}/codecov.yml +0 -0
  51. {taxcalc-5.3.0 → taxcalc-6.0.0}/conda.recipe/bld.bat +0 -0
  52. {taxcalc-5.3.0 → taxcalc-6.0.0}/conda.recipe/build.sh +0 -0
  53. {taxcalc-5.3.0 → taxcalc-6.0.0}/conda.recipe/meta.yaml +0 -0
  54. {taxcalc-5.3.0 → taxcalc-6.0.0}/csv_show.sh +0 -0
  55. {taxcalc-5.3.0 → taxcalc-6.0.0}/csv_vars.sh +0 -0
  56. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/PSL.svg +0 -0
  57. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/_config.yml +0 -0
  58. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/_static/atr.png +0 -0
  59. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/_static/mtr.png +0 -0
  60. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/_static/pch.png +0 -0
  61. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/_toc.yml +0 -0
  62. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/about/LICENSE.md +0 -0
  63. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/about/history.md +0 -0
  64. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/about/roadmap.md +0 -0
  65. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/api/calcfunctions.rst +0 -0
  66. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/api/calculator.rst +0 -0
  67. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/api/consumption.rst +0 -0
  68. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/api/data.rst +0 -0
  69. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/api/decorators.rst +0 -0
  70. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/api/growdiff.rst +0 -0
  71. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/api/growfactors.rst +0 -0
  72. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/api/parameters.rst +0 -0
  73. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/api/policy.rst +0 -0
  74. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/api/public_api.rst +0 -0
  75. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/api/records.rst +0 -0
  76. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/api/taxcalcio.rst +0 -0
  77. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/api/utils.rst +0 -0
  78. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/api/utilsprvt.rst +0 -0
  79. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/contributing/param_naming.md +0 -0
  80. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/contributing/pr_workflow.md +0 -0
  81. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/guide/README.md +0 -0
  82. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/guide/assumption_params.md +0 -0
  83. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/guide/cli.md +0 -0
  84. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/guide/index.md +0 -0
  85. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/guide/input_vars.md +0 -0
  86. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/guide/make/make_io_vars.py +0 -0
  87. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/guide/make/make_params.py +0 -0
  88. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/guide/make/make_uguide.py +0 -0
  89. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/guide/output_vars.md +0 -0
  90. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/guide/policy_params.md +0 -0
  91. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/guide/python_interface.md +0 -0
  92. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/guide/templates/assumption_params_template.md +0 -0
  93. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/guide/templates/input_vars_template.md +0 -0
  94. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/guide/templates/output_vars_template.md +0 -0
  95. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/guide/templates/policy_params_template.md +0 -0
  96. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/recipes/README.md +0 -0
  97. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/recipes/_static/reformA.json +0 -0
  98. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/recipes/_static/reformB.json +0 -0
  99. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/recipes/_static/reformC.json +0 -0
  100. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/recipes/convert_all.sh +0 -0
  101. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/recipes/index.md +0 -0
  102. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/recipes/md_src/recipe01.md +0 -0
  103. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/recipes/md_src/recipe02.md +0 -0
  104. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/recipes/md_src/recipe03.md +0 -0
  105. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/recipes/md_src/recipe04.md +0 -0
  106. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/recipes/md_src/recipe04_pandas.md +0 -0
  107. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/recipes/md_src/recipe05.md +0 -0
  108. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/recipes/md_src/recipe06.md +0 -0
  109. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/recipes/recipe00.ipynb +0 -0
  110. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/recipes/recipe01.ipynb +0 -0
  111. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/recipes/recipe02.ipynb +0 -0
  112. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/recipes/recipe03.ipynb +0 -0
  113. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/recipes/recipe04.ipynb +0 -0
  114. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/recipes/recipe04_pandas.ipynb +0 -0
  115. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/recipes/recipe05.ipynb +0 -0
  116. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/recipes/recipe06.ipynb +0 -0
  117. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/usage/starting.md +0 -0
  118. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/usage/tcja_after_2025.md +0 -0
  119. {taxcalc-5.3.0 → taxcalc-6.0.0}/docs/use_cases.md +0 -0
  120. {taxcalc-5.3.0 → taxcalc-6.0.0}/environment.yml +0 -0
  121. {taxcalc-5.3.0 → taxcalc-6.0.0}/gitpr +0 -0
  122. {taxcalc-5.3.0 → taxcalc-6.0.0}/gitpr.bat +0 -0
  123. {taxcalc-5.3.0 → taxcalc-6.0.0}/gitsync +0 -0
  124. {taxcalc-5.3.0 → taxcalc-6.0.0}/gitsync.bat +0 -0
  125. {taxcalc-5.3.0 → taxcalc-6.0.0}/pyproject.toml +0 -0
  126. {taxcalc-5.3.0 → taxcalc-6.0.0}/setup.cfg +0 -0
  127. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/assumptions/ASSUMPTIONS.md +0 -0
  128. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/assumptions/README.md +0 -0
  129. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/assumptions/economic_assumptions_template.json +0 -0
  130. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/calcfunctions.py +0 -0
  131. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/cli/__init__.py +0 -0
  132. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/conftest.py +0 -0
  133. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/consumption.json +0 -0
  134. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/consumption.py +0 -0
  135. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/cps.csv.gz +0 -0
  136. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/cps_weights.csv.gz +0 -0
  137. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/decorators.py +0 -0
  138. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/growdiff.json +0 -0
  139. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/growdiff.py +0 -0
  140. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/growfactors.csv +0 -0
  141. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/growfactors.py +0 -0
  142. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/parameters.py +0 -0
  143. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/policy_current_law.json +0 -0
  144. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/2017_law.json +0 -0
  145. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/2017_law.out.csv +0 -0
  146. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/ARPA.json +0 -0
  147. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/ARPA.out.csv +0 -0
  148. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/BrownKhanna.json +0 -0
  149. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/BrownKhanna.out.csv +0 -0
  150. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/CARES.json +0 -0
  151. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/CARES.out.csv +0 -0
  152. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/ConsolidatedAppropriationsAct2021.json +0 -0
  153. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/ConsolidatedAppropriationsAct2021.out.csv +0 -0
  154. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/Larson2019.json +0 -0
  155. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/Larson2019.out.csv +0 -0
  156. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/README.md +0 -0
  157. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/REFORMS.md +0 -0
  158. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/Renacci.json +0 -0
  159. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/Renacci.out.csv +0 -0
  160. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/SandersDeFazio.json +0 -0
  161. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/SandersDeFazio.out.csv +0 -0
  162. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/TCJA.json +0 -0
  163. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/TCJA.md +0 -0
  164. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/TCJA.out.csv +0 -0
  165. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/Trump2016.json +0 -0
  166. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/Trump2016.out.csv +0 -0
  167. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/Trump2017.json +0 -0
  168. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/Trump2017.out.csv +0 -0
  169. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/archive/Clinton2016.json +0 -0
  170. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/archive/RyanBrady.json +0 -0
  171. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/archive/TCJA_House.json +0 -0
  172. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/archive/TCJA_House_Amended.json +0 -0
  173. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/archive/TCJA_Reconciliation.json +0 -0
  174. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/archive/TCJA_Senate.json +0 -0
  175. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/archive/TCJA_Senate_111417.json +0 -0
  176. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/archive/TCJA_Senate_120117.json +0 -0
  177. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/cases.csv +0 -0
  178. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/ext.json +0 -0
  179. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/growfactors_ext.csv +0 -0
  180. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/ptaxes0.json +0 -0
  181. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/ptaxes0.out.csv +0 -0
  182. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/ptaxes1.json +0 -0
  183. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/ptaxes1.out.csv +0 -0
  184. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/ptaxes2.json +0 -0
  185. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/ptaxes2.out.csv +0 -0
  186. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/ptaxes3.json +0 -0
  187. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/reforms/ptaxes3.out.csv +0 -0
  188. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/tests/benefits_expect.csv +0 -0
  189. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/tests/cmpi_cps_expect.txt +0 -0
  190. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/tests/cmpi_puf_expect.txt +0 -0
  191. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/tests/cpscsv_agg_expect.csv +0 -0
  192. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/tests/puf_var_correl_coeffs_2016.csv +0 -0
  193. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/tests/puf_var_wght_means_by_year.csv +0 -0
  194. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/tests/pufcsv_agg_expect.csv +0 -0
  195. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/tests/pufcsv_mtr_expect.txt +0 -0
  196. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/tests/reforms.json +0 -0
  197. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/tests/test_4package.py +0 -0
  198. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/tests/test_benefits.py +0 -0
  199. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/tests/test_calcfunctions.py +0 -0
  200. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/tests/test_consumption.py +0 -0
  201. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/tests/test_decorators.py +0 -0
  202. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/tests/test_growdiff.py +0 -0
  203. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/tests/test_growfactors.py +0 -0
  204. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/tests/test_policy.py +0 -0
  205. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/tests/test_responses.py +0 -0
  206. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/tests/test_utils.py +0 -0
  207. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/utils.py +0 -0
  208. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/utilsprvt.py +0 -0
  209. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/validation/CSV_INPUT_VARS.md +0 -0
  210. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/validation/CSV_OUTPUT_VARS.md +0 -0
  211. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/validation/README.md +0 -0
  212. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/validation/taxsim35/Differences_Explained.md +0 -0
  213. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/validation/taxsim35/README.md +0 -0
  214. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/validation/taxsim35/expected_differences/a17-taxdiffs-expect.csv +0 -0
  215. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/validation/taxsim35/expected_differences/a18-taxdiffs-expect.csv +0 -0
  216. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/validation/taxsim35/expected_differences/a19-taxdiffs-expect.csv +0 -0
  217. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/validation/taxsim35/expected_differences/a20-taxdiffs-expect.csv +0 -0
  218. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/validation/taxsim35/expected_differences/a21-taxdiffs-expect.csv +0 -0
  219. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/validation/taxsim35/expected_differences/b17-taxdiffs-expect.csv +0 -0
  220. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/validation/taxsim35/expected_differences/b18-taxdiffs-expect.csv +0 -0
  221. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/validation/taxsim35/expected_differences/b19-taxdiffs-expect.csv +0 -0
  222. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/validation/taxsim35/expected_differences/b20-taxdiffs-expect.csv +0 -0
  223. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/validation/taxsim35/expected_differences/b21-taxdiffs-expect.csv +0 -0
  224. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/validation/taxsim35/expected_differences/c17-taxdiffs-expect.csv +0 -0
  225. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/validation/taxsim35/expected_differences/c18-taxdiffs-expect.csv +0 -0
  226. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/validation/taxsim35/expected_differences/c19-taxdiffs-expect.csv +0 -0
  227. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/validation/taxsim35/input_setup.py +0 -0
  228. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/validation/taxsim35/main_comparison.py +0 -0
  229. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/validation/taxsim35/prepare_taxcalc_input.py +0 -0
  230. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/validation/taxsim35/process_taxcalc_output.py +0 -0
  231. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/validation/taxsim35/taxsim_emulation.json +0 -0
  232. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/validation/taxsim35/taxsim_input.py +0 -0
  233. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/validation/taxsim35/tc_sims.py +0 -0
  234. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/validation/taxsim35/tests_35.py +0 -0
  235. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc/validation/tests_35.sh +0 -0
  236. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc.egg-info/dependency_links.txt +0 -0
  237. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc.egg-info/entry_points.txt +0 -0
  238. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc.egg-info/requires.txt +0 -0
  239. {taxcalc-5.3.0 → taxcalc-6.0.0}/taxcalc.egg-info/top_level.txt +0 -0
  240. {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 requires_pufcsv and not pre_release and not local' --cov=./ --cov-report=xml
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 file
17
- puf.csv
18
- tmd.csv
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*
@@ -4,6 +4,4 @@ include taxcalc/cps_weights.csv.gz
4
4
  include taxcalc/growdiff.json
5
5
  include taxcalc/growfactors.csv
6
6
  include taxcalc/policy_current_law.json
7
- include taxcalc/puf_weights.csv.gz
8
- include taxcalc/puf_ratios.csv
9
7
  include taxcalc/records_variables.json
@@ -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 pre_release'"
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 pre_release"
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-all
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 requires_pufcsv and not pre_release"
103
+ COVMARK = "not requires_puf and not requires_tmd"
105
104
 
106
105
  OS := $(shell uname -s)
107
106
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: taxcalc
3
- Version: 5.3.0
3
+ Version: 6.0.0
4
4
  Summary: Tax-Calculator
5
5
  Home-page: https://github.com/PSLmodels/Tax-Calculator
6
6
  Download-URL: https://github.com/PSLmodels/Tax-Calculator
@@ -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` [or `pytest -m pre_release -n4` in taxcalc subdir]
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 requires_pufcsv and not pre_release" -n4
118
+ pytest -m "not requires_puf and not requires_tmd" -n4
119
119
  ```
120
- If you do have a copy of the `puf.csv` file used by Tax-Calculator,
121
- then on the second line above omit the `not requires_pufcsv and`
122
- expression so as to execute `pytest -m "not pre_release" -n4`.
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-cps
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 a file called `puf.csv` that
42
- contains a representative sample of tax filing units derived from the
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
- This will start executing a pytest suite containing hundreds of tests,
64
- but will skip the tests that require the `puf.csv` file as input and
65
- the tests that are executed only just before a new release is being
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
- including the tests that require the `puf.csv` file as input but
80
- excluding the tests that are executed only just before a new release
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
- Just before releasing a new version of Tax-Calculator or just after
84
- adding a new parameter to `policy_current_law.json`, you should also
85
- execute the pre-release tests using this command:
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? For all but the few tests that require
112
- the `puf.csv` file or the `cps.csv` file as input, simply edit the
113
- appropriate `taxcalc/tests/test_*.py` file so that the test passes
114
- when you rerun pytest. If there are failures for the tests that write
115
- results files, read the test error message for instructions about how
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}`5.3.0 (2025-09-19) <about/releases>`
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 file.
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 `growfactors.csv` files that are included in
46
- Tax-Calculator can be used along with the `taxdata` generated `puf.csv`
47
- file when using Tax-Calculator.
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 weights
51
- file and grow factors to the
52
- [taxdata](https://github.com/PSLmodels/taxdata) documentation for
53
- details on how to use these files with the PUF and to see how well the
54
- resulting tax calculations hit aggregate targets published by the IRS.
55
- However, we do note that analysis with a PUF-based data file tends to
56
- be more accurate than the `cps.csv` file and that the validation of
57
- Tax-Calculator with other microsimulation models uses the `puf.csv`
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()` and
75
- `Policy.tmd_constructor()` static methods to instantiate a Records
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 (OOP)](https://www.programiz.com/python-programming/object-oriented-programming)
5
- principles.
6
- There are seven classes and a collection of global utility functions,
7
- but most Python programming involves using only a few methods in three classes.
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 objects:
12
- both containing the same sample of filing units (that is, Records class object),
13
- but each containing a different tax policy (that is, Policy class object).
14
- The idea is to compare the calculated tax liabilities of the sample units under
15
- the two different tax policies,
16
- one of which is usually current-law policy and the other is a tax reform of
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 IRS-SOI-PUF-derived filing-unit data
21
- or created by `Records.cps_constructor()` when containing CPS-derived
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
- * `ref` → `Policy` class object containing parameters that characterize a tax
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 global utility
72
- functions, that together provide the full range of Tax-Calculator capabilities.
73
- Here is a description of their role in Tax-Calculator and a link to each the
74
- detailed documentation and source code for each class and all its methods.
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
 
@@ -2,15 +2,11 @@
2
2
  testpaths =
3
3
  taxcalc
4
4
  markers =
5
- requires_pufcsv
6
- pre_release
5
+ requires_puf
6
+ requires_tmd
7
7
  local
8
8
  benefits
9
- compatible_data
10
- cps
11
- cpscsv_agg
12
9
  itmded_vars
13
- pufcsv_agg
14
10
  qbid
15
11
  reforms
16
12
  rtr
@@ -7,7 +7,7 @@ from setuptools import setup
7
7
  with open("README.md", "r", encoding="utf-8") as f:
8
8
  longdesc = f.read()
9
9
 
10
- VERSION = "5.3.0"
10
+ VERSION = "6.0.0"
11
11
 
12
12
  config = {
13
13
  "description": "Tax-Calculator",
@@ -14,6 +14,6 @@ from taxcalc.taxcalcio import *
14
14
  from taxcalc.utils import *
15
15
  from taxcalc.cli import *
16
16
 
17
- __version__ = '5.3.0'
17
+ __version__ = '6.0.0'
18
18
  __min_python3_version__ = 11
19
19
  __max_python3_version__ = 13
@@ -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, aging_data)
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
- msg = 'data missing one or more MUST_READ_VARS'
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
  """