Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions changelog.d/update-uk-fuel-duty-bundle.changed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Update the bundled UK release to calibrated fuel-duty litres.
4 changes: 2 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ graph = [
]
uk = [
"policyengine_core>=3.26.1",
"policyengine-uk==2.88.14",
"policyengine-uk==2.88.20",
]
us = [
"policyengine_core==3.26.1",
Expand All @@ -61,7 +61,7 @@ dev = [
"pytest-asyncio>=0.26.0",
"ruff>=0.9.0",
"policyengine_core==3.26.1",
"policyengine-uk==2.88.14",
"policyengine-uk==2.88.20",
"policyengine-us==1.700.0",
"towncrier>=24.8.0",
"mypy>=1.11.0",
Expand Down
35 changes: 20 additions & 15 deletions src/policyengine/data/release_manifests/uk.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,39 +5,44 @@
"policyengine_version": "4.9.1",
"model_package": {
"name": "policyengine-uk",
"version": "2.88.14",
"sha256": "ed10005ba7d0c973c0966ebbf7672853fb3caaa0456b8bf485fb13f8c323d975",
"wheel_url": "https://files.pythonhosted.org/packages/a3/fc/276fb639a46bda35523329d8968bcc4089fde9e97fab82722c0ec853c6cc/policyengine_uk-2.88.14-py3-none-any.whl"
"version": "2.88.20",
"sha256": "8c3dacb868f3fb18296b8ef2475edaf543f57b8056d24a58bca59b108651f272",
"wheel_url": "https://files.pythonhosted.org/packages/32/f0/c0e7dbcc049501dc968da0a67de4976f305228328f96fe0ad08c65301c4f/policyengine_uk-2.88.20-py3-none-any.whl"
},
"data_package": {
"name": "policyengine-uk-data",
"version": "1.55.5",
"repo_id": "policyengine/policyengine-uk-data-private"
"version": "1.55.10",
"repo_id": "policyengine/policyengine-uk-data-private",
"release_manifest_path": "release_manifest.json",
"release_manifest_revision": "655dd07e4bb9c777b00dac044949611f1feb824f"
},
"certified_data_artifact": {
"data_package": {
"name": "policyengine-uk-data",
"version": "1.55.5"
"version": "1.55.10"
},
"build_id": "policyengine-uk-data-1.55.5",
"build_id": "policyengine-uk-data-1.55.10",
"dataset": "enhanced_frs_2023_24",
"uri": "hf://policyengine/policyengine-uk-data-private/enhanced_frs_2023_24.h5@1.55.5"
"uri": "hf://policyengine/policyengine-uk-data-private/enhanced_frs_2023_24.h5@655dd07e4bb9c777b00dac044949611f1feb824f",
"sha256": "584ae33d80ca0431254610a3f8254d132da73477d31966d6446282861ecae50d"
},
"certification": {
"compatibility_basis": "matching_data_build_fingerprint",
"data_build_id": "policyengine-uk-data-1.55.5",
"built_with_model_version": "2.88.14",
"certified_for_model_version": "2.88.14",
"data_build_fingerprint": "sha256:dff5c5bb976ce254fa965ecfce6a0d84859fe1629a714ae28a79b3075522a0ae",
"compatibility_basis": "exact_build_model_version",
"data_build_id": "policyengine-uk-data-1.55.10",
"built_with_model_version": "2.88.20",
"certified_for_model_version": "2.88.20",
"data_build_fingerprint": "sha256:77f149725a36055fd89961855230401852b0712d301c6e26d6d16565c6b23809",
"certified_by": "policyengine.py bundled manifest"
},
"default_dataset": "enhanced_frs_2023_24",
"datasets": {
"frs_2023_24": {
"path": "frs_2023_24.h5"
"path": "frs_2023_24.h5",
"sha256": "df26d4d7af9d164aa2d064181b39290292d2f62bb26fee6126fc095fc06da292"
},
"enhanced_frs_2023_24": {
"path": "enhanced_frs_2023_24.h5"
"path": "enhanced_frs_2023_24.h5",
"sha256": "584ae33d80ca0431254610a3f8254d132da73477d31966d6446282861ecae50d"
}
},
"region_datasets": {
Expand Down
41 changes: 19 additions & 22 deletions src/policyengine/data/release_manifests/uk.trace.tro.jsonld
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
"schema:name": "PolicyEngine",
"schema:url": "https://policyengine.org"
},
"schema:dateCreated": "2026-05-09T07:14:50.156352Z",
"schema:dateCreated": "2026-05-20T20:16:50.641086Z",
"schema:description": "TRACE TRO for certified runtime bundle uk-4.9.1 covering the bundle manifest, the certified dataset artifact, the country model wheel, and the country data release manifest when it is available.",
"schema:name": "policyengine uk certified bundle TRO",
"trov:createdWith": {
Expand Down Expand Up @@ -45,23 +45,23 @@
"trov:hasArtifact": {
"@id": "composition/1/artifact/data_release_manifest"
},
"trov:hasLocation": "https://huggingface.co/policyengine/policyengine-uk-data-private/resolve/1.55.5/release_manifest.json"
"trov:hasLocation": "https://huggingface.co/policyengine/policyengine-uk-data-private/resolve/655dd07e4bb9c777b00dac044949611f1feb824f/release_manifest.json"
},
{
"@id": "arrangement/1/location/dataset",
"@type": "trov:ArtifactLocation",
"trov:hasArtifact": {
"@id": "composition/1/artifact/dataset"
},
"trov:hasLocation": "https://huggingface.co/policyengine/policyengine-uk-data-private/resolve/1.55.5/enhanced_frs_2023_24.h5"
"trov:hasLocation": "https://huggingface.co/policyengine/policyengine-uk-data-private/resolve/655dd07e4bb9c777b00dac044949611f1feb824f/enhanced_frs_2023_24.h5"
},
{
"@id": "arrangement/1/location/model_wheel",
"@type": "trov:ArtifactLocation",
"trov:hasArtifact": {
"@id": "composition/1/artifact/model_wheel"
},
"trov:hasLocation": "https://files.pythonhosted.org/packages/a3/fc/276fb639a46bda35523329d8968bcc4089fde9e97fab82722c0ec853c6cc/policyengine_uk-2.88.14-py3-none-any.whl"
"trov:hasLocation": "https://files.pythonhosted.org/packages/32/f0/c0e7dbcc049501dc968da0a67de4976f305228328f96fe0ad08c65301c4f/policyengine_uk-2.88.20-py3-none-any.whl"
}
]
}
Expand All @@ -75,54 +75,51 @@
"@type": "trov:ResearchArtifact",
"schema:name": "policyengine.py bundle manifest for uk",
"trov:mimeType": "application/json",
"trov:sha256": "908c979b898aebd52b5017c1f1e75c4b45e4ab5673e2cb97a1dd666933013a48"
"trov:sha256": "fa72ac10d69302da0cf5ca55466badffc3c82f020a71c20daa4e2039ff37f4c2"
},
{
"@id": "composition/1/artifact/data_release_manifest",
"@type": "trov:ResearchArtifact",
"schema:name": "policyengine-uk-data release manifest 1.55.5",
"schema:name": "policyengine-uk-data release manifest 1.55.10",
"trov:mimeType": "application/json",
"trov:sha256": "31de03e0bedc1ad29d5809fb16ca925f26485c86fc1b14bf911636ebb83863a4"
"trov:sha256": "9f41a0f14ca93d20e61d33419173c3fedc1c3ba295b6ca67dd3197a41643d179"
},
{
"@id": "composition/1/artifact/dataset",
"@type": "trov:ResearchArtifact",
"schema:name": "enhanced_frs_2023_24",
"trov:mimeType": "application/x-hdf5",
"trov:sha256": "1e95dafde7997a24dac1abc122f8e2ebbc8c2d7d36bab8361e628a93401559ce"
"trov:sha256": "584ae33d80ca0431254610a3f8254d132da73477d31966d6446282861ecae50d"
},
{
"@id": "composition/1/artifact/model_wheel",
"@type": "trov:ResearchArtifact",
"schema:name": "policyengine-uk==2.88.14 wheel",
"schema:name": "policyengine-uk==2.88.20 wheel",
"trov:mimeType": "application/zip",
"trov:sha256": "ed10005ba7d0c973c0966ebbf7672853fb3caaa0456b8bf485fb13f8c323d975"
"trov:sha256": "8c3dacb868f3fb18296b8ef2475edaf543f57b8056d24a58bca59b108651f272"
}
],
"trov:hasFingerprint": {
"@id": "composition/1/fingerprint",
"@type": "trov:CompositionFingerprint",
"trov:sha256": "963655c8d38e59b8e71529ba4df0341ecdc9e620812fe86bddf555388311834c"
"trov:sha256": "fd1edf28ab87307b0db6aa3be98d3e72fba0ac9fff5372c6f9a17c7b0264e8be"
}
},
"trov:hasPerformance": {
"@id": "trp/1",
"@type": "trov:TransparentResearchPerformance",
"pe:builtWithModelVersion": "2.88.14",
"pe:builtWithModelVersion": "2.88.20",
"pe:certifiedBy": "policyengine.py bundled manifest",
"pe:certifiedForModelVersion": "2.88.14",
"pe:ciGitRef": "refs/heads/main",
"pe:ciGitSha": "4319e7143d99597ea5f22a14bdc5637196b2ddfb",
"pe:ciRunUrl": "https://github.com/PolicyEngine/policyengine.py/actions/runs/26188268595",
"pe:compatibilityBasis": "matching_data_build_fingerprint",
"pe:dataBuildFingerprint": "sha256:dff5c5bb976ce254fa965ecfce6a0d84859fe1629a714ae28a79b3075522a0ae",
"pe:dataBuildId": "policyengine-uk-data-1.55.5",
"pe:emittedIn": "github-actions",
"rdfs:comment": "Certification of build policyengine-uk-data-1.55.5 for policyengine-uk 2.88.14.",
"pe:certifiedForModelVersion": "2.88.20",
"pe:compatibilityBasis": "exact_build_model_version",
"pe:dataBuildFingerprint": "sha256:77f149725a36055fd89961855230401852b0712d301c6e26d6d16565c6b23809",
"pe:dataBuildId": "policyengine-uk-data-1.55.10",
"pe:emittedIn": "local",
"rdfs:comment": "Certification of build policyengine-uk-data-1.55.10 for policyengine-uk 2.88.20.",
"trov:accessedArrangement": {
"@id": "arrangement/1"
},
"trov:startedAtTime": "2026-05-09T07:14:50.156352Z",
"trov:startedAtTime": "2026-05-20T20:16:50.641086Z",
"trov:wasConductedBy": {
"@id": "trs"
}
Expand Down
6 changes: 3 additions & 3 deletions tests/test_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,12 @@ def test_has_release_manifest_metadata(self):
assert uk_latest.release_manifest is not None
assert uk_latest.release_manifest.country_id == "uk"
assert uk_latest.model_package.name == "policyengine-uk"
assert uk_latest.model_package.version == "2.88.14"
assert uk_latest.model_package.version == "2.88.20"
assert uk_latest.data_package.name == "policyengine-uk-data"
assert uk_latest.data_package.version == "1.55.5"
assert uk_latest.data_package.version == "1.55.10"
assert (
uk_latest.default_dataset_uri
== "hf://policyengine/policyengine-uk-data-private/enhanced_frs_2023_24.h5@1.55.5"
== "hf://policyengine/policyengine-uk-data-private/enhanced_frs_2023_24.h5@655dd07e4bb9c777b00dac044949611f1feb824f"
)

def test_has_hundreds_of_parameters(self):
Expand Down
28 changes: 14 additions & 14 deletions tests/test_release_manifests.py
Original file line number Diff line number Diff line change
Expand Up @@ -109,24 +109,24 @@ def test__given_uk_manifest__then_has_pinned_model_and_data_packages(self):
assert manifest.country_id == "uk"
assert manifest.policyengine_version == POLICYENGINE_VERSION
assert manifest.model_package.name == "policyengine-uk"
assert manifest.model_package.version == "2.88.14"
assert manifest.model_package.version == "2.88.20"
assert manifest.data_package.name == "policyengine-uk-data"
assert manifest.data_package.version == "1.55.5"
assert manifest.data_package.version == "1.55.10"
assert (
manifest.data_package.repo_id == "policyengine/policyengine-uk-data-private"
)
assert manifest.certified_data_artifact is not None
assert (
manifest.certified_data_artifact.build_id == "policyengine-uk-data-1.55.5"
manifest.certified_data_artifact.build_id == "policyengine-uk-data-1.55.10"
)
assert manifest.certified_data_artifact.dataset == "enhanced_frs_2023_24"
assert manifest.certification is not None
assert manifest.certification.data_build_id == "policyengine-uk-data-1.55.5"
assert manifest.certification.built_with_model_version == "2.88.14"
assert manifest.certification.certified_for_model_version == "2.88.14"
assert manifest.certification.data_build_id == "policyengine-uk-data-1.55.10"
assert manifest.certification.built_with_model_version == "2.88.20"
assert manifest.certification.certified_for_model_version == "2.88.20"
assert (
manifest.certification.data_build_fingerprint
== "sha256:dff5c5bb976ce254fa965ecfce6a0d84859fe1629a714ae28a79b3075522a0ae"
== "sha256:77f149725a36055fd89961855230401852b0712d301c6e26d6d16565c6b23809"
)

def test__given_us_dataset_name__then_resolves_to_versioned_hf_url(self):
Expand Down Expand Up @@ -157,7 +157,7 @@ def test__given_uk_dataset_name__then_resolves_to_versioned_hf_url(self):

assert (
resolved
== "hf://policyengine/policyengine-uk-data-private/enhanced_frs_2023_24.h5@1.55.5"
== "hf://policyengine/policyengine-uk-data-private/enhanced_frs_2023_24.h5@655dd07e4bb9c777b00dac044949611f1feb824f"
)

def test__given_explicit_url__then_resolution_is_noop(self):
Expand Down Expand Up @@ -612,9 +612,9 @@ def test__given_manifest_certification__then_release_bundle_exposes_it(self):
assert bundle["bundle_id"] == f"uk-{POLICYENGINE_VERSION}"
assert bundle["default_dataset"] == "enhanced_frs_2023_24"
assert bundle["default_dataset_uri"] == manifest.default_dataset_uri
assert bundle["certified_data_build_id"] == "policyengine-uk-data-1.55.5"
assert bundle["data_build_model_version"] == "2.88.14"
assert bundle["compatibility_basis"] == "matching_data_build_fingerprint"
assert bundle["certified_data_build_id"] == "policyengine-uk-data-1.55.10"
assert bundle["data_build_model_version"] == "2.88.20"
assert bundle["compatibility_basis"] == "exact_build_model_version"
assert bundle["certified_by"] == "policyengine.py bundled manifest"

def test__given_runtime_certification__then_release_bundle_prefers_runtime_value(
Expand Down Expand Up @@ -694,19 +694,19 @@ def test__given_uk_managed_dataset_name__then_resolves_within_bundle(self):
else:
assert dataset == (
"hf://policyengine/policyengine-uk-data-private/"
"enhanced_frs_2023_24.h5@1.55.5"
"enhanced_frs_2023_24.h5@655dd07e4bb9c777b00dac044949611f1feb824f"
)
assert (
microsim.policyengine_bundle["policyengine_version"] == POLICYENGINE_VERSION
)
assert microsim.policyengine_bundle["runtime_dataset"] == "enhanced_frs_2023_24"
assert microsim.policyengine_bundle["runtime_dataset_uri"] == (
"hf://policyengine/policyengine-uk-data-private/enhanced_frs_2023_24.h5@1.55.5"
"hf://policyengine/policyengine-uk-data-private/enhanced_frs_2023_24.h5@655dd07e4bb9c777b00dac044949611f1feb824f"
)
dataset_source = microsim.policyengine_bundle["runtime_dataset_source"]
assert (
dataset_source
== "hf://policyengine/policyengine-uk-data-private/enhanced_frs_2023_24.h5@1.55.5"
== "hf://policyengine/policyengine-uk-data-private/enhanced_frs_2023_24.h5@655dd07e4bb9c777b00dac044949611f1feb824f"
or str(dataset_source).endswith(
"policyengine_uk_data/storage/enhanced_frs_2023_24.h5"
)
Expand Down
2 changes: 1 addition & 1 deletion tests/test_uk_regions.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ def test__given_uk_registry__then_has_national_region(self):
assert national.region_type == "national"
assert (
national.dataset_path
== "hf://policyengine/policyengine-uk-data-private/enhanced_frs_2023_24.h5@1.55.5"
== "hf://policyengine/policyengine-uk-data-private/enhanced_frs_2023_24.h5@655dd07e4bb9c777b00dac044949611f1feb824f"
)
assert not national.requires_filter

Expand Down
12 changes: 6 additions & 6 deletions uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading