Source code for ds_resource_plugin_py_lib.common.resource.errors
"""
**File:** ``errors.py``
**Region:** ``ds_resource_plugin_py_lib/common/resource``
Description
-----------
Exceptions for resources.
"""
from typing import Any
[docs]
class ResourceException(Exception):
"""Base exception for all resource-related errors."""
def __init__(
self,
message: str = "Resource operation failed",
code: str = "DS_RESOURCE_ERROR",
status_code: int = 500,
details: dict[str, Any] | None = None,
) -> None:
self.code = code
self.status_code = status_code
self.message = message
self.details = details or {}
super().__init__(self.message)
[docs]
class NotSupportedError(ResourceException):
"""Raised when a provider does not support an optional method."""
def __init__(
self,
message: str = "Operation not supported",
code: str = "DS_RESOURCE_NOT_SUPPORTED_ERROR",
status_code: int = 501,
details: dict[str, Any] | None = None,
) -> None:
super().__init__(message, code, status_code, details)
[docs]
class ValidationError(ResourceException):
"""Raised when input fails validation before reaching the backend."""
def __init__(
self,
message: str = "Validation failed",
code: str = "DS_RESOURCE_VALIDATION_ERROR",
status_code: int = 400,
details: dict[str, Any] | None = None,
) -> None:
super().__init__(message, code, status_code, details)