From 480644f4bf1858afa082ab7657e5fdb59cf498b2 Mon Sep 17 00:00:00 2001 From: Max Ghenis Date: Wed, 14 Oct 2026 11:55:53 -0400 Subject: [PATCH 1/2] Certify policyengine-uk 2.130.1 with policyengine-uk-data 1.58.1 scripts/bundle.py certify-data on the publisher's claim at HF commit 89be6b73 (releases/1.58.1/release_manifest.json, sha256 545797bf...), with the manifest, both TRO sidecars, the policyengine-uk pins, uv.lock (uv 0.12.13, --upgrade-package policyengine-uk only) and the test constants that pin the certified pair regenerated together. The gate refuses an unclaimed version (2.127.0 exits 2). Fixes #616 Co-Authored-By: Claude Opus 5.5 --- changelog.d/616.changed.md | 1 + pyproject.toml | 6 +- src/policyengine/data/bundle/manifest.json | 68 +++++++++---------- .../data/bundle/uk.trace.tro.jsonld | 32 ++++----- .../data/bundle/us.trace.tro.jsonld | 4 +- tests/test_models.py | 6 +- tests/test_release_manifests.py | 12 ++-- tests/test_uk_regions.py | 2 +- uv.lock | 12 ++-- 9 files changed, 72 insertions(+), 71 deletions(-) create mode 100644 changelog.d/616.changed.md diff --git a/changelog.d/616.changed.md b/changelog.d/616.changed.md new file mode 100644 index 00000000..0af65723 --- /dev/null +++ b/changelog.d/616.changed.md @@ -0,0 +1 @@ +Certify policyengine-uk 2.130.1 with policyengine-uk-data 1.58.1 (enhanced_frs_2024_25) as the UK default pair, on the publisher's compatibility claim. diff --git a/pyproject.toml b/pyproject.toml index d3ac69b5..1a61c095 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -42,12 +42,12 @@ graph = [ models = [ "policyengine-core==3.33.0", "policyengine-us==2.2.1", - "policyengine-uk==2.126.12", + "policyengine-uk==2.130.1", "spm-calculator==1.0.0", ] uk = [ "policyengine-core==3.33.0", - "policyengine-uk==2.126.12", + "policyengine-uk==2.130.1", ] us = [ "policyengine-core==3.33.0", @@ -71,7 +71,7 @@ dev = [ "hypothesis>=6.100.0", "policyengine-core==3.33.0", "policyengine-us==2.2.1", - "policyengine-uk==2.126.12", + "policyengine-uk==2.130.1", "spm-calculator==1.0.0", ] diff --git a/src/policyengine/data/bundle/manifest.json b/src/policyengine/data/bundle/manifest.json index 76a6fcaf..8d2988b7 100644 --- a/src/policyengine/data/bundle/manifest.json +++ b/src/policyengine/data/bundle/manifest.json @@ -16,88 +16,88 @@ }, "data_releases": { "uk": { - "build_id": "policyengine-uk-data-1.58.0", + "build_id": "policyengine-uk-data-1.58.1", "bundle_id": "uk-6.4.0", "certification": { - "built_with_model_git_sha": "4cbedbecca352f52dffe47e849553c2759a00711", + "built_with_model_git_sha": "daad71cd26c107f1b784ff600d1464ba59c70e4a", "built_with_model_version": "2.122.2", "certified_by": "policyengine.py bundle certification", - "certified_for_model_version": "2.126.12", + "certified_for_model_version": "2.130.1", "compatibility_basis": "legacy_compatible_model_package", "data_build_fingerprint": "sha256:c094d7006fdd81df220090284212f16bbffb15624643bc442c4bb3e1b1e5dac8", - "data_build_id": "policyengine-uk-data-1.58.0" + "data_build_id": "policyengine-uk-data-1.58.1" }, "certified_data_artifact": { - "build_id": "policyengine-uk-data-1.58.0", + "build_id": "policyengine-uk-data-1.58.1", "data_package": { "name": "policyengine-uk-data", - "version": "1.58.0" + "version": "1.58.1" }, "dataset": "enhanced_frs_2024_25", - "sha256": "5ba399ea5ab9a6c7d4e9aaf6c623080beb34d9ad5f330f6244dbad72b8d960b6", - "uri": "hf://policyengine/policyengine-uk-data-private/enhanced_frs_2024_25.h5@1.58.0" + "sha256": "056e80fd8e9151d78f432a25cde863340baee81304c6216a37fb575ce8563784", + "uri": "hf://policyengine/policyengine-uk-data-private/enhanced_frs_2024_25.h5@1.58.1" }, "country_id": "uk", "data_package": { "name": "policyengine-uk-data", - "release_manifest_path": "releases/1.58.0/release_manifest.json", - "release_manifest_revision": "0aa3eee1cdae8f8125f4aff126a8f01957595dc3", + "release_manifest_path": "releases/1.58.1/release_manifest.json", + "release_manifest_revision": "89be6b73fc1e6eeba6dae2f9400676d8510bcd51", "repo_id": "policyengine/policyengine-uk-data-private", "repo_type": "model", - "version": "1.58.0" + "version": "1.58.1" }, "data_producer": "populace", "datasets": { "enhanced_frs_2024_25": { "path": "enhanced_frs_2024_25.h5", "repo_id": "policyengine/policyengine-uk-data-private", - "revision": "1.58.0", - "sha256": "5ba399ea5ab9a6c7d4e9aaf6c623080beb34d9ad5f330f6244dbad72b8d960b6" + "revision": "1.58.1", + "sha256": "056e80fd8e9151d78f432a25cde863340baee81304c6216a37fb575ce8563784" }, "enhanced_frs_2024_25_tiny": { "path": "enhanced_frs_2024_25_tiny.h5", "repo_id": "policyengine/policyengine-uk-data-private", - "revision": "1.58.0", - "sha256": "a2e938b6c68952dc6fa3af998501371d9014b66263baef262d4f649fe6f19dd5" + "revision": "1.58.1", + "sha256": "d5d2bde80f1f028fec98391ea31bb5a0cf8449e3867fc3c1bfe23693b9faecf8" }, "frs_2024_25": { "path": "frs_2024_25.h5", "repo_id": "policyengine/policyengine-uk-data-private", - "revision": "1.58.0", - "sha256": "2ec0ea6c10bc82d030a071474c1b376780ea88053e1659d784b4253662341634" + "revision": "1.58.1", + "sha256": "97af00b2cd2739957f40dcc4de8e0383a6a91d47952c90d4b4921a6007bd2021" }, "frs_2024_25_tiny": { "path": "frs_2024_25_tiny.h5", "repo_id": "policyengine/policyengine-uk-data-private", - "revision": "1.58.0", - "sha256": "e91d17c4bae92067222272da33918f15027f65a58e3765c7bdff8aa119df914e" + "revision": "1.58.1", + "sha256": "e4d7662cd3f053620224b7ceff17266783f09407002a72633b043b844cec3f5a" }, "local_authority_weights": { "path": "local_authority_weights.h5", "repo_id": "policyengine/policyengine-uk-data-private", - "revision": "1.58.0", - "sha256": "0f8e43877f13cea86ea7bd78ce938769d0c2746ac0b191be661c25608aa786fc" + "revision": "1.58.1", + "sha256": "2b7a2f7f9e7081a394b37cb84e909fd3c01d22e421808141684e7c3be59f2089" }, "local_geography_weights": { "path": "local_geography_weights.csv.gz", "repo_id": "policyengine/policyengine-uk-data-private", - "revision": "1.58.0", - "sha256": "2c4026139eb69d26af5a0ddad7e7fe9ee981b89a0968e77a5f41820091f641c2" + "revision": "1.58.1", + "sha256": "97c6e3542543baf737a713bb918ebc3d3dbc3f3765be9bf3414375c322d0e3d1" }, "parliamentary_constituency_weights": { "path": "parliamentary_constituency_weights.h5", "repo_id": "policyengine/policyengine-uk-data-private", - "revision": "1.58.0", - "sha256": "da3d021bf6cd57f06e878094e48524a6a691207231158d9a109da73ea459e900" + "revision": "1.58.1", + "sha256": "8c696e4d65a22033deb4c4f69a767fdb46e0a4f5580f36b7fb47ee4722629b11" } }, "default_dataset": "enhanced_frs_2024_25", - "default_dataset_uri": "hf://policyengine/policyengine-uk-data-private/enhanced_frs_2024_25.h5@1.58.0", + "default_dataset_uri": "hf://policyengine/policyengine-uk-data-private/enhanced_frs_2024_25.h5@1.58.1", "model_package": { "name": "policyengine-uk", - "sha256": "4aa6d7ba411de0009d460efdc4e4992f2e8c89cbf8ec419024b1bce89d407ace", - "version": "2.126.12", - "wheel_url": "https://files.pythonhosted.org/packages/4f/3f/0a611e9b25beb75db3f2f521d359eabad0d1ab4e50194b866663355591ff/policyengine_uk-2.126.12-py3-none-any.whl" + "sha256": "f8b1b8b917c9297ff66937811dbebd9a62d3b1796ce894c326e98051cac4c873", + "version": "2.130.1", + "wheel_url": "https://files.pythonhosted.org/packages/1a/21/88e8addba0eabd9a7d3a29fa5293e141feb405baf0432209387f9a1f467a/policyengine_uk-2.130.1-py3-none-any.whl" }, "policyengine_version": "6.4.0", "region_datasets": { @@ -105,10 +105,10 @@ "path_template": "enhanced_frs_2024_25.h5" } }, - "release_manifest_uri": "https://huggingface.co/policyengine/policyengine-uk-data-private/resolve/0aa3eee1cdae8f8125f4aff126a8f01957595dc3/releases/1.58.0/release_manifest.json", + "release_manifest_uri": "https://huggingface.co/policyengine/policyengine-uk-data-private/resolve/89be6b73fc1e6eeba6dae2f9400676d8510bcd51/releases/1.58.1/release_manifest.json", "schema_version": 1, - "source_manifest_uri": "hf://model/policyengine/policyengine-uk-data-private@0aa3eee1cdae8f8125f4aff126a8f01957595dc3/releases/1.58.0/release_manifest.json", - "version": "policyengine-uk-data-1.58.0" + "source_manifest_uri": "hf://model/policyengine/policyengine-uk-data-private@89be6b73fc1e6eeba6dae2f9400676d8510bcd51/releases/1.58.1/release_manifest.json", + "version": "policyengine-uk-data-1.58.1" }, "us": { "build_id": "populace-us-2024-spm-20260915", @@ -310,10 +310,10 @@ "policyengine-uk": { "country": "uk", "import_name": "policyengine_uk", - "install_requirement": "policyengine-uk==2.126.12", + "install_requirement": "policyengine-uk==2.130.1", "name": "policyengine-uk", "role": "country_model", - "version": "2.126.12" + "version": "2.130.1" }, "policyengine-us": { "country": "us", diff --git a/src/policyengine/data/bundle/uk.trace.tro.jsonld b/src/policyengine/data/bundle/uk.trace.tro.jsonld index f721fa2b..ccf72ea7 100644 --- a/src/policyengine/data/bundle/uk.trace.tro.jsonld +++ b/src/policyengine/data/bundle/uk.trace.tro.jsonld @@ -17,7 +17,7 @@ "schema:name": "PolicyEngine", "schema:url": "https://policyengine.org" }, - "schema:dateCreated": "2026-10-07T17:31:53.189867Z", + "schema:dateCreated": "2026-10-14T07:43:49.920588Z", "schema:description": "TRACE TRO for certified runtime bundle uk-6.4.0 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": { @@ -45,7 +45,7 @@ "trov:hasArtifact": { "@id": "composition/1/artifact/data_release_manifest" }, - "trov:hasLocation": "https://huggingface.co/policyengine/policyengine-uk-data-private/resolve/0aa3eee1cdae8f8125f4aff126a8f01957595dc3/releases/1.58.0/release_manifest.json" + "trov:hasLocation": "https://huggingface.co/policyengine/policyengine-uk-data-private/resolve/89be6b73fc1e6eeba6dae2f9400676d8510bcd51/releases/1.58.1/release_manifest.json" }, { "@id": "arrangement/1/location/dataset", @@ -53,7 +53,7 @@ "trov:hasArtifact": { "@id": "composition/1/artifact/dataset" }, - "trov:hasLocation": "https://huggingface.co/policyengine/policyengine-uk-data-private/resolve/1.58.0/enhanced_frs_2024_25.h5" + "trov:hasLocation": "https://huggingface.co/policyengine/policyengine-uk-data-private/resolve/1.58.1/enhanced_frs_2024_25.h5" }, { "@id": "arrangement/1/location/model_wheel", @@ -61,7 +61,7 @@ "trov:hasArtifact": { "@id": "composition/1/artifact/model_wheel" }, - "trov:hasLocation": "https://files.pythonhosted.org/packages/4f/3f/0a611e9b25beb75db3f2f521d359eabad0d1ab4e50194b866663355591ff/policyengine_uk-2.126.12-py3-none-any.whl" + "trov:hasLocation": "https://files.pythonhosted.org/packages/1a/21/88e8addba0eabd9a7d3a29fa5293e141feb405baf0432209387f9a1f467a/policyengine_uk-2.130.1-py3-none-any.whl" } ] } @@ -75,52 +75,52 @@ "@type": "trov:ResearchArtifact", "schema:name": "policyengine.py bundle manifest for uk", "trov:mimeType": "application/json", - "trov:sha256": "53430915cbdd1531c0735481c4eaf0fc425fc18f9e945f424b6b0f5120ce11b3" + "trov:sha256": "79ed53c64ca7db0969aeb11ad18b3e2ee9540c04b76e10789083f98ec8a32e75" }, { "@id": "composition/1/artifact/data_release_manifest", "@type": "trov:ResearchArtifact", - "schema:name": "policyengine-uk-data release manifest 1.58.0", + "schema:name": "policyengine-uk-data release manifest 1.58.1", "trov:mimeType": "application/json", - "trov:sha256": "9bde769f476b0c550dc1a40862e413e95a18185ae6beffc970551913ea5e4613" + "trov:sha256": "545797bf231cd3681e64b677065d921304e9a32f1e46e757a940a412b4136c17" }, { "@id": "composition/1/artifact/dataset", "@type": "trov:ResearchArtifact", "schema:name": "enhanced_frs_2024_25", "trov:mimeType": "application/x-hdf5", - "trov:sha256": "5ba399ea5ab9a6c7d4e9aaf6c623080beb34d9ad5f330f6244dbad72b8d960b6" + "trov:sha256": "056e80fd8e9151d78f432a25cde863340baee81304c6216a37fb575ce8563784" }, { "@id": "composition/1/artifact/model_wheel", "@type": "trov:ResearchArtifact", - "schema:name": "policyengine-uk==2.126.12 wheel", + "schema:name": "policyengine-uk==2.130.1 wheel", "trov:mimeType": "application/zip", - "trov:sha256": "4aa6d7ba411de0009d460efdc4e4992f2e8c89cbf8ec419024b1bce89d407ace" + "trov:sha256": "f8b1b8b917c9297ff66937811dbebd9a62d3b1796ce894c326e98051cac4c873" } ], "trov:hasFingerprint": { "@id": "composition/1/fingerprint", "@type": "trov:CompositionFingerprint", - "trov:sha256": "76da4207c63012c882686b518126c57797e6cb9b345bf8b755dc18917f8dcceb" + "trov:sha256": "34148deee073f172baea003f8bf6191e5bf0914e96e6f4096547e3994a6ce96e" } }, "trov:hasPerformance": { "@id": "trp/1", "@type": "trov:TransparentResearchPerformance", - "pe:builtWithModelGitSha": "4cbedbecca352f52dffe47e849553c2759a00711", + "pe:builtWithModelGitSha": "daad71cd26c107f1b784ff600d1464ba59c70e4a", "pe:builtWithModelVersion": "2.122.2", "pe:certifiedBy": "policyengine.py bundle certification", - "pe:certifiedForModelVersion": "2.126.12", + "pe:certifiedForModelVersion": "2.130.1", "pe:compatibilityBasis": "legacy_compatible_model_package", "pe:dataBuildFingerprint": "sha256:c094d7006fdd81df220090284212f16bbffb15624643bc442c4bb3e1b1e5dac8", - "pe:dataBuildId": "policyengine-uk-data-1.58.0", + "pe:dataBuildId": "policyengine-uk-data-1.58.1", "pe:emittedIn": "repository-bundle", - "rdfs:comment": "Certification of build policyengine-uk-data-1.58.0 for policyengine-uk 2.126.12.", + "rdfs:comment": "Certification of build policyengine-uk-data-1.58.1 for policyengine-uk 2.130.1.", "trov:accessedArrangement": { "@id": "arrangement/1" }, - "trov:startedAtTime": "2026-10-07T17:31:53.189867Z", + "trov:startedAtTime": "2026-10-14T07:43:49.920588Z", "trov:wasConductedBy": { "@id": "trs" } diff --git a/src/policyengine/data/bundle/us.trace.tro.jsonld b/src/policyengine/data/bundle/us.trace.tro.jsonld index 57e901b2..442403a0 100644 --- a/src/policyengine/data/bundle/us.trace.tro.jsonld +++ b/src/policyengine/data/bundle/us.trace.tro.jsonld @@ -74,7 +74,7 @@ "@type": "trov:ResearchArtifact", "schema:name": "policyengine.py bundle manifest for us", "trov:mimeType": "application/json", - "trov:sha256": "53430915cbdd1531c0735481c4eaf0fc425fc18f9e945f424b6b0f5120ce11b3" + "trov:sha256": "79ed53c64ca7db0969aeb11ad18b3e2ee9540c04b76e10789083f98ec8a32e75" }, { "@id": "composition/1/artifact/data_release_manifest", @@ -101,7 +101,7 @@ "trov:hasFingerprint": { "@id": "composition/1/fingerprint", "@type": "trov:CompositionFingerprint", - "trov:sha256": "08f4859401033e106356414bddda468370031b7c747ec00c26afb06dd02cb403" + "trov:sha256": "6d550e6f1f8b47d5959a2fd9bef85ac554d12c39c1cbe14be415e842e8bcb00a" } }, "trov:hasPerformance": { diff --git a/tests/test_models.py b/tests/test_models.py index 4867298b..c2ad2875 100644 --- a/tests/test_models.py +++ b/tests/test_models.py @@ -43,13 +43,13 @@ 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.126.12" + assert uk_latest.model_package.version == "2.130.1" assert uk_latest.data_package.name == "policyengine-uk-data" - assert uk_latest.data_package.version == "1.58.0" + assert uk_latest.data_package.version == "1.58.1" assert ( uk_latest.default_dataset_uri == "hf://policyengine/policyengine-uk-data-private/enhanced_frs_2024_25.h5" - "@1.58.0" + "@1.58.1" ) def test_has_hundreds_of_parameters(self): diff --git a/tests/test_release_manifests.py b/tests/test_release_manifests.py index ae4a7925..6c64909c 100644 --- a/tests/test_release_manifests.py +++ b/tests/test_release_manifests.py @@ -75,12 +75,12 @@ "hf://policyengine/populace-us/populace_us_2024_acs_local.h5" f"@{US_LOCAL_AREA_RELEASE_ID}" ) -UK_MODEL_VERSION = "2.126.12" +UK_MODEL_VERSION = "2.130.1" UK_BUILT_WITH_MODEL_VERSION = "2.122.2" -UK_DATA_RELEASE_VERSION = "1.58.0" -UK_DATA_RELEASE_ID = "policyengine-uk-data-1.58.0" -UK_DATA_RELEASE_REVISION = "0aa3eee1cdae8f8125f4aff126a8f01957595dc3" -UK_DATA_RELEASE_PATH = "releases/1.58.0/release_manifest.json" +UK_DATA_RELEASE_VERSION = "1.58.1" +UK_DATA_RELEASE_ID = "policyengine-uk-data-1.58.1" +UK_DATA_RELEASE_REVISION = "89be6b73fc1e6eeba6dae2f9400676d8510bcd51" +UK_DATA_RELEASE_PATH = "releases/1.58.1/release_manifest.json" # The prior certified default, kept resolvable via dataset_overlays. UK_POPULACE_RELEASE_ID = "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z" UK_POPULACE_DATASET_URI = ( @@ -89,7 +89,7 @@ ) UK_CERTIFICATION_SOURCE = "policyengine.py bundle certification" UK_CERTIFIED_DATASET_URI = ( - "hf://policyengine/policyengine-uk-data-private/enhanced_frs_2024_25.h5@1.58.0" + "hf://policyengine/policyengine-uk-data-private/enhanced_frs_2024_25.h5@1.58.1" ) diff --git a/tests/test_uk_regions.py b/tests/test_uk_regions.py index f4676ab8..b3697679 100644 --- a/tests/test_uk_regions.py +++ b/tests/test_uk_regions.py @@ -80,7 +80,7 @@ def test__given_uk_registry__then_has_national_region(self): assert ( national.dataset_path == "hf://policyengine/policyengine-uk-data-private/enhanced_frs_2024_25.h5" - "@1.58.0" + "@1.58.1" ) assert not national.requires_filter diff --git a/uv.lock b/uv.lock index bd9468d3..df257915 100644 --- a/uv.lock +++ b/uv.lock @@ -1884,9 +1884,9 @@ requires-dist = [ { name = "policyengine-core", marker = "extra == 'models'", specifier = "==3.33.0" }, { name = "policyengine-core", marker = "extra == 'uk'", specifier = "==3.33.0" }, { name = "policyengine-core", marker = "extra == 'us'", specifier = "==3.33.0" }, - { name = "policyengine-uk", marker = "extra == 'dev'", specifier = "==2.126.12" }, - { name = "policyengine-uk", marker = "extra == 'models'", specifier = "==2.126.12" }, - { name = "policyengine-uk", marker = "extra == 'uk'", specifier = "==2.126.12" }, + { name = "policyengine-uk", marker = "extra == 'dev'", specifier = "==2.130.1" }, + { name = "policyengine-uk", marker = "extra == 'models'", specifier = "==2.130.1" }, + { name = "policyengine-uk", marker = "extra == 'uk'", specifier = "==2.130.1" }, { name = "policyengine-us", marker = "extra == 'dev'", specifier = "==2.2.1" }, { name = "policyengine-us", marker = "extra == 'models'", specifier = "==2.2.1" }, { name = "policyengine-us", marker = "extra == 'us'", specifier = "==2.2.1" }, @@ -1935,7 +1935,7 @@ wheels = [ [[package]] name = "policyengine-uk" -version = "2.126.12" +version = "2.130.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "microdf-python" }, @@ -1943,9 +1943,9 @@ dependencies = [ { name = "pydantic" }, { name = "tables" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/4c/c9/5ad8f2c5833742db4873098f2689cd45cf7bc7f3d79755d5e13b98dd8ab4/policyengine_uk-2.126.12.tar.gz", hash = "sha256:86ac5ac83f7a22b6ef69ca701b0a87017c4a143f2f34937c74d5311786ed34b4", size = 2277744, upload-time = "2026-10-12T04:31:37.012Z" } +sdist = { url = "https://files.pythonhosted.org/packages/17/27/82a97f5ec344d4be34db17bd26fe35077f1fe22f15c99818514d704262e9/policyengine_uk-2.130.1.tar.gz", hash = "sha256:1ce0a924a847b4e3e8ea8ba9702a84b267a0490c84a55ef94da6ed2efd965b34", size = 2496922, upload-time = "2026-10-14T01:58:47.232Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/4f/3f/0a611e9b25beb75db3f2f521d359eabad0d1ab4e50194b866663355591ff/policyengine_uk-2.126.12-py3-none-any.whl", hash = "sha256:4aa6d7ba411de0009d460efdc4e4992f2e8c89cbf8ec419024b1bce89d407ace", size = 3524817, upload-time = "2026-10-12T04:31:34.999Z" }, + { url = "https://files.pythonhosted.org/packages/1a/21/88e8addba0eabd9a7d3a29fa5293e141feb405baf0432209387f9a1f467a/policyengine_uk-2.130.1-py3-none-any.whl", hash = "sha256:f8b1b8b917c9297ff66937811dbebd9a62d3b1796ce894c326e98051cac4c873", size = 3804651, upload-time = "2026-10-14T01:58:44.937Z" }, ] [[package]] From 36b4af0efb0799b13b35e95fd174c392637fbfd3 Mon Sep 17 00:00:00 2001 From: Max Ghenis Date: Wed, 14 Oct 2026 13:21:30 -0400 Subject: [PATCH 2/2] Expect year files projected through 2032 policyengine-uk 2.130.0 projects single-year datasets through 2032 (policyengine-uk#2376), so the projected input policyengine.py builds for a 2024 year file now runs to 2032. Years through 2030 are projected as before. Found by the full suite on this branch (1 failed, 1684 passed). Co-Authored-By: Claude Opus 5.5 --- tests/test_uk_year_file_data_year.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/test_uk_year_file_data_year.py b/tests/test_uk_year_file_data_year.py index 522bd9c5..816c11cc 100644 --- a/tests/test_uk_year_file_data_year.py +++ b/tests/test_uk_year_file_data_year.py @@ -540,7 +540,9 @@ def test_projected_input_is_ordered_and_leaves_weights_to_the_model(year_files): built = _policyengine_uk_input(dataset) - assert built.years == [2024, 2025, 2026, 2027, 2028, 2029, 2030] + # policyengine-uk projects single-year datasets through 2032 from 2.130.0 + # (policyengine-uk#2376); years through 2030 are projected as before. + assert built.years == list(range(2024, 2033)) for year in built.years: if year == 2026: continue