Skip to content

Errors

_errors

Custom exceptions for the povineq package.

PIPError

Bases: Exception

Base exception for all PIP API errors.

PIPAPIError(status_code, error_message='', details='', valid_values='')

Bases: PIPError

API returned a structured error response (4xx/5xx).

Attributes:

Name Type Description
status_code

HTTP status code of the response.

error_message

Short error description from the API.

details

Additional detail message, if provided.

valid_values

Comma-separated valid values, if provided.

Source code in src/povineq/_errors.py
def __init__(
    self,
    status_code: int,
    error_message: str = "",
    details: str = "",
    valid_values: str = "",
) -> None:
    self.status_code = status_code
    self.error_message = error_message
    self.details = details
    self.valid_values = valid_values
    parts = [p for p in [error_message, details, valid_values] if p]
    super().__init__(f"HTTP {status_code}: {' | '.join(parts)}")

PIPRateLimitError(retry_after_seconds=0)

Bases: PIPError

API rate limit exceeded (HTTP 429).

Attributes:

Name Type Description
retry_after_seconds

Suggested wait time in seconds before retrying.

Source code in src/povineq/_errors.py
def __init__(self, retry_after_seconds: float = 0) -> None:
    self.retry_after_seconds = retry_after_seconds
    super().__init__(
        f"Rate limit exceeded. Retry after {retry_after_seconds:.0f} seconds."
    )

PIPConnectionError

Bases: PIPError

Network connectivity issue — cannot reach the API.

PIPValidationError

Bases: PIPError

Invalid parameter values detected before the API call.