semantic checker script update
This commit is contained in:
@@ -14,9 +14,14 @@ from typing import Optional, Dict, Any, Union
|
||||
# @PARAM: message (str) - Сообщение об ошибке.
|
||||
# @PARAM: context (Optional[Dict[str, Any]]) - Дополнительный контекст ошибки.
|
||||
class SupersetToolError(Exception):
|
||||
# [DEF:__init__:Function]
|
||||
# @PURPOSE: Initializes the base tool error.
|
||||
# @PRE: message is a string, context is optional dict.
|
||||
# @POST: Error is initialized with combined message and context.
|
||||
def __init__(self, message: str, context: Optional[Dict[str, Any]] = None):
|
||||
self.context = context or {}
|
||||
super().__init__(f"{message} | Context: {self.context}")
|
||||
# [/DEF:__init__:Function]
|
||||
# [/DEF:SupersetToolError:Class]
|
||||
|
||||
# [DEF:AuthenticationError:Class]
|
||||
@@ -25,8 +30,13 @@ class SupersetToolError(Exception):
|
||||
# @PARAM: message (str) - Сообщение об ошибке.
|
||||
# @PARAM: context (Any) - Дополнительный контекст ошибки.
|
||||
class AuthenticationError(SupersetToolError):
|
||||
# [DEF:__init__:Function]
|
||||
# @PURPOSE: Initializes an authentication error.
|
||||
# @PRE: Optional message and context.
|
||||
# @POST: Error is initialized with authentication context.
|
||||
def __init__(self, message: str = "Authentication failed", **context: Any):
|
||||
super().__init__(f"[AUTH_FAILURE] {message}", context={"type": "authentication", **context})
|
||||
# [/DEF:__init__:Function]
|
||||
# [/DEF:AuthenticationError:Class]
|
||||
|
||||
# [DEF:PermissionDeniedError:Class]
|
||||
@@ -36,9 +46,14 @@ class AuthenticationError(SupersetToolError):
|
||||
# @PARAM: required_permission (Optional[str]) - Требуемое разрешение.
|
||||
# @PARAM: context (Any) - Дополнительный контекст ошибки.
|
||||
class PermissionDeniedError(AuthenticationError):
|
||||
# [DEF:__init__:Function]
|
||||
# @PURPOSE: Initializes a permission denied error.
|
||||
# @PRE: Optional message, permission string, and context.
|
||||
# @POST: Error is initialized with permission details.
|
||||
def __init__(self, message: str = "Permission denied", required_permission: Optional[str] = None, **context: Any):
|
||||
full_message = f"Permission denied: {required_permission}" if required_permission else message
|
||||
super().__init__(full_message, context={"required_permission": required_permission, **context})
|
||||
# [/DEF:__init__:Function]
|
||||
# [/DEF:PermissionDeniedError:Class]
|
||||
|
||||
# [DEF:SupersetAPIError:Class]
|
||||
@@ -47,8 +62,13 @@ class PermissionDeniedError(AuthenticationError):
|
||||
# @PARAM: message (str) - Сообщение об ошибке.
|
||||
# @PARAM: context (Any) - Дополнительный контекст ошибки.
|
||||
class SupersetAPIError(SupersetToolError):
|
||||
# [DEF:__init__:Function]
|
||||
# @PURPOSE: Initializes a Superset API error.
|
||||
# @PRE: Optional message and context.
|
||||
# @POST: Error is initialized with API failure context.
|
||||
def __init__(self, message: str = "Superset API error", **context: Any):
|
||||
super().__init__(f"[API_FAILURE] {message}", context={"type": "api_call", **context})
|
||||
# [/DEF:__init__:Function]
|
||||
# [/DEF:SupersetAPIError:Class]
|
||||
|
||||
# [DEF:ExportError:Class]
|
||||
@@ -57,8 +77,13 @@ class SupersetAPIError(SupersetToolError):
|
||||
# @PARAM: message (str) - Сообщение об ошибке.
|
||||
# @PARAM: context (Any) - Дополнительный контекст ошибки.
|
||||
class ExportError(SupersetAPIError):
|
||||
# [DEF:__init__:Function]
|
||||
# @PURPOSE: Initializes an export error.
|
||||
# @PRE: Optional message and context.
|
||||
# @POST: Error is initialized with export failure subtype.
|
||||
def __init__(self, message: str = "Dashboard export failed", **context: Any):
|
||||
super().__init__(f"[EXPORT_FAILURE] {message}", context={"subtype": "export", **context})
|
||||
# [/DEF:__init__:Function]
|
||||
# [/DEF:ExportError:Class]
|
||||
|
||||
# [DEF:DashboardNotFoundError:Class]
|
||||
@@ -68,8 +93,13 @@ class ExportError(SupersetAPIError):
|
||||
# @PARAM: message (str) - Сообщение об ошибке.
|
||||
# @PARAM: context (Any) - Дополнительный контекст ошибки.
|
||||
class DashboardNotFoundError(SupersetAPIError):
|
||||
# [DEF:__init__:Function]
|
||||
# @PURPOSE: Initializes a dashboard not found error.
|
||||
# @PRE: dashboard_id_or_slug is provided.
|
||||
# @POST: Error is initialized with resource identification.
|
||||
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}", context={"subtype": "not_found", "resource_id": dashboard_id_or_slug, **context})
|
||||
# [/DEF:__init__:Function]
|
||||
# [/DEF:DashboardNotFoundError:Class]
|
||||
|
||||
# [DEF:DatasetNotFoundError:Class]
|
||||
@@ -79,8 +109,13 @@ class DashboardNotFoundError(SupersetAPIError):
|
||||
# @PARAM: message (str) - Сообщение об ошибке.
|
||||
# @PARAM: context (Any) - Дополнительный контекст ошибки.
|
||||
class DatasetNotFoundError(SupersetAPIError):
|
||||
# [DEF:__init__:Function]
|
||||
# @PURPOSE: Initializes a dataset not found error.
|
||||
# @PRE: dataset_id_or_slug is provided.
|
||||
# @POST: Error is initialized with resource identification.
|
||||
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}", context={"subtype": "not_found", "resource_id": dataset_id_or_slug, **context})
|
||||
# [/DEF:__init__:Function]
|
||||
# [/DEF:DatasetNotFoundError:Class]
|
||||
|
||||
# [DEF:InvalidZipFormatError:Class]
|
||||
@@ -90,8 +125,13 @@ class DatasetNotFoundError(SupersetAPIError):
|
||||
# @PARAM: file_path (Optional[Union[str, Path]]) - Путь к файлу.
|
||||
# @PARAM: context (Any) - Дополнительный контекст ошибки.
|
||||
class InvalidZipFormatError(SupersetToolError):
|
||||
# [DEF:__init__:Function]
|
||||
# @PURPOSE: Initializes an invalid ZIP format error.
|
||||
# @PRE: Optional message, file path, and context.
|
||||
# @POST: Error is initialized with file validation context.
|
||||
def __init__(self, message: str = "Invalid ZIP format or content", file_path: Optional[Union[str, Path]] = None, **context: Any):
|
||||
super().__init__(f"[FILE_ERROR] {message}", context={"type": "file_validation", "file_path": str(file_path) if file_path else "N/A", **context})
|
||||
# [/DEF:__init__:Function]
|
||||
# [/DEF:InvalidZipFormatError:Class]
|
||||
|
||||
# [DEF:NetworkError:Class]
|
||||
@@ -100,6 +140,10 @@ class InvalidZipFormatError(SupersetToolError):
|
||||
# @PARAM: message (str) - Сообщение об ошибке.
|
||||
# @PARAM: context (Any) - Дополнительный контекст ошибки.
|
||||
class NetworkError(SupersetToolError):
|
||||
# [DEF:__init__:Function]
|
||||
# @PURPOSE: Initializes a network error.
|
||||
# @PRE: Optional message and context.
|
||||
# @POST: Error is initialized with network failure context.
|
||||
def __init__(self, message: str = "Network connection failed", **context: Any):
|
||||
super().__init__(f"[NETWORK_FAILURE] {message}", context={"type": "network", **context})
|
||||
# [/DEF:NetworkError:Class]
|
||||
|
||||
Reference in New Issue
Block a user