-
Notifications
You must be signed in to change notification settings - Fork 22
Normalize HTTP error handling across SGS, Currency, and OData #31
Copy link
Copy link
Closed
Labels
area: currencyCurrency/PTAX scraping and exchange-rate APICurrency/PTAX scraping and exchange-rate APIarea: httpShared HTTP client, retries, errors, and lifecycleShared HTTP client, retries, errors, and lifecyclearea: odataOData service discovery, metadata, query building, and endpointsOData service discovery, metadata, query building, and endpointsarea: sgsSGS time series APISGS time series APIpriority: highHigh urgency or high impactHigh urgency or high impacttype: refactorInternal refactoring without intended feature changesInternal refactoring without intended feature changes
Milestone
Description
Metadata
Metadata
Assignees
Labels
area: currencyCurrency/PTAX scraping and exchange-rate APICurrency/PTAX scraping and exchange-rate APIarea: httpShared HTTP client, retries, errors, and lifecycleShared HTTP client, retries, errors, and lifecyclearea: odataOData service discovery, metadata, query building, and endpointsOData service discovery, metadata, query building, and endpointsarea: sgsSGS time series APISGS time series APIpriority: highHigh urgency or high impactHigh urgency or high impacttype: refactorInternal refactoring without intended feature changesInternal refactoring without intended feature changes
Context
HTTP behavior is inconsistent across modules.
bcb/http.pydefines shared clients and retry helpers, but feature modules import_CLIENTand_ASYNC_CLIENTdirectly and each module handles response failures differently.Scope
Introduce one shared HTTP response handling approach for sync and async requests. Normalize status handling for 429, 404, 5xx, timeout, and connection failures.
Branching
Create the implementation branch from
project-health-hardeningand merge the fix back intoproject-health-hardeningbefore any merge tomain.Acceptance Criteria
uv run pytest -m "not integration", Ruff, and mypy pass.