| """ | |
| Custom exceptions and error handling for the application. | |
| """ | |
| from typing import Any, Dict, Optional | |
| class DeepFakeDetectorError(Exception): | |
| """Base exception for DeepFake Detector application.""" | |
| def __init__( | |
| self, | |
| message: str, | |
| details: Optional[Dict[str, Any]] = None | |
| ): | |
| self.message = message | |
| self.details = details or {} | |
| super().__init__(self.message) | |
| class ModelNotLoadedError(DeepFakeDetectorError): | |
| """Raised when attempting to use a model that hasn't been loaded.""" | |
| pass | |
| class ModelNotFoundError(DeepFakeDetectorError): | |
| """Raised when a requested model is not found in the registry.""" | |
| pass | |
| class HuggingFaceDownloadError(DeepFakeDetectorError): | |
| """Raised when downloading from Hugging Face fails.""" | |
| pass | |
| class ImageProcessingError(DeepFakeDetectorError): | |
| """Raised when image processing/decoding fails.""" | |
| pass | |
| class InferenceError(DeepFakeDetectorError): | |
| """Raised when model inference fails.""" | |
| pass | |
| class FusionError(DeepFakeDetectorError): | |
| """Raised when fusion prediction fails.""" | |
| pass | |
| class ConfigurationError(DeepFakeDetectorError): | |
| """Raised when configuration is invalid or missing.""" | |
| pass | |