mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
Move the EpcClientService package (client + _retry + exceptions + tests) from the dying backend/ tree to infrastructure/epc_client/ as the New-EPC-API Fetcher; update the two callers (address2UPRN, a script). All 14 client tests pass. Add SolarRepository port + SolarPostgresRepository persisting Google Solar building insights as JSONB (solar_building_insights table), one row per Property. The EPC repo half of this slice already landed in #1129. pyright strict clean. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
17 lines
454 B
Python
17 lines
454 B
Python
from typing import Optional
|
|
|
|
|
|
class EpcApiError(Exception):
|
|
"""Base for all EPC client errors."""
|
|
|
|
|
|
class EpcNotFoundError(EpcApiError):
|
|
"""Raised when the API returns 404."""
|
|
|
|
|
|
class EpcRateLimitError(EpcApiError):
|
|
"""Raised when the API returns 429 and all retries are exhausted."""
|
|
|
|
def __init__(self, message: str, retry_after: Optional[float] = None) -> None:
|
|
super().__init__(message)
|
|
self.retry_after = retry_after
|