| 
                        123456789101112131415161718192021222324252627 | 
                        - import logging
 - from functools import wraps
 - 
 - import anthropic
 - 
 - from core.llm.error import LLMAPIConnectionError, LLMAPIUnavailableError, LLMRateLimitError, LLMAuthorizationError, \
 -     LLMBadRequestError
 - 
 - 
 - def handle_anthropic_exceptions(func):
 -     @wraps(func)
 -     def wrapper(*args, **kwargs):
 -         try:
 -             return func(*args, **kwargs)
 -         except anthropic.APIConnectionError as e:
 -             logging.exception("Failed to connect to Anthropic API.")
 -             raise LLMAPIConnectionError(f"Anthropic: The server could not be reached, cause: {e.__cause__}")
 -         except anthropic.RateLimitError:
 -             raise LLMRateLimitError("Anthropic: A 429 status code was received; we should back off a bit.")
 -         except anthropic.AuthenticationError as e:
 -             raise LLMAuthorizationError(f"Anthropic: {e.message}")
 -         except anthropic.BadRequestError as e:
 -             raise LLMBadRequestError(f"Anthropic: {e.message}")
 -         except anthropic.APIStatusError as e:
 -             raise LLMAPIUnavailableError(f"Anthropic: code: {e.status_code}, cause: {e.message}")
 - 
 -     return wrapper
 
 
  |