From 88f4739ce800f9b5795a8bf4c7871e1d3b3e8bb1 Mon Sep 17 00:00:00 2001 From: Jun-te Kim Date: Mon, 29 Jun 2026 14:46:42 +0000 Subject: [PATCH] =?UTF-8?q?Return=20empty=20list=20for=20a=20postcode=20wi?= =?UTF-8?q?th=20no=20historic=20EPC=20shard=20=F0=9F=9F=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.8 (1M context) --- repositories/historic_epc/historic_epc_s3_repository.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/repositories/historic_epc/historic_epc_s3_repository.py b/repositories/historic_epc/historic_epc_s3_repository.py index 83efdf33d..bc2d5dcca 100644 --- a/repositories/historic_epc/historic_epc_s3_repository.py +++ b/repositories/historic_epc/historic_epc_s3_repository.py @@ -3,6 +3,7 @@ from __future__ import annotations from collections.abc import Callable import pandas as pd +from botocore.exceptions import ClientError from datatypes.epc.domain.historic_epc import HistoricEpc from datatypes.epc.domain.historic_epc_matching import ( @@ -35,5 +36,10 @@ class HistoricEpcS3Repository(HistoricEpcRepository): pc = _sanitise_postcode(postcode) bucket, root_prefix = parse_s3_uri(self._s3_root) key = f"{root_prefix.rstrip('/')}/{pc}/data.csv.gz" - df = self._read_csv_gz(bucket, key) + try: + df = self._read_csv_gz(bucket, key) + except ClientError as e: + if e.response.get("Error", {}).get("Code") in ("NoSuchKey", "404"): + return [] + raise return [_map_historic_epc_pandas_row_to_domain(row) for _, row in df.iterrows()]