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