diff --git a/changelog.d/certify-uk-2.135.3-1.58.2.changed.md b/changelog.d/certify-uk-2.135.3-1.58.2.changed.md new file mode 100644 index 00000000..894feebc --- /dev/null +++ b/changelog.d/certify-uk-2.135.3-1.58.2.changed.md @@ -0,0 +1 @@ +Certify uk-data 1.58.2 (`enhanced_frs_2024_25`) with policyengine-uk 2.135.3 and policyengine-core 3.33.0, qualified automatically as pair `e436edab61fc`. No publisher claim covers this model version, so the certificate is an exact claim backed by the qualification receipt. diff --git a/pyproject.toml b/pyproject.toml index 80105315..3dc57468 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.130.1", + "policyengine-uk==2.135.3", "spm-calculator==1.0.0", ] uk = [ "policyengine-core==3.33.0", - "policyengine-uk==2.130.1", + "policyengine-uk==2.135.3", ] us = [ "policyengine-core==3.33.0", @@ -72,7 +72,7 @@ dev = [ "rfc8785>=0.1.4", "policyengine-core==3.33.0", "policyengine-us==2.2.1", - "policyengine-uk==2.130.1", + "policyengine-uk==2.135.3", "spm-calculator==1.0.0", ] diff --git a/src/policyengine/data/bundle/manifest.json b/src/policyengine/data/bundle/manifest.json index 97d0181d..71b67722 100644 --- a/src/policyengine/data/bundle/manifest.json +++ b/src/policyengine/data/bundle/manifest.json @@ -16,88 +16,91 @@ }, "data_releases": { "uk": { - "build_id": "policyengine-uk-data-1.58.1", + "build_id": "policyengine-uk-data-1.58.2", "bundle_id": "uk-6.7.6", "certification": { - "built_with_model_git_sha": "daad71cd26c107f1b784ff600d1464ba59c70e4a", + "built_with_model_git_sha": "a43e8c5196c7e7c09b6ecb4924f034444dd83b8f", "built_with_model_version": "2.122.2", "certified_by": "policyengine.py bundle certification", - "certified_for_model_version": "2.130.1", - "compatibility_basis": "legacy_compatible_model_package", + "certified_for_core_version": "3.33.0", + "certified_for_model_version": "2.135.3", + "compatibility_basis": "qualified_exact_pair", "data_build_fingerprint": "sha256:c094d7006fdd81df220090284212f16bbffb15624643bc442c4bb3e1b1e5dac8", - "data_build_id": "policyengine-uk-data-1.58.1" + "data_build_id": "policyengine-uk-data-1.58.2", + "qualification_ledger_url": "https://github.com/PolicyEngine/policyengine.py/tree/uk-qualification-ledger/uk/e436edab61fcb0c76b20d03b343ddfbdad92461686c7c21c2d2369af602e2ddb", + "qualification_pair_id": "e436edab61fcb0c76b20d03b343ddfbdad92461686c7c21c2d2369af602e2ddb" }, "certified_data_artifact": { - "build_id": "policyengine-uk-data-1.58.1", + "build_id": "policyengine-uk-data-1.58.2", "data_package": { "name": "policyengine-uk-data", - "version": "1.58.1" + "version": "1.58.2" }, "dataset": "enhanced_frs_2024_25", - "sha256": "056e80fd8e9151d78f432a25cde863340baee81304c6216a37fb575ce8563784", - "uri": "hf://policyengine/policyengine-uk-data-private/enhanced_frs_2024_25.h5@1.58.1" + "sha256": "40804ba2540458cb6f3c476d29d3bb4bc88d9ac6b401fa285ed6e4232a55aa52", + "uri": "hf://policyengine/policyengine-uk-data-private/enhanced_frs_2024_25.h5@1.58.2" }, "country_id": "uk", "data_package": { "name": "policyengine-uk-data", - "release_manifest_path": "releases/1.58.1/release_manifest.json", - "release_manifest_revision": "89be6b73fc1e6eeba6dae2f9400676d8510bcd51", + "release_manifest_path": "releases/1.58.2/release_manifest.json", + "release_manifest_revision": "cd0856d995eeab2757a987ac2452d3cacce839ee", "repo_id": "policyengine/policyengine-uk-data-private", "repo_type": "model", - "version": "1.58.1" + "version": "1.58.2" }, "data_producer": "populace", "datasets": { "enhanced_frs_2024_25": { "path": "enhanced_frs_2024_25.h5", "repo_id": "policyengine/policyengine-uk-data-private", - "revision": "1.58.1", - "sha256": "056e80fd8e9151d78f432a25cde863340baee81304c6216a37fb575ce8563784" + "revision": "1.58.2", + "sha256": "40804ba2540458cb6f3c476d29d3bb4bc88d9ac6b401fa285ed6e4232a55aa52" }, "enhanced_frs_2024_25_tiny": { "path": "enhanced_frs_2024_25_tiny.h5", "repo_id": "policyengine/policyengine-uk-data-private", - "revision": "1.58.1", - "sha256": "d5d2bde80f1f028fec98391ea31bb5a0cf8449e3867fc3c1bfe23693b9faecf8" + "revision": "1.58.2", + "sha256": "c0362e4661433cb42518161612be01b36b839d1dd5d87ed76bc4c0018a529bc9" }, "frs_2024_25": { "path": "frs_2024_25.h5", "repo_id": "policyengine/policyengine-uk-data-private", - "revision": "1.58.1", - "sha256": "97af00b2cd2739957f40dcc4de8e0383a6a91d47952c90d4b4921a6007bd2021" + "revision": "1.58.2", + "sha256": "a9b59b888cd42c379b2975d48679b430c5196376dfb5fc698e21c42947d9a1a2" }, "frs_2024_25_tiny": { "path": "frs_2024_25_tiny.h5", "repo_id": "policyengine/policyengine-uk-data-private", - "revision": "1.58.1", - "sha256": "e4d7662cd3f053620224b7ceff17266783f09407002a72633b043b844cec3f5a" + "revision": "1.58.2", + "sha256": "75d28df5eba2dc82c82b39ac66fc8536d4a00f507690b2c73f873aef3f011956" }, "local_authority_weights": { "path": "local_authority_weights.h5", "repo_id": "policyengine/policyengine-uk-data-private", - "revision": "1.58.1", - "sha256": "2b7a2f7f9e7081a394b37cb84e909fd3c01d22e421808141684e7c3be59f2089" + "revision": "1.58.2", + "sha256": "7afe530447cd1488c1bb5d583307b015d88472012be2b383472545d988426c33" }, "local_geography_weights": { "path": "local_geography_weights.csv.gz", "repo_id": "policyengine/policyengine-uk-data-private", - "revision": "1.58.1", - "sha256": "97c6e3542543baf737a713bb918ebc3d3dbc3f3765be9bf3414375c322d0e3d1" + "revision": "1.58.2", + "sha256": "be9679281a0674f6e91092d357b0149adab47a0f67f7fec889686c767f090e96" }, "parliamentary_constituency_weights": { "path": "parliamentary_constituency_weights.h5", "repo_id": "policyengine/policyengine-uk-data-private", - "revision": "1.58.1", - "sha256": "8c696e4d65a22033deb4c4f69a767fdb46e0a4f5580f36b7fb47ee4722629b11" + "revision": "1.58.2", + "sha256": "f4be562bec4526803351a99f0cdc75a1fa090b4b5c24d78557a4d14828e4c4c9" } }, "default_dataset": "enhanced_frs_2024_25", - "default_dataset_uri": "hf://policyengine/policyengine-uk-data-private/enhanced_frs_2024_25.h5@1.58.1", + "default_dataset_uri": "hf://policyengine/policyengine-uk-data-private/enhanced_frs_2024_25.h5@1.58.2", "model_package": { "name": "policyengine-uk", - "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" + "sha256": "66861132cbc773e724cf92e0328be10c33a01f159dedda4ab209b7122d782867", + "version": "2.135.3", + "wheel_url": "https://files.pythonhosted.org/packages/6a/1d/f00a81114aa6bc4b0e8a3c83ddfa2a3097f15cfcb1e978bdb72e1b76f71c/policyengine_uk-2.135.3-py3-none-any.whl" }, "policyengine_version": "6.7.6", "region_datasets": { @@ -105,10 +108,10 @@ "path_template": "enhanced_frs_2024_25.h5" } }, - "release_manifest_uri": "https://huggingface.co/policyengine/policyengine-uk-data-private/resolve/89be6b73fc1e6eeba6dae2f9400676d8510bcd51/releases/1.58.1/release_manifest.json", + "release_manifest_uri": "https://huggingface.co/policyengine/policyengine-uk-data-private/resolve/cd0856d995eeab2757a987ac2452d3cacce839ee/releases/1.58.2/release_manifest.json", "schema_version": 1, - "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" + "source_manifest_uri": "hf://model/policyengine/policyengine-uk-data-private@cd0856d995eeab2757a987ac2452d3cacce839ee/releases/1.58.2/release_manifest.json", + "version": "policyengine-uk-data-1.58.2" }, "us": { "build_id": "populace-us-2024-spm-20260915", @@ -310,10 +313,10 @@ "policyengine-uk": { "country": "uk", "import_name": "policyengine_uk", - "install_requirement": "policyengine-uk==2.130.1", + "install_requirement": "policyengine-uk==2.135.3", "name": "policyengine-uk", "role": "country_model", - "version": "2.130.1" + "version": "2.135.3" }, "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 377d8ec7..a8e7a4bf 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-14T07:43:49.920588Z", + "schema:dateCreated": "2026-10-15T15:19:27.080535Z", "schema:description": "TRACE TRO for certified runtime bundle uk-6.7.6 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/89be6b73fc1e6eeba6dae2f9400676d8510bcd51/releases/1.58.1/release_manifest.json" + "trov:hasLocation": "https://huggingface.co/policyengine/policyengine-uk-data-private/resolve/cd0856d995eeab2757a987ac2452d3cacce839ee/releases/1.58.2/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.1/enhanced_frs_2024_25.h5" + "trov:hasLocation": "https://huggingface.co/policyengine/policyengine-uk-data-private/resolve/1.58.2/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/1a/21/88e8addba0eabd9a7d3a29fa5293e141feb405baf0432209387f9a1f467a/policyengine_uk-2.130.1-py3-none-any.whl" + "trov:hasLocation": "https://files.pythonhosted.org/packages/6a/1d/f00a81114aa6bc4b0e8a3c83ddfa2a3097f15cfcb1e978bdb72e1b76f71c/policyengine_uk-2.135.3-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": "5e248b55d0fdb81ee8f7911f01d27584d8f46e6fa2cdd3b15a6fdfd5b9bed47c" + "trov:sha256": "ab095cafd7c8f53f46fa3c3a68bb3a023f67bc481d95f8ce60d91cd97f89cbe0" }, { "@id": "composition/1/artifact/data_release_manifest", "@type": "trov:ResearchArtifact", - "schema:name": "policyengine-uk-data release manifest 1.58.1", + "schema:name": "policyengine-uk-data release manifest 1.58.2", "trov:mimeType": "application/json", - "trov:sha256": "545797bf231cd3681e64b677065d921304e9a32f1e46e757a940a412b4136c17" + "trov:sha256": "6867e8a7bd8be6110816527191b2348f712c4ba2502886696142506bb59fbbff" }, { "@id": "composition/1/artifact/dataset", "@type": "trov:ResearchArtifact", "schema:name": "enhanced_frs_2024_25", "trov:mimeType": "application/x-hdf5", - "trov:sha256": "056e80fd8e9151d78f432a25cde863340baee81304c6216a37fb575ce8563784" + "trov:sha256": "40804ba2540458cb6f3c476d29d3bb4bc88d9ac6b401fa285ed6e4232a55aa52" }, { "@id": "composition/1/artifact/model_wheel", "@type": "trov:ResearchArtifact", - "schema:name": "policyengine-uk==2.130.1 wheel", + "schema:name": "policyengine-uk==2.135.3 wheel", "trov:mimeType": "application/zip", - "trov:sha256": "f8b1b8b917c9297ff66937811dbebd9a62d3b1796ce894c326e98051cac4c873" + "trov:sha256": "66861132cbc773e724cf92e0328be10c33a01f159dedda4ab209b7122d782867" } ], "trov:hasFingerprint": { "@id": "composition/1/fingerprint", "@type": "trov:CompositionFingerprint", - "trov:sha256": "ad3cbb4f1ee3ed4cde4c485e5f43be494e5be063b87325c498525a9f49cc6b1a" + "trov:sha256": "e3a81ef578638c60ac9984f53719ec51d533196d71c9bf48ec7018b5a33dfb5b" } }, "trov:hasPerformance": { "@id": "trp/1", "@type": "trov:TransparentResearchPerformance", - "pe:builtWithModelGitSha": "daad71cd26c107f1b784ff600d1464ba59c70e4a", + "pe:builtWithModelGitSha": "a43e8c5196c7e7c09b6ecb4924f034444dd83b8f", "pe:builtWithModelVersion": "2.122.2", "pe:certifiedBy": "policyengine.py bundle certification", - "pe:certifiedForModelVersion": "2.130.1", - "pe:compatibilityBasis": "legacy_compatible_model_package", + "pe:certifiedForModelVersion": "2.135.3", + "pe:compatibilityBasis": "qualified_exact_pair", "pe:dataBuildFingerprint": "sha256:c094d7006fdd81df220090284212f16bbffb15624643bc442c4bb3e1b1e5dac8", - "pe:dataBuildId": "policyengine-uk-data-1.58.1", + "pe:dataBuildId": "policyengine-uk-data-1.58.2", "pe:emittedIn": "repository-bundle", - "rdfs:comment": "Certification of build policyengine-uk-data-1.58.1 for policyengine-uk 2.130.1.", + "rdfs:comment": "Certification of build policyengine-uk-data-1.58.2 for policyengine-uk 2.135.3.", "trov:accessedArrangement": { "@id": "arrangement/1" }, - "trov:startedAtTime": "2026-10-14T07:43:49.920588Z", + "trov:startedAtTime": "2026-10-15T15:19:27.080535Z", "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 4be31019..deb3b0ec 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": "5e248b55d0fdb81ee8f7911f01d27584d8f46e6fa2cdd3b15a6fdfd5b9bed47c" + "trov:sha256": "ab095cafd7c8f53f46fa3c3a68bb3a023f67bc481d95f8ce60d91cd97f89cbe0" }, { "@id": "composition/1/artifact/data_release_manifest", @@ -101,7 +101,7 @@ "trov:hasFingerprint": { "@id": "composition/1/fingerprint", "@type": "trov:CompositionFingerprint", - "trov:sha256": "daf551601e171f7cc896db5e5a28d564b14ef1acefc6f19ffebc66c3d0c943ea" + "trov:sha256": "ffd3f7d6d6f73205baabfd91448a901104b3b9c4ee885f2644027968811a2d61" } }, "trov:hasPerformance": { diff --git a/tests/fixtures/household_calculator_snapshots/uk_model_surface.json b/tests/fixtures/household_calculator_snapshots/uk_model_surface.json index e3d367c1..74c465cc 100644 --- a/tests/fixtures/household_calculator_snapshots/uk_model_surface.json +++ b/tests/fixtures/household_calculator_snapshots/uk_model_surface.json @@ -5,7 +5,7 @@ "has_income_tax": true, "has_region_registry": true, "model_package_name": "policyengine-uk", - "num_parameters_bucketed_100s": 32, + "num_parameters_bucketed_100s": 33, "num_variables_bucketed_100s": 11, "region_registry_country": "uk" } diff --git a/tests/test_models.py b/tests/test_models.py index c2ad2875..44c81517 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.130.1" + assert uk_latest.model_package.version == "2.135.3" assert uk_latest.data_package.name == "policyengine-uk-data" - assert uk_latest.data_package.version == "1.58.1" + assert uk_latest.data_package.version == "1.58.2" assert ( uk_latest.default_dataset_uri == "hf://policyengine/policyengine-uk-data-private/enhanced_frs_2024_25.h5" - "@1.58.1" + "@1.58.2" ) def test_has_hundreds_of_parameters(self): diff --git a/tests/test_release_manifests.py b/tests/test_release_manifests.py index 132e1599..a250aabc 100644 --- a/tests/test_release_manifests.py +++ b/tests/test_release_manifests.py @@ -73,12 +73,12 @@ "hf://policyengine/populace-us/populace_us_2024_acs_local.h5" f"@{US_LOCAL_AREA_RELEASE_ID}" ) -UK_MODEL_VERSION = "2.130.1" +UK_MODEL_VERSION = "2.135.3" UK_BUILT_WITH_MODEL_VERSION = "2.122.2" -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" +UK_DATA_RELEASE_VERSION = "1.58.2" +UK_DATA_RELEASE_ID = "policyengine-uk-data-1.58.2" +UK_DATA_RELEASE_REVISION = "cd0856d995eeab2757a987ac2452d3cacce839ee" +UK_DATA_RELEASE_PATH = "releases/1.58.2/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 = ( @@ -87,7 +87,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.1" + "hf://policyengine/policyengine-uk-data-private/enhanced_frs_2024_25.h5@1.58.2" ) diff --git a/tests/test_uk_regions.py b/tests/test_uk_regions.py index b3697679..14841cbb 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.1" + "@1.58.2" ) assert not national.requires_filter diff --git a/uv.lock b/uv.lock index a44b0268..c864b27c 100644 --- a/uv.lock +++ b/uv.lock @@ -1885,9 +1885,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.130.1" }, - { name = "policyengine-uk", marker = "extra == 'models'", specifier = "==2.130.1" }, - { name = "policyengine-uk", marker = "extra == 'uk'", specifier = "==2.130.1" }, + { name = "policyengine-uk", marker = "extra == 'dev'", specifier = "==2.135.3" }, + { name = "policyengine-uk", marker = "extra == 'models'", specifier = "==2.135.3" }, + { name = "policyengine-uk", marker = "extra == 'uk'", specifier = "==2.135.3" }, { 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" }, @@ -1937,7 +1937,7 @@ wheels = [ [[package]] name = "policyengine-uk" -version = "2.130.1" +version = "2.135.3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "microdf-python" }, @@ -1945,9 +1945,9 @@ dependencies = [ { name = "pydantic" }, { name = "tables" }, ] -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" } +sdist = { url = "https://files.pythonhosted.org/packages/91/af/fadc3f9eeebaf3999d7c748384eb0a140242ed7bfeca3065ef1068cca5fb/policyengine_uk-2.135.3.tar.gz", hash = "sha256:f8cfd31be6297112d28c681ec8f3b1510c105c070504d3ca6728c4bbdcc4f6f6", size = 2686571, upload-time = "2026-10-17T15:14:56.638Z" } wheels = [ - { 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" }, + { url = "https://files.pythonhosted.org/packages/6a/1d/f00a81114aa6bc4b0e8a3c83ddfa2a3097f15cfcb1e978bdb72e1b76f71c/policyengine_uk-2.135.3-py3-none-any.whl", hash = "sha256:66861132cbc773e724cf92e0328be10c33a01f159dedda4ab209b7122d782867", size = 4034427, upload-time = "2026-10-17T15:14:54.019Z" }, ] [[package]]