Skip to content

Commit d8c2fee

Browse files
Fix bug in loading multi-year datasets (#1257)
* Rename dataset * Add multi-year dataset (working in sim load) * Add core uprating functionality * Adjust tests * Add rent uprating * Downgrade microdf * 0.4.5 * 0.4.4? * Add versioning * UKMultiYearDataset fails when downloading from HuggingFace Fixes #1256 * Update tests
1 parent dbb0d86 commit d8c2fee

4 files changed

Lines changed: 20 additions & 13 deletions

File tree

changelog_entry.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
- bump: patch
2+
changes:
3+
fixed:
4+
- Bug in handling downloads of UKMultiYearDataset from HuggingFace.

policyengine_uk/data/dataset_schema.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -213,12 +213,11 @@ def validate_file_path(file_path: str):
213213

214214
# Check if the file contains datasets for multiple years
215215
with h5py.File(file_path, "r") as f:
216-
if not any(key.startswith("/person/") for key in f.keys()):
217-
raise ValueError("No person dataset found in the file.")
218-
if not any(key.startswith("/benunit/") for key in f.keys()):
219-
raise ValueError("No benunit dataset found in the file.")
220-
if not any(key.startswith("/household/") for key in f.keys()):
221-
raise ValueError("No household dataset found in the file.")
216+
for required_dataset in ["person", "benunit", "household"]:
217+
if not any(f"{required_dataset}" in key for key in f.keys()):
218+
raise ValueError(
219+
f"Dataset '{required_dataset}' not found in the file: {file_path}"
220+
)
222221

223222
def load(self):
224223
data = {}

policyengine_uk/system.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -202,9 +202,13 @@ def __init__(self, *args, dataset=ENHANCED_FRS, **kwargs):
202202
dataset = UKMultiYearDataset(
203203
file_path=dataset_file_path
204204
)
205-
except:
205+
except Exception as e:
206206
pass
207-
dataset = Dataset.from_file(dataset_file_path)
207+
208+
if not isinstance(
209+
dataset, (UKSingleYearDataset, UKMultiYearDataset)
210+
):
211+
dataset = Dataset.from_file(dataset_file_path)
208212

209213
super().__init__(*args, dataset=dataset, **kwargs)
210214

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
reforms:
22
- name: Raise basic rate by 1pp
3-
expected_impact: 7.6
3+
expected_impact: 7.5
44
parameters:
55
gov.hmrc.income_tax.rates.uk[0].rate: 0.21
66
- name: Raise higher rate by 1pp
7-
expected_impact: 4.8
7+
expected_impact: 4.7
88
parameters:
99
gov.hmrc.income_tax.rates.uk[1].rate: 0.42
1010
- name: Raise personal allowance by ~800GBP/year
@@ -16,18 +16,18 @@ reforms:
1616
parameters:
1717
gov.hmrc.child_benefit.amount.additional: 25
1818
- name: Reduce Universal Credit taper rate to 20%
19-
expected_impact: -36.5
19+
expected_impact: -36.4
2020
parameters:
2121
gov.dwp.universal_credit.means_test.reduction_rate: 0.2
2222
- name: Raise Class 1 main employee NICs rate to 10%
2323
expected_impact: 12.3
2424
parameters:
2525
gov.hmrc.national_insurance.class_1.rates.employee.main: 0.1
2626
- name: Raise VAT standard rate by 2pp
27-
expected_impact: 18.8
27+
expected_impact: 18.9
2828
parameters:
2929
gov.hmrc.vat.standard_rate: 0.22
3030
- name: Raise additional rate by 3pp
31-
expected_impact: 5.5
31+
expected_impact: 5.3
3232
parameters:
3333
gov.hmrc.income_tax.rates.uk[2].rate: 0.48

0 commit comments

Comments
 (0)