taxcalc 5.0.0__py3-none-any.whl → 5.1.0__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/calcfunctions.py +364 -276
- taxcalc/calculator.py +4 -3
- taxcalc/consumption.json +0 -16
- taxcalc/growdiff.json +2 -18
- taxcalc/parameters.py +1 -1
- taxcalc/policy.py +15 -2
- taxcalc/policy_current_law.json +1011 -85
- taxcalc/records.py +3 -0
- taxcalc/records_variables.json +40 -1
- taxcalc/reforms/2017_law.json +1 -1
- taxcalc/reforms/ARPA.json +6 -6
- taxcalc/reforms/CARES.json +2 -2
- taxcalc/reforms/TCJA.json +1 -1
- taxcalc/reforms/ext.json +1 -1
- taxcalc/tests/cpscsv_agg_expect.csv +6 -6
- taxcalc/tests/puf_var_correl_coeffs_2016.csv +10 -10
- taxcalc/tests/puf_var_wght_means_by_year.csv +5 -5
- taxcalc/tests/pufcsv_agg_expect.csv +8 -8
- taxcalc/tests/pufcsv_mtr_expect.txt +18 -18
- taxcalc/tests/reforms.json +1 -1
- taxcalc/tests/test_calcfunctions.py +113 -29
- taxcalc/tests/test_parameters.py +27 -19
- taxcalc/tests/test_policy.py +1 -1
- taxcalc/tests/test_reforms.py +1 -1
- {taxcalc-5.0.0.dist-info → taxcalc-5.1.0.dist-info}/METADATA +1 -1
- {taxcalc-5.0.0.dist-info → taxcalc-5.1.0.dist-info}/RECORD +31 -31
- {taxcalc-5.0.0.dist-info → taxcalc-5.1.0.dist-info}/WHEEL +0 -0
- {taxcalc-5.0.0.dist-info → taxcalc-5.1.0.dist-info}/entry_points.txt +0 -0
- {taxcalc-5.0.0.dist-info → taxcalc-5.1.0.dist-info}/licenses/LICENSE +0 -0
- {taxcalc-5.0.0.dist-info → taxcalc-5.1.0.dist-info}/top_level.txt +0 -0
@@ -16,7 +16,7 @@ from taxcalc import calcfunctions
|
|
16
16
|
|
17
17
|
class GetFuncDefs(ast.NodeVisitor):
|
18
18
|
"""
|
19
|
-
Return information about each function defined in
|
19
|
+
Return information about each function defined in calcfunctions.py file.
|
20
20
|
"""
|
21
21
|
def __init__(self):
|
22
22
|
"""
|
@@ -39,6 +39,8 @@ class GetFuncDefs(ast.NodeVisitor):
|
|
39
39
|
"""
|
40
40
|
visit the specified FunctionDef node
|
41
41
|
"""
|
42
|
+
if node.name == 'SchXYZ':
|
43
|
+
return # skipping SchXYZ function that has multiple returns
|
42
44
|
self.fname = node.name
|
43
45
|
self.fnames.append(self.fname)
|
44
46
|
self.fargs[self.fname] = []
|
@@ -68,6 +70,7 @@ class GetFuncDefs(ast.NodeVisitor):
|
|
68
70
|
self.generic_visit(node)
|
69
71
|
|
70
72
|
|
73
|
+
@pytest.mark.calc_and_used_vars
|
71
74
|
def test_calc_and_used_vars(tests_path):
|
72
75
|
"""
|
73
76
|
Runs two kinds of tests on variables used in the calcfunctions.py file:
|
@@ -92,8 +95,6 @@ def test_calc_and_used_vars(tests_path):
|
|
92
95
|
# .. create set of vars that are actually calculated in calcfunctions.py
|
93
96
|
all_cvars = set()
|
94
97
|
for fname in fnames:
|
95
|
-
if fname == 'BenefitSurtax':
|
96
|
-
continue # because BenefitSurtax is not really a function
|
97
98
|
all_cvars.update(set(cvars[fname]))
|
98
99
|
# .. add to all_cvars set variables calculated in Records class
|
99
100
|
all_cvars.update(set(['num', 'sep', 'exact']))
|
@@ -110,8 +111,7 @@ def test_calc_and_used_vars(tests_path):
|
|
110
111
|
found_error1 = True
|
111
112
|
msg1 += f'VAR NOT CALCULATED: {var}\n'
|
112
113
|
# Test (2):
|
113
|
-
faux_functions = ['EITCamount', '
|
114
|
-
'BenefitSurtax', 'BenefitLimitation', 'SchXYZ']
|
114
|
+
faux_functions = ['EITCamount', 'SchXYZ', 'BenefitPrograms']
|
115
115
|
found_error2 = False
|
116
116
|
msg2 = 'calculated & returned variables are not function arguments\n'
|
117
117
|
for fname in fnames:
|
@@ -157,8 +157,6 @@ def test_function_args_usage(tests_path):
|
|
157
157
|
fname = match.group(1)
|
158
158
|
fargs = match.group(2).split(',') # list of function arguments
|
159
159
|
fbody = match.group(3)
|
160
|
-
if fname == 'Taxes':
|
161
|
-
continue # because Taxes has part of fbody in return statement
|
162
160
|
for farg in fargs:
|
163
161
|
arg = farg.strip()
|
164
162
|
if fbody.find(arg) < 0:
|
@@ -558,6 +556,7 @@ def test_EITC(test_tuple, expected_value, skip_jit):
|
|
558
556
|
|
559
557
|
# Parameter values for tests
|
560
558
|
PT_qbid_rt = 0.2
|
559
|
+
PT_qbid_limited = True
|
561
560
|
PT_qbid_taxinc_thd = [160700.0, 321400.0, 160725.0, 160700.0, 321400.0]
|
562
561
|
PT_qbid_taxinc_gap = [50000.0, 100000.0, 50000.0, 50000.0, 100000.0]
|
563
562
|
PT_qbid_w2_wages_rt = 0.5
|
@@ -565,6 +564,8 @@ PT_qbid_alt_w2_wages_rt = 0.25
|
|
565
564
|
PT_qbid_alt_property_rt = 0.025
|
566
565
|
PT_qbid_ps = [9e99, 9e99, 9e99, 9e99, 9e99]
|
567
566
|
PT_qbid_prt = 0.0
|
567
|
+
PT_qbid_min_ded = 400.0 # OBBBA value in 2026
|
568
|
+
PT_qbid_min_qbi = 1000.0 # OBBBA value in 2026
|
568
569
|
|
569
570
|
# Input variable values for tests
|
570
571
|
c00100 = [527860.66, 337675.10, 603700.00, 90700.00]
|
@@ -579,49 +580,58 @@ e02100 = [0.00, 0.00, 0.00, 0.00]
|
|
579
580
|
e27200 = [0.00, 0.00, 0.00, 0.00]
|
580
581
|
e00650 = [5000.00, 8000.00, 3000.00, 9000.00]
|
581
582
|
c01000 = [7000.00, 4000.00, -3000.00, -3000.00]
|
583
|
+
senior_deduction = [0.00, 0.00, 1000.00, 0.00]
|
584
|
+
auto_loan_interest_deduction = [0.00, 0.00, 0.00, 1000.00]
|
582
585
|
PT_SSTB_income = [0, 1, 1, 1]
|
583
586
|
PT_binc_w2_wages = [0.00, 0.00, 0.00, 0.00]
|
584
587
|
PT_ubia_property = [0.00, 0.00, 0.00, 0.00]
|
585
|
-
c04800 = [0.0, 0.0, 0.0, 0.0] #
|
586
|
-
qbided = [0.0, 0.0, 0.0, 0.0] #
|
588
|
+
c04800 = [0.0, 0.0, 0.0, 0.0] # calculated by function
|
589
|
+
qbided = [0.0, 0.0, 0.0, 0.0] # calculated by function
|
587
590
|
|
588
591
|
tuple0 = (
|
589
592
|
c00100[0], standard[0], c04470[0], c04600[0], MARS[0], e00900[0],
|
590
593
|
c03260[0], e26270[0],
|
591
|
-
e02100[0], e27200[0], e00650[0], c01000[0],
|
592
|
-
|
594
|
+
e02100[0], e27200[0], e00650[0], c01000[0],
|
595
|
+
senior_deduction[0], auto_loan_interest_deduction[0], PT_SSTB_income[0],
|
596
|
+
PT_binc_w2_wages[0], PT_ubia_property[0], PT_qbid_rt, PT_qbid_limited,
|
593
597
|
PT_qbid_taxinc_thd, PT_qbid_taxinc_gap, PT_qbid_w2_wages_rt,
|
594
|
-
PT_qbid_alt_w2_wages_rt, PT_qbid_alt_property_rt,
|
595
|
-
PT_qbid_ps, PT_qbid_prt,
|
596
|
-
|
598
|
+
PT_qbid_alt_w2_wages_rt, PT_qbid_alt_property_rt,
|
599
|
+
PT_qbid_ps, PT_qbid_prt, PT_qbid_min_ded, PT_qbid_min_qbi,
|
600
|
+
c04800[0], qbided[0])
|
601
|
+
expected0 = (490460.66, 400.00)
|
597
602
|
tuple1 = (
|
598
603
|
c00100[1], standard[1], c04470[1], c04600[1], MARS[1], e00900[1],
|
599
604
|
c03260[1], e26270[1],
|
600
|
-
e02100[1], e27200[1], e00650[1], c01000[1],
|
601
|
-
|
605
|
+
e02100[1], e27200[1], e00650[1], c01000[1],
|
606
|
+
senior_deduction[1], auto_loan_interest_deduction[1], PT_SSTB_income[1],
|
607
|
+
PT_binc_w2_wages[1], PT_ubia_property[1], PT_qbid_rt, PT_qbid_limited,
|
602
608
|
PT_qbid_taxinc_thd, PT_qbid_taxinc_gap, PT_qbid_w2_wages_rt,
|
603
|
-
PT_qbid_alt_w2_wages_rt, PT_qbid_alt_property_rt,
|
604
|
-
PT_qbid_ps, PT_qbid_prt,
|
609
|
+
PT_qbid_alt_w2_wages_rt, PT_qbid_alt_property_rt,
|
610
|
+
PT_qbid_ps, PT_qbid_prt, PT_qbid_min_ded, PT_qbid_min_qbi,
|
611
|
+
c04800[1], qbided[1])
|
605
612
|
expected1 = (284400.08, 4275.02)
|
606
613
|
tuple2 = (
|
607
614
|
c00100[2], standard[2], c04470[2], c04600[2], MARS[2], e00900[2],
|
608
615
|
c03260[2], e26270[2],
|
609
|
-
e02100[2], e27200[2], e00650[2], c01000[2],
|
610
|
-
|
616
|
+
e02100[2], e27200[2], e00650[2], c01000[2],
|
617
|
+
senior_deduction[2], auto_loan_interest_deduction[2], PT_SSTB_income[2],
|
618
|
+
PT_binc_w2_wages[2], PT_ubia_property[2], PT_qbid_rt, PT_qbid_limited,
|
611
619
|
PT_qbid_taxinc_thd, PT_qbid_taxinc_gap, PT_qbid_w2_wages_rt,
|
612
|
-
PT_qbid_alt_w2_wages_rt, PT_qbid_alt_property_rt,
|
613
|
-
PT_qbid_ps, PT_qbid_prt,
|
614
|
-
|
620
|
+
PT_qbid_alt_w2_wages_rt, PT_qbid_alt_property_rt,
|
621
|
+
PT_qbid_ps, PT_qbid_prt, PT_qbid_min_ded, PT_qbid_min_qbi,
|
622
|
+
c04800[2], qbided[2])
|
623
|
+
expected2 = (577900.00, 400.00)
|
615
624
|
tuple3 = (
|
616
625
|
c00100[3], standard[3], c04470[3], c04600[3], MARS[3], e00900[3],
|
617
626
|
c03260[3], e26270[3],
|
618
|
-
|
619
|
-
|
620
|
-
PT_binc_w2_wages[3], PT_ubia_property[3], PT_qbid_rt,
|
627
|
+
e02100[3], e27200[3], e00650[3], c01000[3],
|
628
|
+
senior_deduction[3], auto_loan_interest_deduction[3], PT_SSTB_income[3],
|
629
|
+
PT_binc_w2_wages[3], PT_ubia_property[3], PT_qbid_rt, PT_qbid_limited,
|
621
630
|
PT_qbid_taxinc_thd, PT_qbid_taxinc_gap, PT_qbid_w2_wages_rt,
|
622
|
-
PT_qbid_alt_w2_wages_rt, PT_qbid_alt_property_rt,
|
623
|
-
PT_qbid_ps, PT_qbid_prt,
|
624
|
-
|
631
|
+
PT_qbid_alt_w2_wages_rt, PT_qbid_alt_property_rt,
|
632
|
+
PT_qbid_ps, PT_qbid_prt, PT_qbid_min_ded, PT_qbid_min_qbi,
|
633
|
+
c04800[3], qbided[3])
|
634
|
+
expected3 = (56500.00, 1200)
|
625
635
|
|
626
636
|
|
627
637
|
@pytest.mark.parametrize(
|
@@ -886,3 +896,77 @@ def test_AGI(test_tuple, expected_value, skip_jit):
|
|
886
896
|
test_value = calcfunctions.AGI(*test_tuple)
|
887
897
|
print('Returned from agi function: ', test_value)
|
888
898
|
assert np.allclose(test_value, expected_value)
|
899
|
+
|
900
|
+
|
901
|
+
# parameters for next test
|
902
|
+
e03150 = 0
|
903
|
+
e03210 = 0
|
904
|
+
c03260 = 0
|
905
|
+
e03270 = 0
|
906
|
+
e03300 = 0
|
907
|
+
e03400 = 0
|
908
|
+
e03500 = 0
|
909
|
+
e00800 = 0
|
910
|
+
e03220 = 0
|
911
|
+
e03230 = 0
|
912
|
+
e03240 = 0
|
913
|
+
e03290 = 0
|
914
|
+
care_deduction = 0
|
915
|
+
ALD_StudentLoan_hc = 0
|
916
|
+
ALD_SelfEmp_HealthIns_hc = 0
|
917
|
+
ALD_KEOGH_SEP_hc = 0
|
918
|
+
ALD_EarlyWithdraw_hc = 0
|
919
|
+
ALD_AlimonyPaid_hc = 0
|
920
|
+
ALD_AlimonyReceived_hc = 0
|
921
|
+
ALD_EducatorExpenses_hc = 0
|
922
|
+
ALD_HSADeduction_hc = 0
|
923
|
+
ALD_IRAContributions_hc = 0
|
924
|
+
ALD_DomesticProduction_hc = 0
|
925
|
+
ALD_Tuition_hc = 0
|
926
|
+
MARS = 1
|
927
|
+
earned = 200000
|
928
|
+
overtime_income = 13000
|
929
|
+
ALD_OvertimeIncome_hc = 0.
|
930
|
+
ALD_OvertimeIncome_c = [12500, 25000, 12500, 12500, 12500]
|
931
|
+
ALD_OvertimeIncome_ps = [150000, 300000, 150000, 150000, 150000]
|
932
|
+
ALD_OvertimeIncome_prt = 0.10
|
933
|
+
tip_income = 30000
|
934
|
+
ALD_TipIncome_hc = 0.
|
935
|
+
ALD_TipIncome_c = [25000, 25000, 25000, 25000, 25000]
|
936
|
+
ALD_TipIncome_ps = [150000, 300000, 150000, 150000, 150000]
|
937
|
+
ALD_TipIncome_prt = 0.10
|
938
|
+
c02900 = 0 # calculated in function
|
939
|
+
ALD_OvertimeIncome = 0 # calculated in function
|
940
|
+
ALD_TipIncome = 0 # calculated in function
|
941
|
+
|
942
|
+
tuple0 = (
|
943
|
+
e03150, e03210, c03260,
|
944
|
+
e03270, e03300, e03400, e03500, e00800,
|
945
|
+
e03220, e03230, e03240, e03290, care_deduction,
|
946
|
+
ALD_StudentLoan_hc, ALD_SelfEmp_HealthIns_hc, ALD_KEOGH_SEP_hc,
|
947
|
+
ALD_EarlyWithdraw_hc, ALD_AlimonyPaid_hc, ALD_AlimonyReceived_hc,
|
948
|
+
ALD_EducatorExpenses_hc, ALD_HSADeduction_hc, ALD_IRAContributions_hc,
|
949
|
+
ALD_DomesticProduction_hc, ALD_Tuition_hc,
|
950
|
+
MARS, earned,
|
951
|
+
overtime_income, ALD_OvertimeIncome_hc, ALD_OvertimeIncome_c,
|
952
|
+
ALD_OvertimeIncome_ps, ALD_OvertimeIncome_prt,
|
953
|
+
tip_income, ALD_TipIncome_hc, ALD_TipIncome_c,
|
954
|
+
ALD_TipIncome_ps, ALD_TipIncome_prt,
|
955
|
+
c02900, ALD_OvertimeIncome, ALD_TipIncome
|
956
|
+
)
|
957
|
+
ovr = 12500 - (200000 - 150000) * 0.10
|
958
|
+
tip = 25000 - (200000 - 150000) * 0.10
|
959
|
+
c02900 = 0 + ovr + tip
|
960
|
+
expected0 = (c02900, ovr, tip)
|
961
|
+
|
962
|
+
|
963
|
+
@pytest.mark.parametrize(
|
964
|
+
'test_tuple,expected_value', [(tuple0, expected0)]
|
965
|
+
)
|
966
|
+
def test_Adj(test_tuple, expected_value, skip_jit):
|
967
|
+
"""
|
968
|
+
Tests the Adj function ALD_OvertimeIncome and ALD_TipIncome code
|
969
|
+
"""
|
970
|
+
test_value = calcfunctions.Adj(*test_tuple)
|
971
|
+
print('Returned from Adj function: ', test_value)
|
972
|
+
assert np.allclose(test_value, expected_value)
|
taxcalc/tests/test_parameters.py
CHANGED
@@ -323,10 +323,17 @@ class ArrayParams(Parameters):
|
|
323
323
|
}
|
324
324
|
}
|
325
325
|
},
|
326
|
-
"
|
326
|
+
"EIC": {
|
327
327
|
"type": "str",
|
328
328
|
"validators": {
|
329
|
-
"choice": {
|
329
|
+
"choice": {
|
330
|
+
"choices": [
|
331
|
+
"0kids",
|
332
|
+
"1kid",
|
333
|
+
"2kids",
|
334
|
+
"3+kids"
|
335
|
+
]
|
336
|
+
}
|
330
337
|
}
|
331
338
|
}
|
332
339
|
},
|
@@ -344,23 +351,24 @@ class ArrayParams(Parameters):
|
|
344
351
|
}
|
345
352
|
},
|
346
353
|
"one_dim": {
|
347
|
-
"title": "One
|
354
|
+
"title": "One dimensional parameter",
|
348
355
|
"description": "",
|
349
356
|
"type": "float",
|
350
357
|
"indexed": True,
|
351
358
|
"indexable": True,
|
352
359
|
"value": [{"year": 2013, "value": 5}]
|
353
360
|
},
|
354
|
-
"
|
355
|
-
"title": "Two
|
361
|
+
"EITC_c": {
|
362
|
+
"title": "Two dimensional parameter",
|
356
363
|
"description": "",
|
357
364
|
"type": "float",
|
358
365
|
"indexed": True,
|
359
366
|
"indexable": True,
|
360
367
|
"value": [
|
361
|
-
{"year": 2013, "
|
362
|
-
{"year": 2013, "
|
363
|
-
{"year": 2013, "
|
368
|
+
{"year": 2013, "EIC": "0kids", "value": 1},
|
369
|
+
{"year": 2013, "EIC": "1kid", "value": 2},
|
370
|
+
{"year": 2013, "EIC": "2kids", "value": 3},
|
371
|
+
{"year": 2013, "EIC": "3+kids", "value": 4}
|
364
372
|
]
|
365
373
|
},
|
366
374
|
"II_brk2": {
|
@@ -454,21 +462,21 @@ def test_expand_2d_short_array():
|
|
454
462
|
"""
|
455
463
|
One of several _expand_?D tests.
|
456
464
|
"""
|
457
|
-
val = np.array([1., 2., 3.])
|
465
|
+
val = np.array([1., 2., 3., 4.])
|
458
466
|
exp2 = np.array([val * math.pow(1.02, i) for i in range(1, 5)])
|
459
|
-
exp1 = np.array([1., 2., 3.])
|
460
|
-
exp = np.zeros((5,
|
467
|
+
exp1 = np.array([1., 2., 3., 4.])
|
468
|
+
exp = np.zeros((5, 4))
|
461
469
|
exp[:1] = exp1
|
462
470
|
exp[1:] = exp2
|
463
471
|
|
464
472
|
params = ArrayParams(array_first=False, label_to_extend=None)
|
465
473
|
years = [2013, 2014, 2015, 2016, 2017]
|
466
474
|
params.extend(
|
467
|
-
params=["
|
475
|
+
params=["EITC_c"],
|
468
476
|
label="year",
|
469
477
|
label_values=years,
|
470
478
|
)
|
471
|
-
res = params.to_array("
|
479
|
+
res = params.to_array("EITC_c", year=years)
|
472
480
|
assert np.allclose(exp, res, atol=0.01, rtol=0.0)
|
473
481
|
|
474
482
|
|
@@ -476,8 +484,8 @@ def test_expand_2d_variable_rates():
|
|
476
484
|
"""
|
477
485
|
One of several _expand_?D tests.
|
478
486
|
"""
|
479
|
-
ary = np.array([[1., 2., 3.]])
|
480
|
-
cur = np.array([1., 2., 3.])
|
487
|
+
ary = np.array([[1., 2., 3., 4.]])
|
488
|
+
cur = np.array([1., 2., 3., 4.])
|
481
489
|
irates = [0.02, 0.02, 0.02, 0.03, 0.035]
|
482
490
|
exp2 = []
|
483
491
|
for i in range(0, 4):
|
@@ -485,16 +493,16 @@ def test_expand_2d_variable_rates():
|
|
485
493
|
cur = np.array(cur * (1.0 + irates[idx]))
|
486
494
|
print('cur is ', cur)
|
487
495
|
exp2.append(cur)
|
488
|
-
exp1 = np.array([1., 2., 3.])
|
489
|
-
exp = np.zeros((5,
|
496
|
+
exp1 = np.array([1., 2., 3., 4.])
|
497
|
+
exp = np.zeros((5, 4))
|
490
498
|
exp[:1] = exp1
|
491
499
|
exp[1:] = exp2
|
492
500
|
|
493
501
|
params = ArrayParams(array_first=False, label_to_extend=None)
|
494
502
|
params._inflation_rates = irates
|
495
503
|
years = [2013, 2014, 2015, 2016, 2017]
|
496
|
-
params.extend(params=["
|
497
|
-
res = params.to_array("
|
504
|
+
params.extend(params=["EITC_c"], label="year", label_values=years)
|
505
|
+
res = params.to_array("EITC_c", year=years)
|
498
506
|
assert np.allclose(exp, res, atol=0.01, rtol=0.0)
|
499
507
|
|
500
508
|
|
taxcalc/tests/test_policy.py
CHANGED
taxcalc/tests/test_reforms.py
CHANGED
@@ -48,7 +48,7 @@ def test_2017_law_reform(tests_path):
|
|
48
48
|
'EITC_ps_MarriedJ': {'relation': '>', 'value': 5680},
|
49
49
|
'EITC_InvestIncome_c': {'relation': '>', 'value': 3500},
|
50
50
|
# ... parameters affected by TCJA and that are not indexed
|
51
|
-
'
|
51
|
+
'ID_Charity_crt_all': {'relation': '=', 'value': 0.5},
|
52
52
|
'II_rt3': {'relation': '=', 'value': 0.25},
|
53
53
|
# ... parameters affected by TCJA and that are indexed
|
54
54
|
'II_brk3': {'relation': '>', 'value': 91900},
|
@@ -1,24 +1,24 @@
|
|
1
|
-
taxcalc/__init__.py,sha256=
|
2
|
-
taxcalc/calcfunctions.py,sha256=
|
3
|
-
taxcalc/calculator.py,sha256=
|
1
|
+
taxcalc/__init__.py,sha256=_XaOmgCRkA4r5GDj-jiLRil_ejrYErRp_tYzYCVe41M,536
|
2
|
+
taxcalc/calcfunctions.py,sha256=reffSY1jtcO1M12GnLxMfyGQt5jRi_SBN9tGP0OuwdM,135350
|
3
|
+
taxcalc/calculator.py,sha256=yySfH1FLXgRrjxsI5aLsZNwqWG5ahF33z3dVeLNTe_Y,64135
|
4
4
|
taxcalc/conftest.py,sha256=nO4J7qu1sTHgjqrzhpRMvfMJUrNm6GP_IsSuuDt_MeQ,141
|
5
|
-
taxcalc/consumption.json,sha256=
|
5
|
+
taxcalc/consumption.json,sha256=FbGpsLP0W02sYc7o8N-BVz8Xw8hfk_gCr5MtHtgEBQQ,7615
|
6
6
|
taxcalc/consumption.py,sha256=pkXhFGpFqu7hW62KaTctfRSzR-pXzMB1ai8XCQRAgXk,3480
|
7
7
|
taxcalc/cps.csv.gz,sha256=SS6tSduU_Eu0EJwzpslnmqMsQQQucVMzzITfH-SeV40,9851074
|
8
8
|
taxcalc/cps_weights.csv.gz,sha256=-k31Swqss0WEGA3Zo8AoReLR_C7BRUk4PDmfh-oVVyo,13657706
|
9
9
|
taxcalc/data.py,sha256=QRyLsq250OsxUIjsuCFtREJsVyEOGaivwcON3teivMI,11698
|
10
10
|
taxcalc/decorators.py,sha256=EwyVH4fSDf8x_BHzccf4-DRopo6KMVidYSYZFy_dJy0,11307
|
11
|
-
taxcalc/growdiff.json,sha256=
|
11
|
+
taxcalc/growdiff.json,sha256=GCMuFsHv5qP2HBzqiev3CbFJy0BXnhM2ShaPT2QuNTs,14601
|
12
12
|
taxcalc/growdiff.py,sha256=Q3St-KPIUN2I_l1S0jwN0yr8O4LuzkNIU-_qbXTkrZw,2977
|
13
13
|
taxcalc/growfactors.csv,sha256=URIGSKApCY4McvdILkCaIm8EhCGEME2Du-ef5Q9c0uE,5134
|
14
14
|
taxcalc/growfactors.py,sha256=dW71yYKhFDbFtGpBT-kZBqY4MV7IswKcNI3_c-X_Nfg,6525
|
15
|
-
taxcalc/parameters.py,sha256=
|
16
|
-
taxcalc/policy.py,sha256=
|
17
|
-
taxcalc/policy_current_law.json,sha256=
|
15
|
+
taxcalc/parameters.py,sha256=ObwQMBlPjq3tyNwiR94Nj0zouIVsNaHIho-OQK1RNKg,35966
|
16
|
+
taxcalc/policy.py,sha256=SBOUMdpsbriN81sh17-mYpwCk-snjjfFhYAWucmDUQ8,9081
|
17
|
+
taxcalc/policy_current_law.json,sha256=ksGNrGlI0EfRjh5cOAQISwgIaW7JbtnRriu6M8zKitw,613750
|
18
18
|
taxcalc/puf_ratios.csv,sha256=USMM79UEX8PnSKY_LYLxvACER_9NHyj4ipNEk2iyykQ,3580
|
19
19
|
taxcalc/puf_weights.csv.gz,sha256=35iZhzFO0dHUI2zf4_liyk60E-3Sgr_AbxszGxw7LfM,13522484
|
20
|
-
taxcalc/records.py,sha256=
|
21
|
-
taxcalc/records_variables.json,sha256=
|
20
|
+
taxcalc/records.py,sha256=zz-q7rNFUBqDLaDYjcScfwf22zzSw-XEew00HGWB0Ho,18397
|
21
|
+
taxcalc/records_variables.json,sha256=JQjaXOS-QyJLDMl_3K4WyCNyRmJpxho3vC_gik5g04Y,42681
|
22
22
|
taxcalc/taxcalcio.py,sha256=_ylnC-dZUpDFn79F8pjkZEq-wJhPCQA7Ig9SRLyhrUA,37691
|
23
23
|
taxcalc/utils.py,sha256=Wsvni2UP7WgnByN4bRIiLGgamDFwfQoexiy420o6ewY,63666
|
24
24
|
taxcalc/utilsprvt.py,sha256=iIyWp9-N3_XWjQj2jV2CWnJy7vrNlKB2_vIMwYjgbWY,1323
|
@@ -27,13 +27,13 @@ taxcalc/assumptions/README.md,sha256=Ww55r2zH1neoRSl_MawrPmX-ugaztIZ7_ALrquuatdQ
|
|
27
27
|
taxcalc/assumptions/economic_assumptions_template.json,sha256=utMk38GwSQFrkOAtRrDVhMQLpfaZH3JmtTznKX7IouM,2610
|
28
28
|
taxcalc/cli/__init__.py,sha256=cyZ0tdx41j_vV_B6GAkqJmNKKG-B0wUC0ThC75lJlk4,104
|
29
29
|
taxcalc/cli/tc.py,sha256=hGkP-XHkvx0MoFdHf-BjUnKqAxQBRtk8Vv4uqtIGuRY,18760
|
30
|
-
taxcalc/reforms/2017_law.json,sha256=
|
30
|
+
taxcalc/reforms/2017_law.json,sha256=k9dzXJCnX4eu1EfI0uVokEwbZijaBPG0EAFBcObCGGE,5187
|
31
31
|
taxcalc/reforms/2017_law.out.csv,sha256=nnNKXqY2kof8HC1nnU8srPsvNNepi6ISXQ9OJpQnT7M,473
|
32
|
-
taxcalc/reforms/ARPA.json,sha256=
|
32
|
+
taxcalc/reforms/ARPA.json,sha256=6oGn3pZ4clAhjFHvqpmm7sXcm407Ea_8mjJchSscKpc,3203
|
33
33
|
taxcalc/reforms/ARPA.out.csv,sha256=qSUdI0LoQFGG6h24eT-249pLEqmxmt7TvLrv1HX_y3Y,475
|
34
34
|
taxcalc/reforms/BrownKhanna.json,sha256=yydcFsixV28p1I5uB0VgwJJ5GyGL0JU8K-IUwrPHlzs,964
|
35
35
|
taxcalc/reforms/BrownKhanna.out.csv,sha256=D2pPxtH5RyMnf8wQad3R2W1Uh4ZLXa7MAQ_dQccMkPA,475
|
36
|
-
taxcalc/reforms/CARES.json,sha256=
|
36
|
+
taxcalc/reforms/CARES.json,sha256=lTAt0waGCgyUZ3ayrBOoiifqJYVgf19JHdqGusg400o,1977
|
37
37
|
taxcalc/reforms/CARES.out.csv,sha256=4DkEQm6l3BKsRz9JW80qyqiU4AM9ocze2aInfqVDKCM,476
|
38
38
|
taxcalc/reforms/ConsolidatedAppropriationsAct2021.json,sha256=3lWa9vNU3wneNQMI4aSSDAIC3grQ5qm6kHAmIBHSvBI,528
|
39
39
|
taxcalc/reforms/ConsolidatedAppropriationsAct2021.out.csv,sha256=qSUdI0LoQFGG6h24eT-249pLEqmxmt7TvLrv1HX_y3Y,475
|
@@ -45,7 +45,7 @@ taxcalc/reforms/Renacci.json,sha256=U6rmbe1-IANG_H69xET5G8-v76ErbbHcm1JdRzAO8y4,
|
|
45
45
|
taxcalc/reforms/Renacci.out.csv,sha256=dBrDH-Sc5EYvsYzotJZShRxd1EbhdI3enOUqaAsAyuI,472
|
46
46
|
taxcalc/reforms/SandersDeFazio.json,sha256=BMSfl96ERD4SGd_PDMQkiDV5s4iD7Mh1BjS7uKxVD18,710
|
47
47
|
taxcalc/reforms/SandersDeFazio.out.csv,sha256=gIgcP6deUqtq-r9p6Lirg_hxUFDtFPJmKZWGzLrnIjU,475
|
48
|
-
taxcalc/reforms/TCJA.json,sha256=
|
48
|
+
taxcalc/reforms/TCJA.json,sha256=9prAFLdzzqcRr0cNKy7PjgUNQtKKxBJWARrcD5h9I0I,6131
|
49
49
|
taxcalc/reforms/TCJA.md,sha256=Uy5DtvQ9IiQKmWS-ISX_Dup3MwZNpBgS1Y78Rn3butY,2159
|
50
50
|
taxcalc/reforms/TCJA.out.csv,sha256=fiDRHHku0MQptfDXTK9KhnSF87_446bRFfebP_VBLZA,474
|
51
51
|
taxcalc/reforms/Trump2016.json,sha256=v-pthOhjvsczMQACMU1vh3ZYXqWJhF-itkeDDFVyBjI,2250
|
@@ -54,7 +54,7 @@ taxcalc/reforms/Trump2017.json,sha256=sCaQkvFY66VPQa6GUzKbrsH5R3BxOcBwMuHE9Ypv0H
|
|
54
54
|
taxcalc/reforms/Trump2017.out.csv,sha256=By1quzZONFLQGK5E76mbNNFuORZ8aCGHpD1BR5iwTS8,474
|
55
55
|
taxcalc/reforms/cases.csv,sha256=JQ0LSnNeyl6xSgW5mimGUJMr7xwCWTOpiOpfwx2ETsg,570
|
56
56
|
taxcalc/reforms/clp.out.csv,sha256=qSUdI0LoQFGG6h24eT-249pLEqmxmt7TvLrv1HX_y3Y,475
|
57
|
-
taxcalc/reforms/ext.json,sha256=
|
57
|
+
taxcalc/reforms/ext.json,sha256=pD8bTjtb7NuYVrOd1IT8pqscKRMX2_5hkrTOQceSiVw,2309
|
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=DKGsyNWqo-ABUnjFjEGMpqqhmT2WDRGuU6sKTgH_obc,476
|
@@ -76,16 +76,16 @@ taxcalc/tests/benefits_expect.csv,sha256=CFpMpg8a-5iNVSRnmCnl9dncwXx6eGn-KSnTJ2G
|
|
76
76
|
taxcalc/tests/cmpi_cps_expect.txt,sha256=NCyG3XhgnV8qJe9TaF9l-9yUuwNfANNDvFn1HcSfZ1c,6262
|
77
77
|
taxcalc/tests/cmpi_puf_expect.txt,sha256=dtHBPDY23qttxjQsPpxhLYoUId1tnPZ4uNHx49NlZ0s,6264
|
78
78
|
taxcalc/tests/conftest.py,sha256=jziEwugOsHJT2YohMxLAR0MZjjaynZJY7flj4lmBn8Q,5164
|
79
|
-
taxcalc/tests/cpscsv_agg_expect.csv,sha256=
|
80
|
-
taxcalc/tests/puf_var_correl_coeffs_2016.csv,sha256=
|
81
|
-
taxcalc/tests/puf_var_wght_means_by_year.csv,sha256=
|
82
|
-
taxcalc/tests/pufcsv_agg_expect.csv,sha256=
|
83
|
-
taxcalc/tests/pufcsv_mtr_expect.txt,sha256=
|
84
|
-
taxcalc/tests/reforms.json,sha256=
|
79
|
+
taxcalc/tests/cpscsv_agg_expect.csv,sha256=kMagBzEhtig-z6EC3xLavQTtNebHDy1ppmCQOu12CDM,2089
|
80
|
+
taxcalc/tests/puf_var_correl_coeffs_2016.csv,sha256=o6Ly5au_J1npbIFQrqP2mwbI6Zc8yJrAOk8fzVRvreU,57314
|
81
|
+
taxcalc/tests/puf_var_wght_means_by_year.csv,sha256=Xu-pqCTbStyzNu2U4KVbgG-SRe9RLtVqJiwdjCDv1_E,20049
|
82
|
+
taxcalc/tests/pufcsv_agg_expect.csv,sha256=ZgqwtNL2gxTz6Qar2xiIbem5dvDTu4BZthtXeWkdmLc,2117
|
83
|
+
taxcalc/tests/pufcsv_mtr_expect.txt,sha256=MGOK4bV5ACNPtgfhj7cNOcZSkRcEREuZCT5dzju-yC4,4265
|
84
|
+
taxcalc/tests/reforms.json,sha256=JOzgOi3DGAGXLslWZtxWPe81UfvDR73OPe1t-MPAXeE,17097
|
85
85
|
taxcalc/tests/reforms_expect.csv,sha256=DJRO1LF8n6CX5viq3-uufqBF19hlVcqSq0T3EYgQQas,1363
|
86
86
|
taxcalc/tests/test_4package.py,sha256=1qhmDS3bdfNHNgz4pggaE6LduT3KKUtOsdtqP3QSIYQ,3601
|
87
87
|
taxcalc/tests/test_benefits.py,sha256=oaui5mO0TuW8Ht-uxvUCBL5zM3iTENq3Whyf_gEpY1U,3392
|
88
|
-
taxcalc/tests/test_calcfunctions.py,sha256=
|
88
|
+
taxcalc/tests/test_calcfunctions.py,sha256=7uD1EW48TgsEE6pNHIxkXNi9gvZR7dbT7il6jAqgy9s,34653
|
89
89
|
taxcalc/tests/test_calculator.py,sha256=JTbaQ9rndIB7WylQE4inLvd7CazH4Vdnb0h7IRDtN3Q,33653
|
90
90
|
taxcalc/tests/test_compare.py,sha256=WglH4ZJOEQnav_mAmnGjpb7dooXcQsB1m04hgQeoBUQ,10873
|
91
91
|
taxcalc/tests/test_compatible_data.py,sha256=MP-DZXrBJ_2ftuxHchl3EGOhPnP5pnnrSQOM9POSx0c,13224
|
@@ -95,12 +95,12 @@ taxcalc/tests/test_data.py,sha256=Zwuf23WeaF0N53X0eo3MlnkO2Pn4qqgGNUZPpD8FETc,44
|
|
95
95
|
taxcalc/tests/test_decorators.py,sha256=F31pt1S7jIgkgV62xMC-poWRzG7fzYVOJes9tOoCF40,10232
|
96
96
|
taxcalc/tests/test_growdiff.py,sha256=vXZTgPJTUi25mZrfmTPErytSC69Bs_36ydrQmWxgm9g,3420
|
97
97
|
taxcalc/tests/test_growfactors.py,sha256=L-DQMR2fh_rOQa3Lx1CDVnB2Q73zXUfTYYVunt0heto,2796
|
98
|
-
taxcalc/tests/test_parameters.py,sha256=
|
99
|
-
taxcalc/tests/test_policy.py,sha256=
|
98
|
+
taxcalc/tests/test_parameters.py,sha256=G5mTb2ZQksVGEv8MoO2Fwt12ZJYzk7_-yGT-A-fhBkM,20420
|
99
|
+
taxcalc/tests/test_policy.py,sha256=B0Zple7HXAfi0ZhIyJhst05WB5DH60qoHyaIRR_Ar0Q,55547
|
100
100
|
taxcalc/tests/test_puf_var_stats.py,sha256=TG-sQtOkR6cBOw0am7MUsMSwjPxVdkvt0Xov342oii8,7786
|
101
101
|
taxcalc/tests/test_pufcsv.py,sha256=rxPaxA-SCAwaLy3jSnplvy_3dH8MQ-UKDSJnYZNhjzo,14434
|
102
102
|
taxcalc/tests/test_records.py,sha256=ncswnbCY7vZgJ_h6xwql4oFw-jZG2gWOMWvEJC2_jdc,8827
|
103
|
-
taxcalc/tests/test_reforms.py,sha256=
|
103
|
+
taxcalc/tests/test_reforms.py,sha256=j7MhV4zQpOYvVCsvxxviWIv8TUt8Pz4xEuKL-uQS0ak,16031
|
104
104
|
taxcalc/tests/test_responses.py,sha256=2CkVVdaDNCSALMoUcGgweRlS2tfsK3kXogHtDkZMqJU,1663
|
105
105
|
taxcalc/tests/test_taxcalcio.py,sha256=4WUqtC9OsTczZqsa5jTaXfOQ5YNJRTotg5I6l9859KA,23821
|
106
106
|
taxcalc/tests/test_utils.py,sha256=hqBVxddwcSP_6dEBccb-FlPMDm68EENzTtFaVVZ8exs,29403
|
@@ -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-5.
|
135
|
-
taxcalc-5.
|
136
|
-
taxcalc-5.
|
137
|
-
taxcalc-5.
|
138
|
-
taxcalc-5.
|
139
|
-
taxcalc-5.
|
134
|
+
taxcalc-5.1.0.dist-info/licenses/LICENSE,sha256=m5epLdB-_NXiY7NsEDgcHP4jDtJ4vOlRf5S3Jb-jraY,1299
|
135
|
+
taxcalc-5.1.0.dist-info/METADATA,sha256=D9snOqfo7azw_tcUtgHLsrvwKGCOhqZ5CRT5gdrq8Xw,3677
|
136
|
+
taxcalc-5.1.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
137
|
+
taxcalc-5.1.0.dist-info/entry_points.txt,sha256=a3ZE1piRv683p27fOLdWZvVJXESkoslTOp5iXV7uVco,50
|
138
|
+
taxcalc-5.1.0.dist-info/top_level.txt,sha256=Wh8wTDHkA_cm4dn8IoUCviDyGgVQqwEQKPJnl8z6d4c,8
|
139
|
+
taxcalc-5.1.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|