eric6/Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py

changeset 8206
adf11836cfce
parent 8205
4a0f1f896341
child 8213
4cdfe4fbdd26
--- a/eric6/Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py	Thu Apr 08 18:27:47 2021 +0200
+++ b/eric6/Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py	Fri Apr 09 18:13:36 2021 +0200
@@ -10,6 +10,7 @@
 import os
 import fnmatch
 import copy
+import collections
 
 from PyQt5.QtCore import pyqtSlot, Qt, QTimer, QCoreApplication
 from PyQt5.QtGui import QIcon
@@ -195,7 +196,7 @@
         self.__project = None
         self.__forProject = False
         self.__data = {}
-        self.__statistics = {}
+        self.__statistics = collections.defaultdict(self.__defaultStatistics)
         self.__onlyFixes = {}
         self.__noFixCodesList = []
         self.__detectedCodes = []
@@ -205,6 +206,18 @@
         self.mainWidget.setCurrentWidget(self.configureTab)
         self.optionsTabWidget.setCurrentWidget(self.globalOptionsTab)
     
+    def __defaultStatistics(self):
+        """
+        Private method to return the default statistics entry.
+        
+        @return dictionary with default statistics entry
+        @rtype dict
+        """
+        return {
+            "total": 0,
+            "ignored": 0,
+        }
+    
     def __resort(self):
         """
         Private method to resort the tree.
@@ -381,16 +394,14 @@
         @type int
         """
         self.__statistics["_FilesCount"] += 1
-        stats = [k for k in statistics.keys() if k[0].isupper()]
+        stats = [k for k in statistics if k[0].isupper()]
         if stats:
             self.__statistics["_FilesIssues"] += 1
-            for key in statistics:
-                if key in self.__statistics:
-                    self.__statistics[key] += statistics[key]
-                else:
-                    self.__statistics[key] = statistics[key]
+            for key in stats:
+                self.__statistics[key]["total"] += statistics[key]
+            for key in ignoredErrors:
+                self.__statistics[key]["ignored"] += ignoredErrors[key]
         self.__statistics["_IssuesFixed"] += fixer
-        self.__statistics["_IgnoredErrors"] += ignoredErrors
         self.__statistics["_SecurityOK"] += securityOk
     
     def __updateFixerStatistics(self, fixer):
@@ -406,11 +417,10 @@
         """
         Private slot to reset the statistics data.
         """
-        self.__statistics = {}
+        self.__statistics.clear()
         self.__statistics["_FilesCount"] = 0
         self.__statistics["_FilesIssues"] = 0
         self.__statistics["_IssuesFixed"] = 0
-        self.__statistics["_IgnoredErrors"] = 0
         self.__statistics["_SecurityOK"] = 0
     
     def prepare(self, fileList, project):
@@ -964,7 +974,7 @@
         self.resultList.setSortingEnabled(False)
         
         fixed = None
-        ignoredErrors = 0
+        ignoredErrors = collections.defaultdict(int)
         securityOk = 0
         if self.__itms:
             for itm, result in zip(self.__itms, results):
@@ -975,7 +985,7 @@
             
             for result in results:
                 if result["ignored"]:
-                    ignoredErrors += 1
+                    ignoredErrors[result["code"]] += 1
                     if self.showIgnored:
                         result["display"] = self.tr(
                             "{0} (ignored)"

eric ide

mercurial