eric7/Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py

branch
eric7
changeset 8808
033fa34447d0
parent 8802
129a973fc33e
child 8881
54e42bc2437a
--- a/eric7/Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py	Sat Dec 04 17:41:18 2021 +0100
+++ b/eric7/Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py	Sat Dec 04 18:06:17 2021 +0100
@@ -405,6 +405,35 @@
         self.__statistics["_IssuesFixed"] = 0
         self.__statistics["_SecurityOK"] = 0
     
+    def __getBanRelativeImportsValue(self):
+        """
+        Private method to get the value corresponding the selected button.
+        
+        @return value for the BanRelativeImports argument
+        @rtype str
+        """
+        if self.banParentsButton.isChecked():
+            return "parents"
+        elif self.banAllButton.isChecked():
+            return "true"
+        else:
+            return ""
+    
+    def __setBanRelativeImports(self, value):
+        """
+        Private method to set the button according to the ban relative imports
+        setting.
+        
+        @param value value of the ban relative imports setting
+        @type str
+        """
+        if value == "parents":
+            self.banParentsButton.setChecked(True)
+        elif value == "true":
+            self.banAllButton.setChecked(True)
+        else:
+            self.allowAllButton.setChecked(True)
+    
     def prepare(self, fileList, project):
         """
         Public method to prepare the dialog with a list of filenames.
@@ -549,6 +578,8 @@
         if "ImportsChecker" not in self.__data:
             self.__data["ImportsChecker"] = {
                 "ApplicationPackageNames": [],
+                "BannedModules": [],
+                "BanRelativeImports": "",
             }
         
         self.__initCategoriesList(self.__data["EnabledCheckerCategories"])
@@ -815,6 +846,9 @@
             importsArgs = {
                 "ApplicationPackageNames":
                     sorted(self.appPackagesEdit.toPlainText().split()),
+                "BannedModules":
+                    sorted(self.bannedModulesEdit.toPlainText().split()),
+                "BanRelativeImports": self.__getBanRelativeImportsValue(),
             }
             
             self.__options = [excludeMessages, includeMessages, repeatMessages,
@@ -1251,7 +1285,10 @@
                 },
                 "ImportsChecker": {
                     "ApplicationPackageNames":
-                        sorted(self.appPackagesEdit.toPlainText().split())
+                        sorted(self.appPackagesEdit.toPlainText().split()),
+                    "BannedModules":
+                        sorted(self.bannedModulesEdit.toPlainText().split()),
+                    "BanRelativeImports": self.__getBanRelativeImportsValue(),
                 },
             }
             if (
@@ -1599,6 +1636,12 @@
         self.appPackagesEdit.setPlainText(" ".join(
             sorted(Preferences.toList(Preferences.getSettings().value(
                 "PEP8/ApplicationPackageNames", [])))))
+        self.bannedModulesEdit.setPlainText(" ".join(
+            sorted(Preferences.toList(Preferences.getSettings().value(
+                "PEP8/BannedModules", [])))))
+        self.__setBanRelativeImports(
+            Preferences.getSettings().value(
+                "PEP8/BanRelativeImports", ""))
         
         self.__cleanupData()
     
@@ -1740,6 +1783,12 @@
         Preferences.getSettings().setValue(
             "PEP8/ApplicationPackageNames",
             sorted(self.appPackagesEdit.toPlainText().split()))
+        Preferences.getSettings().setValue(
+            "PEP8/BannedModules",
+            sorted(self.bannedModulesEdit.toPlainText().split()))
+        Preferences.getSettings().setValue(
+            "PEP8/BanRelativeImports",
+            self.__getBanRelativeImportsValue())
     
     @pyqtSlot()
     def on_resetDefaultButton_clicked(self):
@@ -1868,6 +1917,10 @@
         # Imports Checker
         Preferences.getSettings().setValue(
             "PEP8/ApplicationPackageNames", [])
+        Preferences.getSettings().setValue(
+            "PEP8/BannedModules", [])
+        Preferences.getSettings().setValue(
+            "PEP8/BanRelativeImports", "")
         
         # Update UI with default values
         self.on_loadDefaultButton_clicked()

eric ide

mercurial