--- 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()