archive_exports rework
This commit is contained in:
@@ -35,6 +35,8 @@ class AuthenticationError(SupersetToolError):
|
||||
"""[AUTH] Ошибки аутентификации (неверные учетные данные) или авторизации (проблемы с сессией).
|
||||
@context: url, username, error_detail (опционально).
|
||||
"""
|
||||
# [CONTRACT]
|
||||
# Description: Исключение, возникающее при ошибках аутентификации в Superset API.
|
||||
def __init__(self, message: str = "Authentication failed", **context: Any):
|
||||
super().__init__(
|
||||
f"[AUTH_FAILURE] {message}",
|
||||
@@ -60,6 +62,8 @@ class SupersetAPIError(SupersetToolError):
|
||||
@semantic: Для ошибок, возвращаемых Superset API, или проблем с парсингом ответа.
|
||||
@context: endpoint, method, status_code, response_body (опционально), error_message (из API).
|
||||
"""
|
||||
# [CONTRACT]
|
||||
# Description: Исключение, возникающее при получении ошибки от Superset API (статус код >= 400).
|
||||
def __init__(self, message: str = "Superset API error", **context: Any):
|
||||
super().__init__(
|
||||
f"[API_FAILURE] {message}",
|
||||
@@ -80,12 +84,27 @@ class DashboardNotFoundError(SupersetAPIError):
|
||||
@semantic: Соответствует HTTP 404 Not Found.
|
||||
@context: dashboard_id_or_slug, url.
|
||||
"""
|
||||
# [CONTRACT]
|
||||
# Description: Исключение, специфичное для случая, когда дашборд не найден (статус 404).
|
||||
def __init__(self, dashboard_id_or_slug: Union[int, str], message: str = "Dashboard not found", **context: Any):
|
||||
super().__init__(
|
||||
f"[NOT_FOUND] Dashboard '{dashboard_id_or_slug}' {message}",
|
||||
{"subtype": "not_found", "resource_id": dashboard_id_or_slug, **context}
|
||||
)
|
||||
|
||||
class DatasetNotFoundError(SupersetAPIError):
|
||||
"""[API:404] Запрашиваемый набор данных не существует.
|
||||
@semantic: Соответствует HTTP 404 Not Found.
|
||||
@context: dataset_id_or_slug, url.
|
||||
"""
|
||||
# [CONTRACT]
|
||||
# Description: Исключение, специфичное для случая, когда набор данных не найден (статус 404).
|
||||
def __init__(self, dataset_id_or_slug: Union[int, str], message: str = "Dataset not found", **context: Any):
|
||||
super().__init__(
|
||||
f"[NOT_FOUND] Dataset '{dataset_id_or_slug}' {message}",
|
||||
{"subtype": "not_found", "resource_id": dataset_id_or_slug, **context}
|
||||
)
|
||||
|
||||
# [ERROR-SUBCLASS] Детализированные ошибки обработки файлов
|
||||
class InvalidZipFormatError(SupersetToolError):
|
||||
"""[FILE:ZIP] Некорректный формат ZIP-архива или содержимого для импорта/экспорта.
|
||||
@@ -104,8 +123,31 @@ class NetworkError(SupersetToolError):
|
||||
@semantic: Ошибки, связанные с невозможностью установить или поддерживать сетевое соединение.
|
||||
@context: url, original_exception (опционально), timeout (опционально).
|
||||
"""
|
||||
# [CONTRACT]
|
||||
# Description: Исключение, возникающее при сетевых ошибках во время взаимодействия с Superset API.
|
||||
def __init__(self, message: str = "Network connection failed", **context: Any):
|
||||
super().__init__(
|
||||
f"[NETWORK_FAILURE] {message}",
|
||||
{"type": "network", **context}
|
||||
)
|
||||
|
||||
class FileOperationError(SupersetToolError):
|
||||
"""
|
||||
# [CONTRACT]
|
||||
# Description: Исключение, возникающее при ошибках файловых операций (чтение, запись, архивирование).
|
||||
"""
|
||||
pass
|
||||
|
||||
class InvalidFileStructureError(FileOperationError):
|
||||
"""
|
||||
# [CONTRACT]
|
||||
# Description: Исключение, возникающее при обнаружении некорректной структуры файлов/директорий.
|
||||
"""
|
||||
pass
|
||||
|
||||
class ConfigurationError(SupersetToolError):
|
||||
"""
|
||||
# [CONTRACT]
|
||||
# Description: Исключение, возникающее при ошибках в конфигурации инструмента.
|
||||
"""
|
||||
pass
|
||||
|
||||
Reference in New Issue
Block a user