--- a/eric6/Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/MiscellaneousChecker.py Thu Jan 14 17:51:12 2021 +0100 +++ b/eric6/Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/MiscellaneousChecker.py Thu Jan 14 17:58:40 2021 +0100 @@ -19,6 +19,8 @@ from eradicate import Eradicator +from .MiscellaneousDefaults import MiscellaneousCheckerDefaultArgs + def composeCallPath(node): """ @@ -157,7 +159,6 @@ self.__builtins = [b for b in dir(builtins) if b not in self.BuiltinsWhiteList] - # TODO: add support for eradicator whitelist self.__eradicator = Eradicator() # statistics counters @@ -200,20 +201,16 @@ (self.__checkCommentedCode, ("M891",)), ] - self.__defaultArgs = { - "BuiltinsChecker": { - "chr": ["unichr", ], - "str": ["unicode", ], - }, - "CodingChecker": 'latin-1, utf-8', - "CopyrightChecker": { - "Author": "", - "MinFilesize": 0, - }, - "CommentedCodeChecker": { - "Aggressive": False, - } - } + # the eradicate whitelist + commentedCodeCheckerArgs = self.__args.get( + "CommentedCodeChecker", + MiscellaneousCheckerDefaultArgs["CommentedCodeChecker"]) + commentedCodeCheckerWhitelist = commentedCodeCheckerArgs.get( + "WhiteList", + MiscellaneousCheckerDefaultArgs[ + "CommentedCodeChecker"]["WhiteList"]) + self.__eradicator.update_whitelist(commentedCodeCheckerWhitelist, + extend_default=False) self.__checkers = [] for checker, codes in checkersWithCodes: @@ -341,7 +338,8 @@ encodings = [e.lower().strip() for e in self.__args.get( - "CodingChecker", self.__defaultArgs["CodingChecker"]) + "CodingChecker", + MiscellaneousCheckerDefaultArgs["CodingChecker"]) .split(",")] lineno, coding = self.__getCoding() if coding: @@ -356,13 +354,14 @@ """ source = "".join(self.__source) copyrightArgs = self.__args.get( - "CopyrightChecker", self.__defaultArgs["CopyrightChecker"]) + "CopyrightChecker", + MiscellaneousCheckerDefaultArgs["CopyrightChecker"]) copyrightMinFileSize = copyrightArgs.get( "MinFilesize", - self.__defaultArgs["CopyrightChecker"]["MinFilesize"]) + MiscellaneousCheckerDefaultArgs["CopyrightChecker"]["MinFilesize"]) copyrightAuthor = copyrightArgs.get( "Author", - self.__defaultArgs["CopyrightChecker"]["Author"]) + MiscellaneousCheckerDefaultArgs["CopyrightChecker"]["Author"]) copyrightRegexStr = ( r"Copyright\s+(\(C\)\s+)?(\d{{4}}\s+-\s+)?\d{{4}}\s+{author}" ) @@ -391,10 +390,12 @@ """ source = "".join(self.__source) commentedCodeCheckerArgs = self.__args.get( - "CommentedCodeChecker", self.__defaultArgs["CommentedCodeChecker"]) + "CommentedCodeChecker", + MiscellaneousCheckerDefaultArgs["CommentedCodeChecker"]) aggressive = commentedCodeCheckerArgs.get( "Aggressive", - self.__defaultArgs["CommentedCodeChecker"]["Aggressive"]) + MiscellaneousCheckerDefaultArgs[ + "CommentedCodeChecker"]["Aggressive"]) for markedLine in self.__eradicator.commented_out_code_line_numbers( source, aggressive=aggressive): self.__error(markedLine - 1, 0, "M891") @@ -648,7 +649,8 @@ pass ignoreBuiltinAssignments = self.__args.get( - "BuiltinsChecker", self.__defaultArgs["BuiltinsChecker"]) + "BuiltinsChecker", + MiscellaneousCheckerDefaultArgs["BuiltinsChecker"]) for node in ast.walk(self.__tree): if isinstance(node, ast.Assign):