aeat.adapters.outbound.google._api module

Shared Google API request execution with typed-error translation.

Both adapters.outbound.google._calc_sheets_apply and adapters.outbound.google._calc_sheets_pull issue google-api-python-client requests. This module provides the single execute_request() boundary they route through so transport failures, HTTP failures, and quota responses become the typed OutboundStorageError hierarchy instead of endpoint-specific HttpError strings.

See also

GoogleDriveFile, GoogleSheetsRange, and GoogleSpreadsheet document the shared response shapes the calc Sheets adapters cast at their call sites.

class GoogleDriveFile[source]

Bases: _GoogleDriveFileRequired

Typed shape for a Google Drive Files resource response.

Covers the file metadata fields consumed by adapters.outbound.google._calc_sheets_apply and adapters.outbound.google._calc_sheets_pull. Additional fields returned by Drive are ignored by typing.TypedDict consumers.

See https://developers.google.com/drive/api/reference/rest/v3/files.

name: str
mimeType: str
parents: list[str]
owners: list[dict[str, Any]]
id: str
class GoogleSheetsRange[source]

Bases: _GoogleSheetsRangeRequired

Typed shape for a Sheets ValueRange resource.

Covers fields returned by spreadsheets.values.get and spreadsheets.values.update through execute_request().

See https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets.values.

majorDimension: str
updatedRange: str
updatedRows: int
updatedColumns: int
updatedCells: int
range: str
class GoogleSpreadsheet[source]

Bases: _GoogleSpreadsheetRequired

Typed shape for a Sheets Spreadsheet resource.

Covers top-level fields returned by spreadsheets.get through execute_request().

See https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets.

spreadsheetUrl: str
properties: dict[str, Any]
sheets: list[dict[str, Any]]
spreadsheetId: str
execute_request(request, *, action)[source]

Execute a google-api-python-client request, translating failures.

Runs request.execute(num_retries=3) and returns the decoded JSON payload unchanged. HTTP 401/403 responses become OutboundStoragePermissionError, HTTP 404 responses become OutboundStorageNotFoundError, HTTP 429 responses and recognised Google quota markers become OutboundStorageQuotaError, and every other transport or unmapped HTTP failure becomes OutboundStorageNetworkError. A typed OutboundStorageError raised by a nested call is re-raised unchanged so ownership and validation refusals are never re-wrapped as network errors.

Parameters:
  • request (_ExecutableRequest) – A google-api-python-client request object exposing execute().

  • action (str) – Stable action label used in error messages and context.

Return type:

dict[str, Any]

Returns:

The deserialised API response payload.

Raises: