--- a/src/eric7/Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleChecker.py Sat Mar 01 17:30:59 2025 +0100 +++ b/src/eric7/Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleChecker.py Sat Mar 01 17:31:44 2025 +0100 @@ -461,6 +461,12 @@ # perform the checks only, if syntax is ok and AST tree was generated if tree: + # determine enabled categories + enabledCategories = set() + for includeMessage in includeMessages.split(","): + category = includeMessage.strip().split("-", 1)[0] + enabledCategories.add(category) + # check coding style pycodestyle.BLANK_LINES_CONFIG = { # Top level class and function. @@ -480,182 +486,210 @@ report = styleGuide.options.report styleGuide.input_file(filename, lines=source) stats.update(report.counters) - errors = report.errors + errors += report.errors # check documentation style - docStyleChecker = DocStyleChecker( - source, - filename, - select, - ignore, - [], - repeatMessages, - maxLineLength=maxDocLineLength, - docType=docType, - ) - docStyleChecker.run() - stats.update(docStyleChecker.counters) - errors += docStyleChecker.errors + if DocStyleChecker.Category in enabledCategories: + docStyleChecker = DocStyleChecker( + source, + filename, + select, + ignore, + [], + repeatMessages, + maxLineLength=maxDocLineLength, + docType=docType, + ) + docStyleChecker.run() + stats.update(docStyleChecker.counters) + errors += docStyleChecker.errors # miscellaneous additional checks - miscellaneousChecker = MiscellaneousChecker( - source, - filename, - tree, - select, - ignore, - [], - repeatMessages, - miscellaneousArgs, - ) - miscellaneousChecker.run() - stats.update(miscellaneousChecker.counters) - errors += miscellaneousChecker.errors + if MiscellaneousChecker.Category in enabledCategories: + miscellaneousChecker = MiscellaneousChecker( + source, + filename, + tree, + select, + ignore, + [], + repeatMessages, + miscellaneousArgs, + ) + miscellaneousChecker.run() + stats.update(miscellaneousChecker.counters) + errors += miscellaneousChecker.errors # check code complexity - complexityChecker = ComplexityChecker( - source, filename, tree, select, ignore, codeComplexityArgs - ) - complexityChecker.run() - stats.update(complexityChecker.counters) - errors += complexityChecker.errors + if ComplexityChecker.Category in enabledCategories: + complexityChecker = ComplexityChecker( + source, filename, tree, select, ignore, codeComplexityArgs + ) + complexityChecker.run() + stats.update(complexityChecker.counters) + errors += complexityChecker.errors # check function annotations - annotationsChecker = AnnotationsChecker( - source, - filename, - tree, - select, - ignore, - [], - repeatMessages, - annotationArgs, - ) - annotationsChecker.run() - stats.update(annotationsChecker.counters) - errors += annotationsChecker.errors + if AnnotationsChecker.Category in enabledCategories: + annotationsChecker = AnnotationsChecker( + source, + filename, + tree, + select, + ignore, + [], + repeatMessages, + annotationArgs, + ) + annotationsChecker.run() + stats.update(annotationsChecker.counters) + errors += annotationsChecker.errors # check for security issues - securityChecker = SecurityChecker( - source, filename, tree, select, ignore, [], repeatMessages, securityArgs - ) - securityChecker.run() - stats.update(securityChecker.counters) - errors += securityChecker.errors + if SecurityChecker.Category in enabledCategories: + securityChecker = SecurityChecker( + source, + filename, + tree, + select, + ignore, + [], + repeatMessages, + securityArgs, + ) + securityChecker.run() + stats.update(securityChecker.counters) + errors += securityChecker.errors # check for pathlib usage - pathlibChecker = PathlibChecker( - source, filename, tree, select, ignore, [], repeatMessages - ) - pathlibChecker.run() - stats.update(pathlibChecker.counters) - errors += pathlibChecker.errors + if PathlibChecker.Category in enabledCategories: + pathlibChecker = PathlibChecker( + source, filename, tree, select, ignore, [], repeatMessages + ) + pathlibChecker.run() + stats.update(pathlibChecker.counters) + errors += pathlibChecker.errors # check for code simplifications - simplifyChecker = SimplifyChecker( - source, filename, tree, select, ignore, [], repeatMessages - ) - simplifyChecker.run() - stats.update(simplifyChecker.counters) - errors += simplifyChecker.errors + if SimplifyChecker.Category in enabledCategories: + simplifyChecker = SimplifyChecker( + source, filename, tree, select, ignore, [], repeatMessages + ) + simplifyChecker.run() + stats.update(simplifyChecker.counters) + errors += simplifyChecker.errors # check import statements - importsChecker = ImportsChecker( - source, filename, tree, select, ignore, [], repeatMessages, importsArgs - ) - importsChecker.run() - stats.update(importsChecker.counters) - errors += importsChecker.errors + if ImportsChecker.Category in enabledCategories: + importsChecker = ImportsChecker( + source, + filename, + tree, + select, + ignore, + [], + repeatMessages, + importsArgs, + ) + importsChecker.run() + stats.update(importsChecker.counters) + errors += importsChecker.errors # check naming style - namingStyleChecker = NamingStyleChecker( - source, - filename, - tree, - select, - ignore, - [], - repeatMessages, - {}, # no arguments yet - ) - namingStyleChecker.run() - stats.update(namingStyleChecker.counters) - errors += namingStyleChecker.errors + if NamingStyleChecker.Category in enabledCategories: + namingStyleChecker = NamingStyleChecker( + source, + filename, + tree, + select, + ignore, + [], + repeatMessages, + {}, # no arguments yet + ) + namingStyleChecker.run() + stats.update(namingStyleChecker.counters) + errors += namingStyleChecker.errors # check name ordering - nameOrderChecker = NameOrderChecker( - source, - filename, - tree, - select, - ignore, - [], - repeatMessages, - nameOrderArgs, - ) - nameOrderChecker.run() - stats.update(nameOrderChecker.counters) - errors += nameOrderChecker.errors + if NameOrderChecker.Category in enabledCategories: + nameOrderChecker = NameOrderChecker( + source, + filename, + tree, + select, + ignore, + [], + repeatMessages, + nameOrderArgs, + ) + nameOrderChecker.run() + stats.update(nameOrderChecker.counters) + errors += nameOrderChecker.errors # check unused arguments and variables - unusedChecker = UnusedChecker( - source, - filename, - tree, - select, - ignore, - [], - repeatMessages, - unusedArgs, - ) - unusedChecker.run() - stats.update(unusedChecker.counters) - errors += unusedChecker.errors + if UnusedChecker.Category in enabledCategories: + unusedChecker = UnusedChecker( + source, + filename, + tree, + select, + ignore, + [], + repeatMessages, + unusedArgs, + ) + unusedChecker.run() + stats.update(unusedChecker.counters) + errors += unusedChecker.errors # check async function definitions - asyncChecker = AsyncChecker( - source, - filename, - tree, - select, - ignore, - [], - repeatMessages, - {}, # no arguments yet - ) - asyncChecker.run() - stats.update(asyncChecker.counters) - errors += asyncChecker.errors + if AsyncChecker.Category in enabledCategories: + asyncChecker = AsyncChecker( + source, + filename, + tree, + select, + ignore, + [], + repeatMessages, + {}, # no arguments yet + ) + asyncChecker.run() + stats.update(asyncChecker.counters) + errors += asyncChecker.errors # checking logging statements - loggingChecker = LoggingChecker( - source, - filename, - tree, - select, - ignore, - [], - repeatMessages, - {}, # no arguments yet - ) - loggingChecker.run() - stats.update(loggingChecker.counters) - errors += loggingChecker.errors + if LoggingChecker.Category in enabledCategories: + loggingChecker = LoggingChecker( + source, + filename, + tree, + select, + ignore, + [], + repeatMessages, + {}, # no arguments yet + ) + loggingChecker.run() + stats.update(loggingChecker.counters) + errors += loggingChecker.errors # check 'pydantic' related topics - pydanticChecker = PydanticChecker( - source, - filename, - tree, - select, - ignore, - [], - repeatMessages, - {}, # no arguments yet - ) - pydanticChecker.run() - stats.update(pydanticChecker.counters) - errors += pydanticChecker.errors + if PydanticChecker.Category in enabledCategories: + pydanticChecker = PydanticChecker( + source, + filename, + tree, + select, + ignore, + [], + repeatMessages, + {}, # no arguments yet + ) + pydanticChecker.run() + stats.update(pydanticChecker.counters) + errors += pydanticChecker.errors elif syntaxError: errors = [syntaxError]