eric6/PluginManager/PluginExceptions.py

changeset 6942
2602857055c5
parent 6645
ad476851d7e0
child 7192
a22eee00b052
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric6/PluginManager/PluginExceptions.py	Sun Apr 14 15:09:21 2019 +0200
@@ -0,0 +1,163 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2007 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing the exceptions raised by the plugin system.
+"""
+
+from __future__ import unicode_literals
+
+from PyQt5.QtCore import QCoreApplication
+
+
+class PluginError(Exception):
+    """
+    Class defining a special error for the plugin classes.
+    """
+    def __init__(self):
+        """
+        Constructor
+        """
+        self._errorMessage = QCoreApplication.translate(
+            "PluginError", "Unspecific plugin error.")
+        
+    def __repr__(self):
+        """
+        Special method returning a representation of the exception.
+        
+        @return string representing the error message
+        """
+        return str(self._errorMessage)
+        
+    def __str__(self):
+        """
+        Special method returning a string representation of the exception.
+        
+        @return string representing the error message
+        """
+        return str(self._errorMessage)
+
+
+class PluginPathError(PluginError):
+    """
+    Class defining an error raised, when the plugin paths were not found and
+    could not be created.
+    """
+    def __init__(self, msg=None):
+        """
+        Constructor
+        
+        @param msg message to be used by the exception (string)
+        """
+        if msg:
+            self._errorMessage = msg
+        else:
+            self._errorMessage = QCoreApplication.translate(
+                "PluginError",
+                "Plugin paths not found or not creatable.")
+
+
+class PluginModulesError(PluginError):
+    """
+    Class defining an error raised, when no plugin modules were found.
+    """
+    def __init__(self):
+        """
+        Constructor
+        """
+        self._errorMessage = QCoreApplication.translate(
+            "PluginError", "No plugin modules found.")
+
+
+class PluginLoadError(PluginError):
+    """
+    Class defining an error raised, when there was an error during plugin
+    loading.
+    """
+    def __init__(self, name):
+        """
+        Constructor
+        
+        @param name name of the plugin module (string)
+        """
+        self._errorMessage = \
+            QCoreApplication.translate(
+                "PluginError",
+                "Error loading plugin module: {0}")\
+            .format(name)
+
+
+class PluginActivationError(PluginError):
+    """
+    Class defining an error raised, when there was an error during plugin
+    activation.
+    """
+    def __init__(self, name):
+        """
+        Constructor
+        
+        @param name name of the plugin module (string)
+        """
+        self._errorMessage = \
+            QCoreApplication.translate(
+                "PluginError",
+                "Error activating plugin module: {0}")\
+            .format(name)
+
+
+class PluginModuleFormatError(PluginError):
+    """
+    Class defining an error raised, when the plugin module is invalid.
+    """
+    def __init__(self, name, missing):
+        """
+        Constructor
+        
+        @param name name of the plugin module (string)
+        @param missing description of the missing element (string)
+        """
+        self._errorMessage = \
+            QCoreApplication.translate(
+                "PluginError",
+                "The plugin module {0} is missing {1}.")\
+            .format(name, missing)
+
+
+class PluginClassFormatError(PluginError):
+    """
+    Class defining an error raised, when the plugin module's class is invalid.
+    """
+    def __init__(self, name, class_, missing):
+        """
+        Constructor
+        
+        @param name name of the plugin module (string)
+        @param class_ name of the class not satisfying the requirements
+            (string)
+        @param missing description of the missing element (string)
+        """
+        self._errorMessage = \
+            QCoreApplication.translate(
+                "PluginError",
+                "The plugin class {0} of module {1} is missing {2}.")\
+            .format(class_, name, missing)
+
+
+class PluginPy2IncompatibleError(PluginError):
+    """
+    Class defining an error raised, when the plugin is incompatible
+    with Python2.
+    """
+    def __init__(self, name):
+        """
+        Constructor
+        
+        @param name name of the plugin module (string)
+        """
+        self._errorMessage = \
+            QCoreApplication.translate(
+                "PluginError",
+                "The plugin module {0} is not compatible with Python2.")\
+            .format(name)

eric ide

mercurial