"""
**File:** ``errors.py``
**Region:** ``ds_resource_plugin_py_lib/common/resource/dataset``
Description
-----------
Exceptions for datasets.
"""
from typing import Any
from ..errors import ResourceException
[docs]
class DatasetException(ResourceException):
"""Base exception for all dataset-related errors."""
def __init__(
self,
message: str = "Dataset operation failed",
code: str = "DS_DATASET_ERROR",
status_code: int = 500,
details: dict[str, Any] | None = None,
) -> None:
super().__init__(message, code, status_code, details)
[docs]
class MismatchedLinkedServiceError(DatasetException):
"""Raised when a linked service does not match the dataset type."""
def __init__(
self,
message: str = "Mismatched linked service",
code: str = "DS_DATASET_LINKED_SERVICE_MISMATCHED_ERROR",
status_code: int = 400,
details: dict[str, Any] | None = None,
) -> None:
super().__init__(message, code, status_code, details)
[docs]
class UnsupportedDatasetTypeError(DatasetException):
"""Raised when a dataset type is not supported."""
def __init__(
self,
message: str = "Dataset type is not supported",
code: str = "DS_DATASET_UNSUPPORTED_TYPE_ERROR",
status_code: int = 400,
details: dict[str, Any] | None = None,
) -> None:
super().__init__(message, code, status_code, details)
[docs]
class InvalidDatasetClassError(DatasetException):
"""Raised when a dataset type is invalid."""
def __init__(
self,
message: str = "Invalid dataset type",
code: str = "DS_DATASET_INVALID_CLASS_ERROR",
status_code: int = 400,
details: dict[str, Any] | None = None,
) -> None:
super().__init__(message, code, status_code, details)
[docs]
class NotFoundError(DatasetException):
"""Raised when a resource is not found."""
def __init__(
self,
message: str = "Resource not found",
code: str = "DS_DATASET_NOT_FOUND_ERROR",
status_code: int = 404,
details: dict[str, Any] | None = None,
) -> None:
super().__init__(message, code, status_code, details)
[docs]
class ReadError(DatasetException):
"""Raised when a read operation fails."""
def __init__(
self,
message: str = "Read operation failed",
code: str = "DS_DATASET_READ_ERROR",
status_code: int = 500,
details: dict[str, Any] | None = None,
) -> None:
super().__init__(message, code, status_code, details)
[docs]
class CreateError(DatasetException):
"""Raised when a create operation fails."""
def __init__(
self,
message: str = "Create operation failed",
code: str = "DS_DATASET_CREATE_ERROR",
status_code: int = 500,
details: dict[str, Any] | None = None,
) -> None:
super().__init__(message, code, status_code, details)
[docs]
class UpdateError(DatasetException):
"""Raised when a update operation fails."""
def __init__(
self,
message: str = "Update operation failed",
code: str = "DS_DATASET_UPDATE_ERROR",
status_code: int = 500,
details: dict[str, Any] | None = None,
) -> None:
super().__init__(message, code, status_code, details)
[docs]
class DeleteError(DatasetException):
"""Raised when a delete operation fails."""
def __init__(
self,
message: str = "Delete operation failed",
code: str = "DS_DATASET_DELETE_ERROR",
status_code: int = 500,
details: dict[str, Any] | None = None,
) -> None:
super().__init__(message, code, status_code, details)
[docs]
class RenameError(DatasetException):
"""Raised when a rename operation fails."""
def __init__(
self,
message: str = "Rename operation failed",
code: str = "DS_DATASET_RENAME_ERROR",
status_code: int = 500,
details: dict[str, Any] | None = None,
) -> None:
super().__init__(message, code, status_code, details)
[docs]
class UpsertError(DatasetException):
"""Raised when an upsert operation fails."""
def __init__(
self,
message: str = "Upsert operation failed",
code: str = "DS_DATASET_UPSERT_ERROR",
status_code: int = 500,
details: dict[str, Any] | None = None,
) -> None:
super().__init__(message, code, status_code, details)
[docs]
class PurgeError(DatasetException):
"""Raised when a purge operation fails."""
def __init__(
self,
message: str = "Purge operation failed",
code: str = "DS_DATASET_PURGE_ERROR",
status_code: int = 500,
details: dict[str, Any] | None = None,
) -> None:
super().__init__(message, code, status_code, details)
[docs]
class ListError(DatasetException):
"""Raised when a list operation fails."""
def __init__(
self,
message: str = "List operation failed",
code: str = "DS_DATASET_LIST_ERROR",
status_code: int = 500,
details: dict[str, Any] | None = None,
) -> None:
super().__init__(message, code, status_code, details)