CoolFace
Apppublic

Jack1808/Claude_Code

sourceHugging Faceupdated 4mo agoView on Hugging Face
0likes
exceptions.py91 linesDownload Raw Back to providers
1"""Unified exception hierarchy for providers."""2 3from typing import Any4 5 6class ProviderError(Exception):7    """Base exception for all provider errors."""8 9    def __init__(10        self,11        message: str,12        status_code: int = 500,13        error_type: str = "api_error",14        raw_error: Any = None,15    ):16        super().__init__(message)17        self.message = message18        self.status_code = status_code19        self.error_type = error_type20        self.raw_error = raw_error21 22    def to_anthropic_format(self) -> dict:23        """Convert to Anthropic-compatible error response."""24        return {25            "type": "error",26            "error": {27                "type": self.error_type,28                "message": self.message,29            },30        }31 32 33class AuthenticationError(ProviderError):34    """Raised when API key is invalid or missing."""35 36    def __init__(self, message: str, raw_error: Any = None):37        super().__init__(38            message,39            status_code=401,40            error_type="authentication_error",41            raw_error=raw_error,42        )43 44 45class InvalidRequestError(ProviderError):46    """Raised when the request parameters are invalid."""47 48    def __init__(self, message: str, raw_error: Any = None):49        super().__init__(50            message,51            status_code=400,52            error_type="invalid_request_error",53            raw_error=raw_error,54        )55 56 57class RateLimitError(ProviderError):58    """Raised when rate limit is exceeded."""59 60    def __init__(self, message: str, raw_error: Any = None):61        super().__init__(62            message,63            status_code=429,64            error_type="rate_limit_error",65            raw_error=raw_error,66        )67 68 69class OverloadedError(ProviderError):70    """Raised when the provider is overloaded."""71 72    def __init__(self, message: str, raw_error: Any = None):73        super().__init__(74            message,75            status_code=529,76            error_type="overloaded_error",77            raw_error=raw_error,78        )79 80 81class APIError(ProviderError):82    """Raised when the provider returns a generic API error."""83 84    def __init__(self, message: str, status_code: int = 500, raw_error: Any = None):85        super().__init__(86            message,87            status_code=status_code,88            error_type="api_error",89            raw_error=raw_error,90        )91