| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 | 
							- from collections.abc import Mapping
 - 
 - from pydantic import TypeAdapter
 - 
 - from extensions.ext_logging import get_request_id
 - 
 - 
 - class PluginDaemonError(Exception):
 -     """Base class for all plugin daemon errors."""
 - 
 -     def __init__(self, description: str) -> None:
 -         self.description = description
 - 
 -     def __str__(self) -> str:
 -         # returns the class name and description
 -         return f"req_id: {get_request_id()} {self.__class__.__name__}: {self.description}"
 - 
 - 
 - class PluginDaemonInternalError(PluginDaemonError):
 -     pass
 - 
 - 
 - class PluginDaemonClientSideError(PluginDaemonError):
 -     pass
 - 
 - 
 - class PluginDaemonInternalServerError(PluginDaemonInternalError):
 -     description: str = "Internal Server Error"
 - 
 - 
 - class PluginDaemonUnauthorizedError(PluginDaemonInternalError):
 -     description: str = "Unauthorized"
 - 
 - 
 - class PluginDaemonNotFoundError(PluginDaemonInternalError):
 -     description: str = "Not Found"
 - 
 - 
 - class PluginDaemonBadRequestError(PluginDaemonClientSideError):
 -     description: str = "Bad Request"
 - 
 - 
 - class PluginInvokeError(PluginDaemonClientSideError):
 -     description: str = "Invoke Error"
 - 
 -     def _get_error_object(self) -> Mapping:
 -         try:
 -             return TypeAdapter(Mapping).validate_json(self.description)
 -         except Exception:
 -             return {}
 - 
 -     def get_error_type(self) -> str:
 -         return self._get_error_object().get("error_type", "unknown")
 - 
 -     def get_error_message(self) -> str:
 -         try:
 -             return self._get_error_object().get("message", "unknown")
 -         except Exception:
 -             return self.description
 - 
 - 
 - class PluginUniqueIdentifierError(PluginDaemonClientSideError):
 -     description: str = "Unique Identifier Error"
 - 
 - 
 - class PluginNotFoundError(PluginDaemonClientSideError):
 -     description: str = "Plugin Not Found"
 - 
 - 
 - class PluginPermissionDeniedError(PluginDaemonClientSideError):
 -     description: str = "Permission Denied"
 
 
  |