Changes committed

This commit is contained in:
2026-06-01 21:49:53 +05:30
parent 8537c653c1
commit 3163bb213e
387 changed files with 21940 additions and 107 deletions

View File

@@ -0,0 +1,106 @@
from __future__ import annotations
from typing import Any
class DocEngineException(Exception):
"""Base exception for DocEngine application."""
def __init__(self, detail: str, status_code: int = 500, extra: dict[str, Any] | None = None) -> None:
self.detail = detail
self.status_code = status_code
self.extra = extra or {}
super().__init__(self.detail)
class NotFoundError(DocEngineException):
"""Resource not found."""
def __init__(self, resource: str, identifier: str) -> None:
super().__init__(
detail=f"{resource} with identifier '{identifier}' not found",
status_code=404,
)
self.resource = resource
self.identifier = identifier
class DuplicateError(DocEngineException):
"""Resource already exists."""
def __init__(self, resource: str, field: str, value: str) -> None:
super().__init__(
detail=f"{resource} with {field} '{value}' already exists",
status_code=409,
)
class ValidationError(DocEngineException):
"""Input validation error."""
def __init__(self, detail: str, errors: list[dict[str, Any]] | None = None) -> None:
super().__init__(detail=detail, status_code=422)
self.errors = errors or []
class AuthenticationError(DocEngineException):
"""Authentication failed."""
def __init__(self, detail: str = "Authentication failed") -> None:
super().__init__(detail=detail, status_code=401)
class AuthorizationError(DocEngineException):
"""Authorization failed."""
def __init__(self, detail: str = "Insufficient permissions") -> None:
super().__init__(detail=detail, status_code=403)
class StorageError(DocEngineException):
"""Storage operation failed."""
def __init__(self, detail: str) -> None:
super().__init__(detail=detail, status_code=500)
class ProcessingError(DocEngineException):
"""Document processing failed."""
def __init__(self, detail: str, document_id: str | None = None) -> None:
super().__init__(detail=detail, status_code=500)
self.document_id = document_id
class TemplateError(DocEngineException):
"""Template operation failed."""
def __init__(self, detail: str) -> None:
super().__init__(detail=detail, status_code=500)
class RateLimitError(DocEngineException):
"""Rate limit exceeded."""
def __init__(self, detail: str = "Rate limit exceeded. Please try again later.") -> None:
super().__init__(detail=detail, status_code=429)
class FileSizeError(DocEngineException):
"""File exceeds maximum allowed size."""
def __init__(self, max_size_mb: int) -> None:
super().__init__(
detail=f"File size exceeds maximum allowed size of {max_size_mb}MB",
status_code=413,
)
class UnsupportedFileTypeError(DocEngineException):
"""File type not supported."""
def __init__(self, file_type: str) -> None:
super().__init__(
detail=f"File type '{file_type}' is not supported. Supported types: jpg, jpeg, png, tiff, pdf",
status_code=415,
)