src/eric7/Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py

branch
eric7
changeset 10052
041d0785dd42
parent 10050
3750abc45d5e
child 10053
9914b7b4b11c
--- a/src/eric7/Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py	Mon May 22 19:46:19 2023 +0200
+++ b/src/eric7/Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py	Mon May 22 19:53:41 2023 +0200
@@ -91,6 +91,7 @@
         "NO": QCoreApplication.translate("CheckerCategories", "Name Order"),
         "P": QCoreApplication.translate("CheckerCategories", "'pathlib' Usage"),
         "S": QCoreApplication.translate("CheckerCategories", "Security"),
+        "U": QCoreApplication.translate("CheckerCategories", "Unused"),
         "W": QCoreApplication.translate("CheckerCategories", "Warnings"),
         "Y": QCoreApplication.translate("CheckerCategories", "Simplify Code"),
     }
@@ -503,6 +504,19 @@
                 "SortIgnoringStyle": False,
                 "SortFromFirst": False,
             },
+            # Unused
+            # TODO: add 'IgnoreSlotMethods' (pyqtSlot, Slot)
+            "UnusedChecker": {
+                "IgnoreAbstract": False,
+                "IgnoreOverload": False,
+                "IgnoreOverride": False,
+                "IgnoreSlotMethods": False,
+                "IgnoreStubs": False,
+                "IgnoreVariadicNames": False,
+                "IgnoreLambdas": False,
+                "IgnoreNestedFunctions": False,
+                "IgnoreDunderMethods": False,
+            },
         }
 
         return defaults
@@ -723,6 +737,33 @@
             self.__data["NameOrderChecker"]["SortFromFirst"]
         )
 
+        # UnusedChecker
+        self.ignoreAbstractCheckBox.setChecked(
+            self.__data["UnusedChecker"]["IgnoreAbstract"]
+        )
+        self.ignoreOverloadCheckBox.setChecked(
+            self.__data["UnusedChecker"]["IgnoreOverload"]
+        )
+        self.ignoreOverrideCheckBox.setChecked(
+            self.__data["UnusedChecker"]["IgnoreOverride"]
+        )
+        self.ignoreStubsCheckBox.setChecked(self.__data["UnusedChecker"]["IgnoreStubs"])
+        self.ignoreVariadicNamesCheckBox.setChecked(
+            self.__data["UnusedChecker"]["IgnoreVariadicNames"]
+        )
+        self.ignoreLambdasCheckBox.setChecked(
+            self.__data["UnusedChecker"]["IgnoreLambdas"]
+        )
+        self.ignoreNestedFunctionsCheckBox.setChecked(
+            self.__data["UnusedChecker"]["IgnoreNestedFunctions"]
+        )
+        self.ignoreDunderMethodsCheckBox.setChecked(
+            self.__data["UnusedChecker"]["IgnoreDunderMethods"]
+        )
+        self.ignoreSlotsCheckBox.setChecked(
+            self.__data["UnusedChecker"]["IgnoreSlotMethods"]
+        )
+
         self.__cleanupData()
 
     def __prepareProgress(self):
@@ -915,6 +956,18 @@
                 "SortFromFirst": self.sortFromFirstCheckBox.isChecked(),
             }
 
+            unusedArgs = {
+                "IgnoreAbstract": self.ignoreAbstractCheckBox.isChecked(),
+                "IgnoreOverload": self.ignoreOverloadCheckBox.isChecked(),
+                "IgnoreOverride": self.ignoreOverrideCheckBox.isChecked(),
+                "IgnoreStubs": self.ignoreStubsCheckBox.isChecked(),
+                "IgnoreVariadicNames": self.ignoreVariadicNamesCheckBox.isChecked(),
+                "IgnoreLambdas": self.ignoreLambdasCheckBox.isChecked(),
+                "IgnoreNestedFunctions": self.ignoreNestedFunctionsCheckBox.isChecked(),
+                "IgnoreDunderMethods": self.ignoreDunderMethodsCheckBox.isChecked(),
+                "IgnoreSlotMethods": self.ignoreSlotsCheckBox.isChecked(),
+            }
+
             self.__options = [
                 excludeMessages,
                 includeMessages,
@@ -933,6 +986,7 @@
                 securityArgs,
                 importsArgs,
                 nameOrderArgs,
+                unusedArgs,
             ]
 
             # now go through all the files
@@ -1365,6 +1419,19 @@
                     "SortIgnoringStyle": self.sortIgnoreStyleCheckBox.isChecked(),
                     "SortFromFirst": self.sortFromFirstCheckBox.isChecked(),
                 },
+                "UnusedChecker": {
+                    "IgnoreAbstract": self.ignoreAbstractCheckBox.isChecked(),
+                    "IgnoreOverload": self.ignoreOverloadCheckBox.isChecked(),
+                    "IgnoreOverride": self.ignoreOverrideCheckBox.isChecked(),
+                    "IgnoreStubs": self.ignoreStubsCheckBox.isChecked(),
+                    "IgnoreVariadicNames": self.ignoreVariadicNamesCheckBox.isChecked(),
+                    "IgnoreLambdas": self.ignoreLambdasCheckBox.isChecked(),
+                    "IgnoreNestedFunctions": (
+                        self.ignoreNestedFunctionsCheckBox.isChecked()
+                    ),
+                    "IgnoreDunderMethods": self.ignoreDunderMethodsCheckBox.isChecked(),
+                    "IgnoreSlotMethods": self.ignoreSlotsCheckBox.isChecked(),
+                },
             }
             if json.dumps(data, sort_keys=True) != json.dumps(
                 self.__data, sort_keys=True
@@ -1944,6 +2011,80 @@
             )
         )
 
+        # Unused Checker
+        self.ignoreAbstractCheckBox.setChecked(
+            Preferences.toBool(
+                settings.value(
+                    "PEP8/UnusedIgnoreAbstract",
+                    defaultParameters["UnusedChecker"]["IgnoreAbstract"],
+                )
+            )
+        )
+        self.ignoreOverloadCheckBox.setChecked(
+            Preferences.toBool(
+                settings.value(
+                    "PEP8/UnusedIgnoreOverload",
+                    defaultParameters["UnusedChecker"]["IgnoreOverload"],
+                )
+            )
+        )
+        self.ignoreOverrideCheckBox.setChecked(
+            Preferences.toBool(
+                settings.value(
+                    "PEP8/UnusedIgnoreOverride",
+                    defaultParameters["UnusedChecker"]["IgnoreOverride"],
+                )
+            )
+        )
+        self.ignoreStubsCheckBox.setChecked(
+            Preferences.toBool(
+                settings.value(
+                    "PEP8/UnusedIgnoreStubs",
+                    defaultParameters["UnusedChecker"]["IgnoreStubs"],
+                )
+            )
+        )
+        self.ignoreVariadicNamesCheckBox.setChecked(
+            Preferences.toBool(
+                settings.value(
+                    "PEP8/UnusedIgnoreVariadicNames",
+                    defaultParameters["UnusedChecker"]["IgnoreVariadicNames"],
+                )
+            )
+        )
+        self.ignoreLambdasCheckBox.setChecked(
+            Preferences.toBool(
+                settings.value(
+                    "PEP8/UnusedIgnoreLambdas",
+                    defaultParameters["UnusedChecker"]["IgnoreLambdas"],
+                )
+            )
+        )
+        self.ignoreNestedFunctionsCheckBox.setChecked(
+            Preferences.toBool(
+                settings.value(
+                    "PEP8/UnusedIgnoreNestedFunctions",
+                    defaultParameters["UnusedChecker"]["IgnoreNestedFunctions"],
+                )
+            )
+        )
+        self.ignoreDunderMethodsCheckBox.setChecked(
+            Preferences.toBool(
+                settings.value(
+                    "PEP8/UnusedIgnoreDunderMethods",
+                    defaultParameters["UnusedChecker"]["IgnoreDunderMethods"],
+                )
+            )
+        )
+        self.ignoreSlotsCheckBox.setChecked(
+            Preferences.toBool(
+                settings.value(
+                    "PEP8/UnusedIgnoreSlotMethods",
+                    defaultParameters["UnusedChecker"]["IgnoreSlotMethods"],
+                )
+            )
+        )
+
         self.__cleanupData()
 
     @pyqtSlot()
@@ -2086,6 +2227,8 @@
         settings.setValue(
             "PEP8/BanRelativeImports", self.__getBanRelativeImportsValue()
         )
+
+        # Name Order Checker
         settings.setValue("PEP8/SortOrder", self.sortOrderComboBox.currentData())
         settings.setValue(
             "PEP8/SortCaseSensitive", self.sortCaseSensitiveCheckBox.isChecked()
@@ -2098,6 +2241,38 @@
         )
         settings.setValue("PEP8/SortFromFirst", self.sortFromFirstCheckBox.isChecked())
 
+        # Unused Checker
+        settings.setValue(
+            "PEP8/UnusedIgnoreAbstract", self.ignoreAbstractCheckBox.isChecked()
+        )
+        settings.setValue(
+            "PEP8/UnusedIgnoreOverload", self.ignoreOverloadCheckBox.isChecked()
+        )
+        settings.setValue(
+            "PEP8/UnusedIgnoreOverride", self.ignoreOverrideCheckBox.isChecked()
+        )
+        settings.setValue(
+            "PEP8/UnusedIgnoreStubs", self.ignoreStubsCheckBox.isChecked()
+        )
+        settings.setValue(
+            "PEP8/UnusedIgnoreVariadicNames",
+            self.ignoreVariadicNamesCheckBox.isChecked(),
+        )
+        settings.setValue(
+            "PEP8/UnusedIgnoreLambdas", self.ignoreLambdasCheckBox.isChecked()
+        )
+        settings.setValue(
+            "PEP8/UnusedIgnoreNestedFunctions",
+            self.ignoreNestedFunctionsCheckBox.isChecked(),
+        )
+        settings.setValue(
+            "PEP8/UnusedIgnoreDunderMethods",
+            self.ignoreDunderMethodsCheckBox.isChecked(),
+        )
+        settings.setValue(
+            "PEP8/UnusedIgnoreSlotMethods", self.ignoreSlotsCheckBox.isChecked()
+        )
+
     @pyqtSlot()
     def on_resetDefaultButton_clicked(self):
         """
@@ -2285,6 +2460,44 @@
             defaultParameters["NameOrderChecker"]["SortFromFirst"],
         )
 
+        # Unused Checker
+        settings.setValue(
+            "PEP8/UnusedIgnoreAbstract",
+            defaultParameters["UnusedChecker"]["IgnoreAbstract"],
+        )
+        settings.setValue(
+            "PEP8/UnusedIgnoreOverload",
+            defaultParameters["UnusedChecker"]["IgnoreOverload"],
+        )
+        settings.setValue(
+            "PEP8/UnusedIgnoreOverride",
+            defaultParameters["UnusedChecker"]["IgnoreOverride"],
+        )
+        settings.setValue(
+            "PEP8/UnusedIgnoreStubs",
+            defaultParameters["UnusedChecker"]["IgnoreStubs"],
+        )
+        settings.setValue(
+            "PEP8/UnusedIgnoreVariadicNames",
+            defaultParameters["UnusedChecker"]["IgnoreVariadicNames"],
+        )
+        settings.setValue(
+            "PEP8/UnusedIgnoreLambdas",
+            defaultParameters["UnusedChecker"]["IgnoreLambdas"],
+        )
+        settings.setValue(
+            "PEP8/UnusedIgnoreNestedFunctions",
+            defaultParameters["UnusedChecker"]["IgnoreNestedFunctions"],
+        )
+        settings.setValue(
+            "PEP8/UnusedIgnoreDunderMethods",
+            defaultParameters["UnusedChecker"]["IgnoreDunderMethods"],
+        )
+        settings.setValue(
+            "PEP8/UnusedIgnoreSlotMethods",
+            defaultParameters["UnusedChecker"]["IgnoreSlotMethods"],
+        )
+
         # Update UI with default values
         self.on_loadDefaultButton_clicked()
 

eric ide

mercurial