src/eric7/Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleChecker.py

branch
eric7
changeset 11159
2abfc48a72db
parent 11150
73d80859079c
child 11160
070b01a1a4c1
--- 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]

eric ide

mercurial