eric6/Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/MiscellaneousChecker.py

changeset 7980
2c3f14a3c595
parent 7972
4fc11172df1b
child 7988
c4c17121eff8
--- 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):

eric ide

mercurial