"""Shared exceptions for sn-image-base.""" from __future__ import annotations class U1BaseError(Exception): """Base exception for sn-image-base.""" DEFAULT_MESSAGE = "An error occurred in the sn-image-base skill." def __init__(self, message: str | None = None) -> None: if message is None: message = self.DEFAULT_MESSAGE super().__init__(message) class BadConfigurationError(U1BaseError): """Raised when the configuration is invalid.""" DEFAULT_MESSAGE = "The configuration is invalid." class MissingApiKeyError(BadConfigurationError): """Raised when API key is not provided via CLI argument or environment variable.""" DEFAULT_MESSAGE = ( "API key is required but was not provided. " "Set SN_API_KEY, or set SN_IMAGE_GEN_API_KEY only for an image-generation-specific " "override, or pass --api-key explicitly." ) class InvalidBaseUrlError(BadConfigurationError): """Raised when base URL is not provided via CLI argument or environment variable.""" DEFAULT_MESSAGE = ( "Base URL is required but was not provided. " "Set SN_IMAGE_GEN_BASE_URL or SN_BASE_URL, or pass --base-url explicitly." )