taxcalc 4.3.1__py3-none-any.whl → 4.3.2__py3-none-any.whl
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/__init__.py +1 -1
- taxcalc/calculator.py +6 -6
- taxcalc/growfactors.py +1 -1
- taxcalc/policy.py +16 -3
- taxcalc/reforms/ext.json +1 -1
- taxcalc/tests/test_taxcalcio.py +1 -1
- {taxcalc-4.3.1.dist-info → taxcalc-4.3.2.dist-info}/METADATA +1 -1
- {taxcalc-4.3.1.dist-info → taxcalc-4.3.2.dist-info}/RECORD +12 -12
- {taxcalc-4.3.1.dist-info → taxcalc-4.3.2.dist-info}/WHEEL +1 -1
- {taxcalc-4.3.1.dist-info → taxcalc-4.3.2.dist-info}/LICENSE +0 -0
- {taxcalc-4.3.1.dist-info → taxcalc-4.3.2.dist-info}/entry_points.txt +0 -0
- {taxcalc-4.3.1.dist-info → taxcalc-4.3.2.dist-info}/top_level.txt +0 -0
taxcalc/__init__.py
CHANGED
taxcalc/calculator.py
CHANGED
@@ -698,7 +698,8 @@ class Calculator():
|
|
698
698
|
self.policy_param('FICA_ss_trt_employee') +
|
699
699
|
self.policy_param('FICA_mc_trt_employer') +
|
700
700
|
self.policy_param('FICA_mc_trt_employee')),
|
701
|
-
0.5 * (self.policy_param('FICA_mc_trt_employer') +
|
701
|
+
0.5 * (self.policy_param('FICA_mc_trt_employer') +
|
702
|
+
self.policy_param('FICA_mc_trt_employee')))
|
702
703
|
else:
|
703
704
|
adj = 0.0
|
704
705
|
# compute marginal tax rates
|
@@ -1189,11 +1190,10 @@ class Calculator():
|
|
1189
1190
|
for pname in baseline.keys():
|
1190
1191
|
upda_value = getattr(updated, pname)
|
1191
1192
|
base_value = getattr(baseline, pname)
|
1193
|
+
is_array = isinstance(upda_value, np.ndarray)
|
1192
1194
|
if (
|
1193
|
-
(
|
1194
|
-
|
1195
|
-
(not isinstance(upda_value, np.ndarray) and
|
1196
|
-
upda_value != base_value)
|
1195
|
+
(is_array and not np.allclose(upda_value, base_value))
|
1196
|
+
or (is_array == False and upda_value != base_value)
|
1197
1197
|
):
|
1198
1198
|
params_with_diff.append(pname)
|
1199
1199
|
if params_with_diff:
|
@@ -1248,7 +1248,7 @@ class Calculator():
|
|
1248
1248
|
else: # if baseline is GrowDiff object
|
1249
1249
|
# each GrowDiff parameter has zero as default value
|
1250
1250
|
doc += ' baseline_value: 0.0\n'
|
1251
|
-
|
1251
|
+
del mdata_base
|
1252
1252
|
return doc
|
1253
1253
|
|
1254
1254
|
# begin main logic of reform_documentation
|
taxcalc/growfactors.py
CHANGED
@@ -38,7 +38,7 @@ class GrowFactors():
|
|
38
38
|
which is for use with puf and cps data from the taxdata repository.
|
39
39
|
"""
|
40
40
|
|
41
|
-
PACKAGE_FILE_NAMES = ['growfactors.csv'
|
41
|
+
PACKAGE_FILE_NAMES = ['growfactors.csv']
|
42
42
|
FILE_PATH = os.path.abspath(os.path.dirname(__file__))
|
43
43
|
|
44
44
|
VALID_NAMES = set(['ABOOK', 'ACGNS', 'ACPIM', 'ACPIU',
|
taxcalc/policy.py
CHANGED
@@ -7,6 +7,7 @@ Tax-Calculator federal tax policy Policy class.
|
|
7
7
|
|
8
8
|
import os
|
9
9
|
import json
|
10
|
+
from pathlib import Path
|
10
11
|
import numpy as np
|
11
12
|
from taxcalc.parameters import Parameters
|
12
13
|
from taxcalc.growfactors import GrowFactors
|
@@ -80,7 +81,7 @@ class Policy(Parameters):
|
|
80
81
|
# (3) specify which Policy parameters are wage (rather than price) indexed
|
81
82
|
WAGE_INDEXED_PARAMS = ['SS_Earnings_c', 'SS_Earnings_thd']
|
82
83
|
|
83
|
-
def __init__(self, gfactors=None,
|
84
|
+
def __init__(self, gfactors=None, **kwargs):
|
84
85
|
# put JSON contents of DEFAULTS_FILE_NAME into self._vals dictionary
|
85
86
|
super().__init__()
|
86
87
|
# handle gfactors argument
|
@@ -92,7 +93,6 @@ class Policy(Parameters):
|
|
92
93
|
raise ValueError('gfactors is not None or a GrowFactors instance')
|
93
94
|
# read default parameters and initialize
|
94
95
|
syr = Policy.JSON_START_YEAR
|
95
|
-
lyr = Policy.LAST_BUDGET_YEAR
|
96
96
|
nyrs = Policy.DEFAULT_NUM_YEARS
|
97
97
|
self._inflation_rates = None
|
98
98
|
self._wage_growth_rates = None
|
@@ -101,6 +101,19 @@ class Policy(Parameters):
|
|
101
101
|
Policy.REDEFINED_PARAMS,
|
102
102
|
Policy.WAGE_INDEXED_PARAMS, **kwargs)
|
103
103
|
|
104
|
+
@staticmethod
|
105
|
+
def tmd_constructor(growfactors_path): # pragma: no cover
|
106
|
+
"""
|
107
|
+
Static method returns a Policy object instantiated with TMD
|
108
|
+
input data. This convenience method works in a analogous way
|
109
|
+
to Policy(), which returns a Policy object instantiated with
|
110
|
+
non-TMD input data.
|
111
|
+
"""
|
112
|
+
assert isinstance(growfactors_path, Path)
|
113
|
+
gf_filename = str(growfactors_path)
|
114
|
+
tmd_growfactors = GrowFactors(growfactors_filename=gf_filename)
|
115
|
+
return Policy(gfactors=tmd_growfactors)
|
116
|
+
|
104
117
|
@staticmethod
|
105
118
|
def read_json_reform(obj):
|
106
119
|
"""
|
@@ -129,7 +142,7 @@ class Policy(Parameters):
|
|
129
142
|
Policy.DEFAULTS_FILE_PATH,
|
130
143
|
Policy.DEFAULTS_FILE_NAME
|
131
144
|
)
|
132
|
-
with open(path) as f:
|
145
|
+
with open(path, 'r', encoding='utf-8') as f:
|
133
146
|
defaults = json.loads(f.read()) # pylint: disable=protected-access
|
134
147
|
return [k for k in defaults if k != "schema"]
|
135
148
|
|
taxcalc/reforms/ext.json
CHANGED
taxcalc/tests/test_taxcalcio.py
CHANGED
@@ -88,7 +88,7 @@ def fixture_reformfile1():
|
|
88
88
|
"II_em": { // personal exemption amount (see indexing changes below)
|
89
89
|
"2016": 6000,
|
90
90
|
"2018": 7500,
|
91
|
-
"
|
91
|
+
"2021": 9000},
|
92
92
|
"II_em-indexed": { // personal exemption amount indexing status
|
93
93
|
"2016": false, // values in future years are same as this year value
|
94
94
|
"2018": true // values in future years indexed with this year as base
|
@@ -1,6 +1,6 @@
|
|
1
|
-
taxcalc/__init__.py,sha256=
|
1
|
+
taxcalc/__init__.py,sha256=Le7YP1qsAQ16R7VeiMWC2bpbsC6aiPiO2-a_Ce8gyUc,536
|
2
2
|
taxcalc/calcfunctions.py,sha256=XrEHKMnjOQQHSryk8FXbRDo5Xd8grDgrTJ1q_7DDehQ,146696
|
3
|
-
taxcalc/calculator.py,sha256=
|
3
|
+
taxcalc/calculator.py,sha256=6MTDHhXitefwKHwzAQ_7RgPbZDpCWWHTOqWX_bjeA_A,63709
|
4
4
|
taxcalc/conftest.py,sha256=nO4J7qu1sTHgjqrzhpRMvfMJUrNm6GP_IsSuuDt_MeQ,141
|
5
5
|
taxcalc/consumption.json,sha256=D4Iz625yka_LSlq313hoy01qGtNrpN5QYAHqd9QQfVA,8102
|
6
6
|
taxcalc/consumption.py,sha256=IS-pB2I0JW3pdXB0vHvqA14AVnkP-TDNYFMx8MmQYIg,3327
|
@@ -11,9 +11,9 @@ taxcalc/decorators.py,sha256=uCZGHrq90k5Gr5YA_1tuWkCMEiOPbqXp6wxCWp6cDfM,11332
|
|
11
11
|
taxcalc/growdiff.json,sha256=im6mp7NZfpROismsNTjwLLAwIEltZsFfV6EKFEG3dKo,15037
|
12
12
|
taxcalc/growdiff.py,sha256=lW0tvVh2WtOOznf1AdAyDzvB-WLb8sgyogCbAOUqXw0,2905
|
13
13
|
taxcalc/growfactors.csv,sha256=OQArKySPTSweIGV9v17WrenfcQa6ABrbTpIWZUqL2Uk,12281
|
14
|
-
taxcalc/growfactors.py,sha256=
|
14
|
+
taxcalc/growfactors.py,sha256=MNb2XbAV_RbJDjbZp7iMvC6dHabAe97wdbXWEqdAmaQ,6534
|
15
15
|
taxcalc/parameters.py,sha256=57RVKpx0i4J0L6lqdgykakO9ASHx9JnkI2tK7yDmvto,31175
|
16
|
-
taxcalc/policy.py,sha256=
|
16
|
+
taxcalc/policy.py,sha256=65xHrz5M7OJu7k3M4Zh9WUv6hpe6Qic3c-_OkbZmnEA,6878
|
17
17
|
taxcalc/policy_current_law.json,sha256=eARPB7EpnQgNi5GMX94krF9ZHS_AyTEJjwQljCnkc_Y,658683
|
18
18
|
taxcalc/puf_ratios.csv,sha256=FjEj41SyyW5Fp7JTVptQGKjnu43rfl3uOc9-019bE_s,3439
|
19
19
|
taxcalc/puf_weights.csv.gz,sha256=LouhxTQJ0ow-Yn63PjMElB5ICXO9AybLXeEt3gP5AY4,12988069
|
@@ -54,7 +54,7 @@ taxcalc/reforms/Trump2017.json,sha256=DZjCJQZYe98Skyss7z_Jhj8HJld_FPZeQGxwzGgQIn
|
|
54
54
|
taxcalc/reforms/Trump2017.out.csv,sha256=SQTnFgXOo2QldcSYourBPiK3GsqZa3S3PHkSXQ2MAsA,474
|
55
55
|
taxcalc/reforms/cases.csv,sha256=JQ0LSnNeyl6xSgW5mimGUJMr7xwCWTOpiOpfwx2ETsg,570
|
56
56
|
taxcalc/reforms/clp.out.csv,sha256=5wFsG1tFqGFLVwtL_jKJVC3uzA3auB_n-IAfb7XX96s,355
|
57
|
-
taxcalc/reforms/ext.json,sha256=
|
57
|
+
taxcalc/reforms/ext.json,sha256=yj1HKhLZ93cXob0yoQlLotrKFwNiAHjdpKSi7nYuA_8,3025
|
58
58
|
taxcalc/reforms/growfactors_ext.csv,sha256=E0szWXtgV5jcpiyvREOz1yXw_poPIBC77bBQI1rlFxM,17733
|
59
59
|
taxcalc/reforms/ptaxes0.json,sha256=QkvqCVkI23sF7FvTHqaUYNpEJYuHNChbKwH0mH7Otp4,1718
|
60
60
|
taxcalc/reforms/ptaxes0.out.csv,sha256=kGn0h67vBzgkEiEhuYjvpspQ-KnndN9gDVVnsIe7S7w,473
|
@@ -102,7 +102,7 @@ taxcalc/tests/test_pufcsv.py,sha256=FuNwf9dR6sPppuBAYI8EPedMGJ5UjCitpq6eJa9EKsA,
|
|
102
102
|
taxcalc/tests/test_records.py,sha256=CmYLJOH63vlm4K96z6Q1nzb1bK_F_rPKehZ0MFKTI4o,8323
|
103
103
|
taxcalc/tests/test_reforms.py,sha256=HEG8YA_F9lmHX4j_0vWzXtTJZc6l6vt8Nu8cjEIUYDo,15855
|
104
104
|
taxcalc/tests/test_responses.py,sha256=-t0-Yr2X8Y1e1KZ4oF6dlt4Ze5jbn8_JQalAee3KPzk,1625
|
105
|
-
taxcalc/tests/test_taxcalcio.py,sha256
|
105
|
+
taxcalc/tests/test_taxcalcio.py,sha256=-O9uhV2spiUvBN2XUS4kVOUUFCsW6Ynl6XNw4dJSCVo,24979
|
106
106
|
taxcalc/tests/test_utils.py,sha256=sA2ozKkMRbKyCsiXdeYU5K7w2a1us1Cf5pL9a2NmYpk,29139
|
107
107
|
taxcalc/validation/CSV_INPUT_VARS.md,sha256=MqlZZGt_a1n8JAU-nY5MjnTmjz1pMOuhtpVYIGUgl38,1433
|
108
108
|
taxcalc/validation/CSV_OUTPUT_VARS.md,sha256=wr8oyCJDXcxl4Lu0H_wMofUQYhEIyHDif6vkbas1FGE,3000
|
@@ -131,9 +131,9 @@ taxcalc/validation/taxsim35/expected_differences/b21-taxdiffs-expect.csv,sha256=
|
|
131
131
|
taxcalc/validation/taxsim35/expected_differences/c17-taxdiffs-expect.csv,sha256=YhgojbLowH3yujdYu7SGkdvBZmTgpugu4wYc1Be069M,1125
|
132
132
|
taxcalc/validation/taxsim35/expected_differences/c18-taxdiffs-expect.csv,sha256=g9J4BPbTySV-h-RcLvReJq9v1jscgiRSSZzi0taEA-k,1225
|
133
133
|
taxcalc/validation/taxsim35/expected_differences/c19-taxdiffs-expect.csv,sha256=Ceh15N_Xr3L7cpYjzGa-8NLCV3obc8PNHEhE5ZxSPhI,1238
|
134
|
-
taxcalc-4.3.
|
135
|
-
taxcalc-4.3.
|
136
|
-
taxcalc-4.3.
|
137
|
-
taxcalc-4.3.
|
138
|
-
taxcalc-4.3.
|
139
|
-
taxcalc-4.3.
|
134
|
+
taxcalc-4.3.2.dist-info/LICENSE,sha256=m5epLdB-_NXiY7NsEDgcHP4jDtJ4vOlRf5S3Jb-jraY,1299
|
135
|
+
taxcalc-4.3.2.dist-info/METADATA,sha256=hT0IPjp6gznKRBIPPev8X5eIT3CiWMEWtb893zJnnlI,3183
|
136
|
+
taxcalc-4.3.2.dist-info/WHEEL,sha256=a7TGlA-5DaHMRrarXjVbQagU3Man_dCnGIWMJr5kRWo,91
|
137
|
+
taxcalc-4.3.2.dist-info/entry_points.txt,sha256=a3ZE1piRv683p27fOLdWZvVJXESkoslTOp5iXV7uVco,50
|
138
|
+
taxcalc-4.3.2.dist-info/top_level.txt,sha256=Wh8wTDHkA_cm4dn8IoUCviDyGgVQqwEQKPJnl8z6d4c,8
|
139
|
+
taxcalc-4.3.2.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|