Files
Nat20-Notes/backend/app/errors.py

30 lines
1.1 KiB
Python

class PipelineError(Exception):
"""Base class for pipeline failures. `stage` and `message` are shown to the
user directly; the original exception (if any) is kept for logs only."""
def __init__(self, stage: str, message: str, cause: Exception | None = None):
self.stage = stage
self.message = message
self.cause = cause
super().__init__(f"[{stage}] {message}")
class AudioExtractionError(PipelineError):
def __init__(self, message: str, cause: Exception | None = None):
super().__init__("audio_extraction", message, cause)
class TranscriptionError(PipelineError):
def __init__(self, message: str, cause: Exception | None = None):
super().__init__("transcription", message, cause)
class DiarizationError(PipelineError):
def __init__(self, message: str, cause: Exception | None = None):
super().__init__("diarization", message, cause)
class SummarizationError(PipelineError):
def __init__(self, message: str, cause: Exception | None = None):
super().__init__("summarization", message, cause)