Source code for ergani.exceptions
from typing import Any, Dict, Optional
from requests.models import Response
[docs]
class Error(Exception):
    """
    Base class for all API errors
    """
    def __init__(
        self,
        message: Optional[str] = None,
        response: Optional[Response] = None,
        payload: Optional[Dict[str, Any]] = None,
    ) -> None:
        self.message = message
        self.response = response
        self.payload = payload
    def __str__(self) -> str:
        if self.response:
            if not self.message:
                if self.response.status_code >= 500:
                    self.message = "Service unavailable, please try again later"
                if self.response.status_code == 400:
                    self.message = "Please check your inputs and try again"
            return f"Status code {self.response.status_code}. Error message: {self.message}"
        return f"Error message: {self.message}"
[docs]
class AuthenticationError(Error):
    """
    Raised when an API request fails due to an authentication error
    """
    pass