Source code for darca_repository.exceptions

# exceptions.py
# License: MIT

from darca_exception import DarcaException


[docs] class RepositoryException(DarcaException): """ General-purpose exception for repository-related failures. """ def __init__( self, message: str, error_code: str = "REPOSITORY_ERROR", metadata: dict | None = None, cause: Exception | None = None, ): super().__init__( message=message, error_code=error_code, metadata=metadata, cause=cause, )
[docs] class RepositoryNotFound(RepositoryException): def __init__(self, name: str): super().__init__( message=f"Repository '{name}' not found.", error_code="REPOSITORY_NOT_FOUND", metadata={"repository": name}, )
[docs] class RepositoryNotFoundError(RepositoryException): def __init__(self, name: str): super().__init__( message=f"Repository '{name}' not found.", error_code="REPOSITORY_NOT_FOUND_ERROR", metadata={"repository": name}, )
[docs] class RepositoryConnectionError(RepositoryException): def __init__( self, name: str, *, message: str = None, cause: Exception = None ): super().__init__( message=message or f"Connection failed to repository '{name}'.", error_code="REPOSITORY_CONNECTION_ERROR", metadata={"repository": name}, cause=cause, )
[docs] class RepositoryAccessDenied(RepositoryException): def __init__(self, name: str, user: str | None = None): super().__init__( message=f"Access denied to repository '{name}' for user '{user}'.", error_code="REPOSITORY_ACCESS_DENIED", metadata={"repository": name, "user": user}, )
[docs] class RepositoryValidationError(RepositoryException): """Raised when a repository fails validation checks.""" def __init__(self, message: str, *, cause: Exception = None): super().__init__( message=message, error_code="REPOSITORY_VALIDATION_ERROR", metadata=None, cause=cause, )