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

Sat, 26 Apr 2025 12:34:32 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 26 Apr 2025 12:34:32 +0200
branch
eric7
changeset 11240
c48c615c04a3
parent 11160
070b01a1a4c1
permissions
-rw-r--r--

MicroPython
- Added a configuration option to disable the support for the no longer produced Pimoroni Pico Wireless Pack.

832
eb5ff61f927b Added a checker for PEP 8 compliance.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
eb5ff61f927b Added a checker for PEP 8 compliance.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
11090
f5f5f5803935 Updated copyright for 2025.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10704
diff changeset
3 # Copyright (c) 2011 - 2025 Detlev Offenbach <detlev@die-offenbachs.de>
832
eb5ff61f927b Added a checker for PEP 8 compliance.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
eb5ff61f927b Added a checker for PEP 8 compliance.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
eb5ff61f927b Added a checker for PEP 8 compliance.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
2980
2cb4e3c50b37 Continued changing the names of the various code style checkers to make them more appropriate to the broadened scope.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2979
diff changeset
7 Module implementing the code style checker.
832
eb5ff61f927b Added a checker for PEP 8 compliance.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
eb5ff61f927b Added a checker for PEP 8 compliance.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9292
diff changeset
10 import ast
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9292
diff changeset
11 import contextlib
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9292
diff changeset
12 import multiprocessing
7637
c878e8255972 Removed some more Python2 related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
13 import queue
3209
c5432abceb25 CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
14 import sys
3056
9986ec0e559a Merge with default branch before style changes.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 2929
diff changeset
15
5147
d39dd5cee0c8 Renamed pep8.py to pycodestyle.py in order to track the upstream renaming.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
16 import pycodestyle
10122
f9b87800ecf2 Corrected some code formatting and style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10119
diff changeset
17
10119
64147a7e6393 Removed support for Python 3.7 because that is EOL.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10116
diff changeset
18 from Annotations.AnnotationsChecker import AnnotationsChecker
10116
4a619fb7bd09 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
19 from Async.AsyncChecker import AsyncChecker
9482
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
20 from CodeStyleFixer import CodeStyleFixer
8790
548df4df8256 Continued implementing a checker for import statements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8650
diff changeset
21 from Complexity.ComplexityChecker import ComplexityChecker
548df4df8256 Continued implementing a checker for import statements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8650
diff changeset
22 from DocStyle.DocStyleChecker import DocStyleChecker
548df4df8256 Continued implementing a checker for import statements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8650
diff changeset
23 from Imports.ImportsChecker import ImportsChecker
10362
cfa7034cccf6 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10122
diff changeset
24 from Logging.LoggingChecker import LoggingChecker
8790
548df4df8256 Continued implementing a checker for import statements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8650
diff changeset
25 from Miscellaneous.MiscellaneousChecker import MiscellaneousChecker
10046
35b27af462ef Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10041
diff changeset
26 from NameOrder.NameOrderChecker import NameOrderChecker
7784
3257703e10c5 Finished refactoring the code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7782
diff changeset
27 from Naming.NamingStyleChecker import NamingStyleChecker
8790
548df4df8256 Continued implementing a checker for import statements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8650
diff changeset
28 from PathLib.PathlibChecker import PathlibChecker
11142
2f0fb22c1d63 Fixed a few issues in the code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11090
diff changeset
29 from Pydantic.PydanticChecker import PydanticChecker
8790
548df4df8256 Continued implementing a checker for import statements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8650
diff changeset
30 from Security.SecurityChecker import SecurityChecker
548df4df8256 Continued implementing a checker for import statements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8650
diff changeset
31 from Simplify.SimplifyChecker import SimplifyChecker
10052
041d0785dd42 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10046
diff changeset
32 from Unused.UnusedChecker import UnusedChecker
843
522c8befcf49 Continued implementing a PRP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 832
diff changeset
33
832
eb5ff61f927b Added a checker for PEP 8 compliance.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34
3209
c5432abceb25 CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
35 def initService():
843
522c8befcf49 Continued implementing a PRP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 832
diff changeset
36 """
3209
c5432abceb25 CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
37 Initialize the service and return the entry point.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
38
10437
2f70ca07f0af Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10362
diff changeset
39 @return the entry point for the background client
2f70ca07f0af Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10362
diff changeset
40 @rtype function
843
522c8befcf49 Continued implementing a PRP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 832
diff changeset
41 """
3209
c5432abceb25 CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
42 return codeStyleCheck
c5432abceb25 CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
43
c5432abceb25 CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
44
4218
f542ad1f76c5 Added a batch mode to the code style checker to make use of multiple CPUs/CPU-Cores.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
45 def initBatchService():
f542ad1f76c5 Added a batch mode to the code style checker to make use of multiple CPUs/CPU-Cores.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
46 """
f542ad1f76c5 Added a batch mode to the code style checker to make use of multiple CPUs/CPU-Cores.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
47 Initialize the batch service and return the entry point.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
48
10437
2f70ca07f0af Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10362
diff changeset
49 @return the entry point for the background client
2f70ca07f0af Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10362
diff changeset
50 @rtype function
4218
f542ad1f76c5 Added a batch mode to the code style checker to make use of multiple CPUs/CPU-Cores.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
51 """
f542ad1f76c5 Added a batch mode to the code style checker to make use of multiple CPUs/CPU-Cores.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
52 return codeStyleBatchCheck
f542ad1f76c5 Added a batch mode to the code style checker to make use of multiple CPUs/CPU-Cores.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
53
f542ad1f76c5 Added a batch mode to the code style checker to make use of multiple CPUs/CPU-Cores.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
54
5147
d39dd5cee0c8 Renamed pep8.py to pycodestyle.py in order to track the upstream renaming.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
55 class CodeStyleCheckerReport(pycodestyle.BaseReport):
3209
c5432abceb25 CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
56 """
11160
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
57 Class implementing a special 'pycodestyle' report to be used with our checker.
3209
c5432abceb25 CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
58 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
59
3209
c5432abceb25 CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
60 def __init__(self, options):
843
522c8befcf49 Continued implementing a PRP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 832
diff changeset
61 """
522c8befcf49 Continued implementing a PRP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 832
diff changeset
62 Constructor
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
63
10437
2f70ca07f0af Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10362
diff changeset
64 @param options options for the report
2f70ca07f0af Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10362
diff changeset
65 @type optparse.Values
843
522c8befcf49 Continued implementing a PRP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 832
diff changeset
66 """
8218
7c09585bd960 Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8205
diff changeset
67 super().__init__(options)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
68
3209
c5432abceb25 CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
69 self.__repeat = options.repeat
c5432abceb25 CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
70 self.errors = []
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
71
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11142
diff changeset
72 def error_args(self, line_number, offset, text, _check, *args):
3209
c5432abceb25 CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
73 """
c5432abceb25 CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
74 Public method to collect the error messages.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
75
10437
2f70ca07f0af Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10362
diff changeset
76 @param line_number line number of the issue
2f70ca07f0af Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10362
diff changeset
77 @type int
2f70ca07f0af Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10362
diff changeset
78 @param offset position within line of the issue
2f70ca07f0af Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10362
diff changeset
79 @type int
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11142
diff changeset
80 @param text issue message code or issue text
10437
2f70ca07f0af Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10362
diff changeset
81 @type str
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11142
diff changeset
82 @param _check reference to the checker function
10437
2f70ca07f0af Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10362
diff changeset
83 @type function
2f70ca07f0af Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10362
diff changeset
84 @param args arguments for the message
2f70ca07f0af Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10362
diff changeset
85 @type list
2f70ca07f0af Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10362
diff changeset
86 @return error code
2f70ca07f0af Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10362
diff changeset
87 @rtype str
3209
c5432abceb25 CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
88 """
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11142
diff changeset
89 code = text.split(None, 1)[0]
11160
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
90 if self._ignore_code(code):
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
91 return None
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
92
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11142
diff changeset
93 errorCode = code[0] + "-" + code[1:]
11150
73d80859079c Code Style Checkers
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11147
diff changeset
94
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11142
diff changeset
95 if errorCode in self.counters:
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11142
diff changeset
96 self.counters[errorCode] += 1
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11142
diff changeset
97 else:
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11142
diff changeset
98 self.counters[errorCode] = 1
11150
73d80859079c Code Style Checkers
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11147
diff changeset
99
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11142
diff changeset
100 # Don't care about expected errors or warnings
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11142
diff changeset
101 if errorCode in self.expected:
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11142
diff changeset
102 return None
11150
73d80859079c Code Style Checkers
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11147
diff changeset
103
10069
435cc5875135 Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10059
diff changeset
104 if errorCode and (self.counters[errorCode] == 1 or self.__repeat):
3209
c5432abceb25 CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
105 self.errors.append(
7610
df7025fe26a3 Code Style Checker: reworked the API between frontend and backend to get some more flexibility for the future.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
106 {
df7025fe26a3 Code Style Checker: reworked the API between frontend and backend to get some more flexibility for the future.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
107 "file": self.filename,
df7025fe26a3 Code Style Checker: reworked the API between frontend and backend to get some more flexibility for the future.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
108 "line": line_number,
df7025fe26a3 Code Style Checker: reworked the API between frontend and backend to get some more flexibility for the future.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
109 "offset": offset,
10069
435cc5875135 Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10059
diff changeset
110 "code": errorCode,
7610
df7025fe26a3 Code Style Checker: reworked the API between frontend and backend to get some more flexibility for the future.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
111 "args": args,
df7025fe26a3 Code Style Checker: reworked the API between frontend and backend to get some more flexibility for the future.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
112 }
3209
c5432abceb25 CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
113 )
11150
73d80859079c Code Style Checkers
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11147
diff changeset
114
10069
435cc5875135 Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10059
diff changeset
115 return errorCode
3209
c5432abceb25 CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
116
c5432abceb25 CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
117
5586
0e5421d679e7 Added capability to place line flags (e.g. __IGNORE...) on the line following the one to be ignored.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
118 def extractLineFlags(line, startComment="#", endComment="", flagsLine=False):
3209
c5432abceb25 CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
119 """
c5432abceb25 CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
120 Function to extract flags starting and ending with '__' from a line
c5432abceb25 CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
121 comment.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
122
10437
2f70ca07f0af Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10362
diff changeset
123 @param line line to extract flags from
2f70ca07f0af Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10362
diff changeset
124 @type str
2f70ca07f0af Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10362
diff changeset
125 @param startComment string identifying the start of the comment
2f70ca07f0af Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10362
diff changeset
126 @type str
2f70ca07f0af Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10362
diff changeset
127 @param endComment string identifying the end of a comment
2f70ca07f0af Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10362
diff changeset
128 @type str
2f70ca07f0af Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10362
diff changeset
129 @param flagsLine flag indicating to check for a flags only line
2f70ca07f0af Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10362
diff changeset
130 @type bool
2f70ca07f0af Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10362
diff changeset
131 @return list containing the extracted flags
2f70ca07f0af Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10362
diff changeset
132 @rtype list of str
3209
c5432abceb25 CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
133 """
c5432abceb25 CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
134 flags = []
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
135
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
136 if not flagsLine or (flagsLine and line.strip().startswith(startComment)):
5586
0e5421d679e7 Added capability to place line flags (e.g. __IGNORE...) on the line following the one to be ignored.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
137 pos = line.rfind(startComment)
0e5421d679e7 Added capability to place line flags (e.g. __IGNORE...) on the line following the one to be ignored.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
138 if pos >= 0:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
139 comment = line[pos + len(startComment) :].strip()
5586
0e5421d679e7 Added capability to place line flags (e.g. __IGNORE...) on the line following the one to be ignored.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
140 if endComment:
0e5421d679e7 Added capability to place line flags (e.g. __IGNORE...) on the line following the one to be ignored.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
141 endPos = line.rfind(endComment)
0e5421d679e7 Added capability to place line flags (e.g. __IGNORE...) on the line following the one to be ignored.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
142 if endPos >= 0:
0e5421d679e7 Added capability to place line flags (e.g. __IGNORE...) on the line following the one to be ignored.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
143 comment = comment[:endPos]
10041
67c8efa6d098 CodeStyleChecker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9786
diff changeset
144 if comment.startswith(("noqa:", "NOQA:")):
67c8efa6d098 CodeStyleChecker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9786
diff changeset
145 flags = [
67c8efa6d098 CodeStyleChecker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9786
diff changeset
146 "noqa:{0}".format(f.strip())
10046
35b27af462ef Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10041
diff changeset
147 for f in comment[len("noqa:") :].split(",")
10041
67c8efa6d098 CodeStyleChecker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9786
diff changeset
148 ]
67c8efa6d098 CodeStyleChecker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9786
diff changeset
149 else:
67c8efa6d098 CodeStyleChecker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9786
diff changeset
150 flags = [
10069
435cc5875135 Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10059
diff changeset
151 f
10041
67c8efa6d098 CodeStyleChecker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9786
diff changeset
152 for f in comment.split()
67c8efa6d098 CodeStyleChecker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9786
diff changeset
153 if (f.startswith("__") and f.endswith("__"))
67c8efa6d098 CodeStyleChecker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9786
diff changeset
154 ]
67c8efa6d098 CodeStyleChecker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9786
diff changeset
155 flags += [
10069
435cc5875135 Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10059
diff changeset
156 f.lower()
10041
67c8efa6d098 CodeStyleChecker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9786
diff changeset
157 for f in comment.split()
67c8efa6d098 CodeStyleChecker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9786
diff changeset
158 if f in ("noqa", "NOQA", "nosec", "NOSEC", "secok", "SECOK")
67c8efa6d098 CodeStyleChecker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9786
diff changeset
159 ]
3209
c5432abceb25 CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
160 return flags
c5432abceb25 CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
161
c5432abceb25 CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
162
10069
435cc5875135 Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10059
diff changeset
163 def ignoreCode(errorCode, lineFlags):
5725
671561c52802 Finetuned the coding style checker a little bit to allow groups of messages to be ignored (e.g. __IGNORE_WARNING_N10__ for all N10x warnings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5683
diff changeset
164 """
671561c52802 Finetuned the coding style checker a little bit to allow groups of messages to be ignored (e.g. __IGNORE_WARNING_N10__ for all N10x warnings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5683
diff changeset
165 Function to check, if the given code should be ignored as per line flags.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
166
10069
435cc5875135 Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10059
diff changeset
167 @param errorCode error code to be checked
5725
671561c52802 Finetuned the coding style checker a little bit to allow groups of messages to be ignored (e.g. __IGNORE_WARNING_N10__ for all N10x warnings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5683
diff changeset
168 @type str
671561c52802 Finetuned the coding style checker a little bit to allow groups of messages to be ignored (e.g. __IGNORE_WARNING_N10__ for all N10x warnings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5683
diff changeset
169 @param lineFlags list of line flags to check against
671561c52802 Finetuned the coding style checker a little bit to allow groups of messages to be ignored (e.g. __IGNORE_WARNING_N10__ for all N10x warnings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5683
diff changeset
170 @type list of str
10069
435cc5875135 Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10059
diff changeset
171 @return flag indicating to ignore the error code
5737
6820ae39114e Fixed a source docu issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5725
diff changeset
172 @rtype bool
5725
671561c52802 Finetuned the coding style checker a little bit to allow groups of messages to be ignored (e.g. __IGNORE_WARNING_N10__ for all N10x warnings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5683
diff changeset
173 """
671561c52802 Finetuned the coding style checker a little bit to allow groups of messages to be ignored (e.g. __IGNORE_WARNING_N10__ for all N10x warnings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5683
diff changeset
174 if lineFlags:
7256
4ef3b78ebb4e Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7247
diff changeset
175 if (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
176 "__IGNORE_WARNING__" in lineFlags
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
177 or "noqa" in lineFlags
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
178 or "nosec" in lineFlags
7256
4ef3b78ebb4e Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7247
diff changeset
179 ):
5725
671561c52802 Finetuned the coding style checker a little bit to allow groups of messages to be ignored (e.g. __IGNORE_WARNING_N10__ for all N10x warnings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5683
diff changeset
180 # ignore all warning codes
671561c52802 Finetuned the coding style checker a little bit to allow groups of messages to be ignored (e.g. __IGNORE_WARNING_N10__ for all N10x warnings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5683
diff changeset
181 return True
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
182
5725
671561c52802 Finetuned the coding style checker a little bit to allow groups of messages to be ignored (e.g. __IGNORE_WARNING_N10__ for all N10x warnings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5683
diff changeset
183 for flag in lineFlags:
671561c52802 Finetuned the coding style checker a little bit to allow groups of messages to be ignored (e.g. __IGNORE_WARNING_N10__ for all N10x warnings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5683
diff changeset
184 # check individual warning code
671561c52802 Finetuned the coding style checker a little bit to allow groups of messages to be ignored (e.g. __IGNORE_WARNING_N10__ for all N10x warnings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5683
diff changeset
185 if flag.startswith("__IGNORE_WARNING_"):
671561c52802 Finetuned the coding style checker a little bit to allow groups of messages to be ignored (e.g. __IGNORE_WARNING_N10__ for all N10x warnings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5683
diff changeset
186 ignoredCode = flag[2:-2].rsplit("_", 1)[-1]
10069
435cc5875135 Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10059
diff changeset
187 if errorCode.startswith(ignoredCode):
5725
671561c52802 Finetuned the coding style checker a little bit to allow groups of messages to be ignored (e.g. __IGNORE_WARNING_N10__ for all N10x warnings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5683
diff changeset
188 return True
10041
67c8efa6d098 CodeStyleChecker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9786
diff changeset
189 elif flag.startswith("noqa:"):
10046
35b27af462ef Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10041
diff changeset
190 ignoredCode = flag[len("noqa:") :].strip()
10069
435cc5875135 Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10059
diff changeset
191 if errorCode.startswith(ignoredCode):
10041
67c8efa6d098 CodeStyleChecker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9786
diff changeset
192 return True
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
193
5725
671561c52802 Finetuned the coding style checker a little bit to allow groups of messages to be ignored (e.g. __IGNORE_WARNING_N10__ for all N10x warnings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5683
diff changeset
194 return False
671561c52802 Finetuned the coding style checker a little bit to allow groups of messages to be ignored (e.g. __IGNORE_WARNING_N10__ for all N10x warnings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5683
diff changeset
195
671561c52802 Finetuned the coding style checker a little bit to allow groups of messages to be ignored (e.g. __IGNORE_WARNING_N10__ for all N10x warnings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5683
diff changeset
196
10683
779cda568acb Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10579
diff changeset
197 def securityOk(_errorCode, lineFlags):
7615
ca2949b1a29a Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7611
diff changeset
198 """
10069
435cc5875135 Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10059
diff changeset
199 Function to check, if the given error code is an acknowledged security report.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
200
10683
779cda568acb Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10579
diff changeset
201 @param _errorCode error code to be checked (unused)
7615
ca2949b1a29a Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7611
diff changeset
202 @type str
ca2949b1a29a Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7611
diff changeset
203 @param lineFlags list of line flags to check against
ca2949b1a29a Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7611
diff changeset
204 @type list of str
ca2949b1a29a Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7611
diff changeset
205 @return flag indicating an acknowledged security report
ca2949b1a29a Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7611
diff changeset
206 @rtype bool
ca2949b1a29a Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7611
diff changeset
207 """
ca2949b1a29a Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7611
diff changeset
208 if lineFlags:
ca2949b1a29a Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7611
diff changeset
209 return "secok" in lineFlags
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
210
7615
ca2949b1a29a Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7611
diff changeset
211 return False
ca2949b1a29a Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7611
diff changeset
212
ca2949b1a29a Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7611
diff changeset
213
3209
c5432abceb25 CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
214 def codeStyleCheck(filename, source, args):
c5432abceb25 CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
215 """
10069
435cc5875135 Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10059
diff changeset
216 Do the source code style check and/or fix found errors.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
217
6264
04a671fa4adb code style checker: extended the dialog to be able to define the number of blank lines before class and function/method definitions
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6235
diff changeset
218 @param filename source filename
04a671fa4adb code style checker: extended the dialog to be able to define the number of blank lines before class and function/method definitions
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6235
diff changeset
219 @type str
10579
be997a4bd670 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
220 @param source list of code lines to be checked
be997a4bd670 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
221 @type list of str
3209
c5432abceb25 CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
222 @param args arguments used by the codeStyleCheck function (list of
6264
04a671fa4adb code style checker: extended the dialog to be able to define the number of blank lines before class and function/method definitions
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6235
diff changeset
223 excludeMessages, includeMessages, repeatMessages, fixCodes,
6786
701b511ba8f5 Added option to set the documentation line length.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 6645
diff changeset
224 noFixCodes, fixIssues, maxLineLength, maxDocLineLength, blankLines,
8801
8fbb21be8579 Continued implementing a checker for import statements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8790
diff changeset
225 hangClosing, docType, codeComplexityArgs, miscellaneousArgs,
10052
041d0785dd42 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10046
diff changeset
226 annotationArgs, securityArgs, importsArgs, nameOrderArgs, unusedArgs, errors,
041d0785dd42 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10046
diff changeset
227 eol, encoding, backup)
6264
04a671fa4adb code style checker: extended the dialog to be able to define the number of blank lines before class and function/method definitions
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6235
diff changeset
228 @type list of (str, str, bool, str, str, bool, int, list of (int, int),
10052
041d0785dd42 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10046
diff changeset
229 bool, str, dict, dict, dict, dict, dict, dict, list of str, str, str, bool)
6264
04a671fa4adb code style checker: extended the dialog to be able to define the number of blank lines before class and function/method definitions
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6235
diff changeset
230 @return tuple of statistics (dict) and list of results (tuple for each
04a671fa4adb code style checker: extended the dialog to be able to define the number of blank lines before class and function/method definitions
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6235
diff changeset
231 found violation of style (lineno, position, text, ignored, fixed,
04a671fa4adb code style checker: extended the dialog to be able to define the number of blank lines before class and function/method definitions
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6235
diff changeset
232 autofixing, fixedMsg))
04a671fa4adb code style checker: extended the dialog to be able to define the number of blank lines before class and function/method definitions
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6235
diff changeset
233 @rtype tuple of (dict, list of tuples of (int, int, str, bool, bool, bool,
04a671fa4adb code style checker: extended the dialog to be able to define the number of blank lines before class and function/method definitions
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6235
diff changeset
234 str))
3209
c5432abceb25 CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
235 """
4218
f542ad1f76c5 Added a batch mode to the code style checker to make use of multiple CPUs/CPU-Cores.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
236 return __checkCodeStyle(filename, source, args)
f542ad1f76c5 Added a batch mode to the code style checker to make use of multiple CPUs/CPU-Cores.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
237
f542ad1f76c5 Added a batch mode to the code style checker to make use of multiple CPUs/CPU-Cores.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
238
5762
76ef5f340007 Added functionality to limit the number of processes used for bachground services.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5737
diff changeset
239 def codeStyleBatchCheck(argumentsList, send, fx, cancelled, maxProcesses=0):
4218
f542ad1f76c5 Added a batch mode to the code style checker to make use of multiple CPUs/CPU-Cores.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
240 """
10069
435cc5875135 Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10059
diff changeset
241 Module function to check source code style for a batch of files.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
242
4218
f542ad1f76c5 Added a batch mode to the code style checker to make use of multiple CPUs/CPU-Cores.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
243 @param argumentsList list of arguments tuples as given for codeStyleCheck
5762
76ef5f340007 Added functionality to limit the number of processes used for bachground services.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5737
diff changeset
244 @type list
76ef5f340007 Added functionality to limit the number of processes used for bachground services.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5737
diff changeset
245 @param send reference to send function
76ef5f340007 Added functionality to limit the number of processes used for bachground services.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5737
diff changeset
246 @type func
76ef5f340007 Added functionality to limit the number of processes used for bachground services.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5737
diff changeset
247 @param fx registered service name
76ef5f340007 Added functionality to limit the number of processes used for bachground services.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5737
diff changeset
248 @type str
4221
c9fdc07753a7 Implemented the Cancel logic for batch checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4218
diff changeset
249 @param cancelled reference to function checking for a cancellation
5762
76ef5f340007 Added functionality to limit the number of processes used for bachground services.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5737
diff changeset
250 @type func
76ef5f340007 Added functionality to limit the number of processes used for bachground services.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5737
diff changeset
251 @param maxProcesses number of processes to be used
76ef5f340007 Added functionality to limit the number of processes used for bachground services.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5737
diff changeset
252 @type int
4218
f542ad1f76c5 Added a batch mode to the code style checker to make use of multiple CPUs/CPU-Cores.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
253 """
5762
76ef5f340007 Added functionality to limit the number of processes used for bachground services.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5737
diff changeset
254 if maxProcesses == 0:
76ef5f340007 Added functionality to limit the number of processes used for bachground services.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5737
diff changeset
255 # determine based on CPU count
76ef5f340007 Added functionality to limit the number of processes used for bachground services.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5737
diff changeset
256 try:
76ef5f340007 Added functionality to limit the number of processes used for bachground services.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5737
diff changeset
257 NumberOfProcesses = multiprocessing.cpu_count()
76ef5f340007 Added functionality to limit the number of processes used for bachground services.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5737
diff changeset
258 if NumberOfProcesses >= 1:
76ef5f340007 Added functionality to limit the number of processes used for bachground services.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5737
diff changeset
259 NumberOfProcesses -= 1
76ef5f340007 Added functionality to limit the number of processes used for bachground services.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5737
diff changeset
260 except NotImplementedError:
76ef5f340007 Added functionality to limit the number of processes used for bachground services.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5737
diff changeset
261 NumberOfProcesses = 1
76ef5f340007 Added functionality to limit the number of processes used for bachground services.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5737
diff changeset
262 else:
76ef5f340007 Added functionality to limit the number of processes used for bachground services.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5737
diff changeset
263 NumberOfProcesses = maxProcesses
4218
f542ad1f76c5 Added a batch mode to the code style checker to make use of multiple CPUs/CPU-Cores.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
264
f542ad1f76c5 Added a batch mode to the code style checker to make use of multiple CPUs/CPU-Cores.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
265 # Create queues
f542ad1f76c5 Added a batch mode to the code style checker to make use of multiple CPUs/CPU-Cores.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
266 taskQueue = multiprocessing.Queue()
f542ad1f76c5 Added a batch mode to the code style checker to make use of multiple CPUs/CPU-Cores.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
267 doneQueue = multiprocessing.Queue()
f542ad1f76c5 Added a batch mode to the code style checker to make use of multiple CPUs/CPU-Cores.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
268
9289
ba49c41e8f63 Did some optimizations in the multiprocessing code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9284
diff changeset
269 # Submit tasks (initially two times the number of processes)
ba49c41e8f63 Did some optimizations in the multiprocessing code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9284
diff changeset
270 tasks = len(argumentsList)
9292
a5c8a0213fe3 Fixed an issue in the multiprocessing usage causing a traceback when then number of tasks is smaller than the number of worker processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9289
diff changeset
271 initialTasks = min(2 * NumberOfProcesses, tasks)
9289
ba49c41e8f63 Did some optimizations in the multiprocessing code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9284
diff changeset
272 for _ in range(initialTasks):
ba49c41e8f63 Did some optimizations in the multiprocessing code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9284
diff changeset
273 taskQueue.put(argumentsList.pop(0))
4218
f542ad1f76c5 Added a batch mode to the code style checker to make use of multiple CPUs/CPU-Cores.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
274
f542ad1f76c5 Added a batch mode to the code style checker to make use of multiple CPUs/CPU-Cores.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
275 # Start worker processes
8650
100726f55a9a Changed the 'multiprocessing.Process()' code of the background batch services to (hopefully) cure the slow down when used multiple times.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8312
diff changeset
276 workers = [
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
277 multiprocessing.Process(target=workerTask, args=(taskQueue, doneQueue))
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
278 for _ in range(NumberOfProcesses)
8650
100726f55a9a Changed the 'multiprocessing.Process()' code of the background batch services to (hopefully) cure the slow down when used multiple times.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8312
diff changeset
279 ]
100726f55a9a Changed the 'multiprocessing.Process()' code of the background batch services to (hopefully) cure the slow down when used multiple times.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8312
diff changeset
280 for worker in workers:
100726f55a9a Changed the 'multiprocessing.Process()' code of the background batch services to (hopefully) cure the slow down when used multiple times.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8312
diff changeset
281 worker.start()
4218
f542ad1f76c5 Added a batch mode to the code style checker to make use of multiple CPUs/CPU-Cores.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
282
f542ad1f76c5 Added a batch mode to the code style checker to make use of multiple CPUs/CPU-Cores.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
283 # Get and send results
9289
ba49c41e8f63 Did some optimizations in the multiprocessing code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9284
diff changeset
284 for _ in range(tasks):
5672
495b53f37f6c Corrected an issue in various checker services that caused them to block, if an exception was thrown in a checker class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5661
diff changeset
285 resultSent = False
495b53f37f6c Corrected an issue in various checker services that caused them to block, if an exception was thrown in a checker class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5661
diff changeset
286 wasCancelled = False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
287
5672
495b53f37f6c Corrected an issue in various checker services that caused them to block, if an exception was thrown in a checker class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5661
diff changeset
288 while not resultSent:
495b53f37f6c Corrected an issue in various checker services that caused them to block, if an exception was thrown in a checker class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5661
diff changeset
289 try:
495b53f37f6c Corrected an issue in various checker services that caused them to block, if an exception was thrown in a checker class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5661
diff changeset
290 # get result (waiting max. 3 seconds and send it to frontend
495b53f37f6c Corrected an issue in various checker services that caused them to block, if an exception was thrown in a checker class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5661
diff changeset
291 filename, result = doneQueue.get(timeout=3)
495b53f37f6c Corrected an issue in various checker services that caused them to block, if an exception was thrown in a checker class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5661
diff changeset
292 send(fx, filename, result)
495b53f37f6c Corrected an issue in various checker services that caused them to block, if an exception was thrown in a checker class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5661
diff changeset
293 resultSent = True
495b53f37f6c Corrected an issue in various checker services that caused them to block, if an exception was thrown in a checker class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5661
diff changeset
294 except queue.Empty:
495b53f37f6c Corrected an issue in various checker services that caused them to block, if an exception was thrown in a checker class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5661
diff changeset
295 # ignore empty queue, just carry on
495b53f37f6c Corrected an issue in various checker services that caused them to block, if an exception was thrown in a checker class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5661
diff changeset
296 if cancelled():
495b53f37f6c Corrected an issue in various checker services that caused them to block, if an exception was thrown in a checker class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5661
diff changeset
297 wasCancelled = True
495b53f37f6c Corrected an issue in various checker services that caused them to block, if an exception was thrown in a checker class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5661
diff changeset
298 break
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
299
5672
495b53f37f6c Corrected an issue in various checker services that caused them to block, if an exception was thrown in a checker class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5661
diff changeset
300 if wasCancelled or cancelled():
4221
c9fdc07753a7 Implemented the Cancel logic for batch checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4218
diff changeset
301 # just exit the loop ignoring the results of queued tasks
c9fdc07753a7 Implemented the Cancel logic for batch checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4218
diff changeset
302 break
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
303
9289
ba49c41e8f63 Did some optimizations in the multiprocessing code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9284
diff changeset
304 if argumentsList:
ba49c41e8f63 Did some optimizations in the multiprocessing code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9284
diff changeset
305 taskQueue.put(argumentsList.pop(0))
4218
f542ad1f76c5 Added a batch mode to the code style checker to make use of multiple CPUs/CPU-Cores.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
306
f542ad1f76c5 Added a batch mode to the code style checker to make use of multiple CPUs/CPU-Cores.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
307 # Tell child processes to stop
6188
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
308 for _ in range(NumberOfProcesses):
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
309 taskQueue.put("STOP")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
310
8650
100726f55a9a Changed the 'multiprocessing.Process()' code of the background batch services to (hopefully) cure the slow down when used multiple times.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8312
diff changeset
311 for worker in workers:
100726f55a9a Changed the 'multiprocessing.Process()' code of the background batch services to (hopefully) cure the slow down when used multiple times.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8312
diff changeset
312 worker.join()
100726f55a9a Changed the 'multiprocessing.Process()' code of the background batch services to (hopefully) cure the slow down when used multiple times.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8312
diff changeset
313 worker.close()
9284
3b3a4f659782 "Blacked" the sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9279
diff changeset
314
9279
e252f827aaa7 Added code to explicitly close the queues to/from the workers at the end of a batch check.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9233
diff changeset
315 taskQueue.close()
e252f827aaa7 Added code to explicitly close the queues to/from the workers at the end of a batch check.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9233
diff changeset
316 doneQueue.close()
4218
f542ad1f76c5 Added a batch mode to the code style checker to make use of multiple CPUs/CPU-Cores.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
317
f542ad1f76c5 Added a batch mode to the code style checker to make use of multiple CPUs/CPU-Cores.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
318
8650
100726f55a9a Changed the 'multiprocessing.Process()' code of the background batch services to (hopefully) cure the slow down when used multiple times.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8312
diff changeset
319 def workerTask(inputQueue, outputQueue):
4218
f542ad1f76c5 Added a batch mode to the code style checker to make use of multiple CPUs/CPU-Cores.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
320 """
f542ad1f76c5 Added a batch mode to the code style checker to make use of multiple CPUs/CPU-Cores.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
321 Module function acting as the parallel worker for the style check.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
322
10437
2f70ca07f0af Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10362
diff changeset
323 @param inputQueue input queue
2f70ca07f0af Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10362
diff changeset
324 @type multiprocessing.Queue
2f70ca07f0af Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10362
diff changeset
325 @param outputQueue output queue
2f70ca07f0af Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10362
diff changeset
326 @type multiprocessing.Queue
4218
f542ad1f76c5 Added a batch mode to the code style checker to make use of multiple CPUs/CPU-Cores.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
327 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
328 for filename, source, args in iter(inputQueue.get, "STOP"):
4218
f542ad1f76c5 Added a batch mode to the code style checker to make use of multiple CPUs/CPU-Cores.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
329 result = __checkCodeStyle(filename, source, args)
5588
6ba512d9f46a Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5586
diff changeset
330 outputQueue.put((filename, result))
4218
f542ad1f76c5 Added a batch mode to the code style checker to make use of multiple CPUs/CPU-Cores.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
331
f542ad1f76c5 Added a batch mode to the code style checker to make use of multiple CPUs/CPU-Cores.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
332
7619
ef2b5af23ce7 Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7615
diff changeset
333 def __checkSyntax(filename, source):
ef2b5af23ce7 Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7615
diff changeset
334 """
ef2b5af23ce7 Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7615
diff changeset
335 Private module function to perform a syntax check.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
336
7619
ef2b5af23ce7 Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7615
diff changeset
337 @param filename source filename
ef2b5af23ce7 Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7615
diff changeset
338 @type str
10579
be997a4bd670 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
339 @param source list of code lines to be checked
be997a4bd670 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
340 @type list of str
8198
1c765dc90c21 Code Style Checker: changed code such, that the AST tree is built only once and passed to each checker module.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8194
diff changeset
341 @return tuple containing the error dictionary with syntax error details,
1c765dc90c21 Code Style Checker: changed code such, that the AST tree is built only once and passed to each checker module.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8194
diff changeset
342 a statistics dictionary and None or a tuple containing two None and
1c765dc90c21 Code Style Checker: changed code such, that the AST tree is built only once and passed to each checker module.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8194
diff changeset
343 the generated AST tree
1c765dc90c21 Code Style Checker: changed code such, that the AST tree is built only once and passed to each checker module.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8194
diff changeset
344 @rtype tuple of (dict, dict, None) or tuple of (None, None, ast.Module)
7619
ef2b5af23ce7 Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7615
diff changeset
345 """
ef2b5af23ce7 Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7615
diff changeset
346 src = "".join(source)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
347
7619
ef2b5af23ce7 Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7615
diff changeset
348 try:
10119
64147a7e6393 Removed support for Python 3.7 because that is EOL.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10116
diff changeset
349 tree = ast.parse(src, filename, "exec", type_comments=True)
64147a7e6393 Removed support for Python 3.7 because that is EOL.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10116
diff changeset
350 # need the 'type_comments' parameter to include type annotations
8198
1c765dc90c21 Code Style Checker: changed code such, that the AST tree is built only once and passed to each checker module.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8194
diff changeset
351 return None, None, tree
7619
ef2b5af23ce7 Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7615
diff changeset
352 except (SyntaxError, TypeError):
ef2b5af23ce7 Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7615
diff changeset
353 exc_type, exc = sys.exc_info()[:2]
ef2b5af23ce7 Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7615
diff changeset
354 if len(exc.args) > 1:
ef2b5af23ce7 Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7615
diff changeset
355 offset = exc.args[1]
ef2b5af23ce7 Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7615
diff changeset
356 if len(offset) > 2:
ef2b5af23ce7 Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7615
diff changeset
357 offset = offset[1:3]
ef2b5af23ce7 Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7615
diff changeset
358 else:
ef2b5af23ce7 Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7615
diff changeset
359 offset = (1, 0)
8205
4a0f1f896341 Applied some code simplifications suggested by the new Simplify checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8198
diff changeset
360 return (
4a0f1f896341 Applied some code simplifications suggested by the new Simplify checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8198
diff changeset
361 {
4a0f1f896341 Applied some code simplifications suggested by the new Simplify checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8198
diff changeset
362 "file": filename,
4a0f1f896341 Applied some code simplifications suggested by the new Simplify checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8198
diff changeset
363 "line": offset[0],
4a0f1f896341 Applied some code simplifications suggested by the new Simplify checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8198
diff changeset
364 "offset": offset[1],
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11142
diff changeset
365 "code": "E-901",
8205
4a0f1f896341 Applied some code simplifications suggested by the new Simplify checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8198
diff changeset
366 "args": [exc_type.__name__, exc.args[0]],
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
367 },
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
368 {
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11142
diff changeset
369 "E-901": 1,
8205
4a0f1f896341 Applied some code simplifications suggested by the new Simplify checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8198
diff changeset
370 },
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
371 None,
8205
4a0f1f896341 Applied some code simplifications suggested by the new Simplify checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8198
diff changeset
372 )
7619
ef2b5af23ce7 Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7615
diff changeset
373
ef2b5af23ce7 Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7615
diff changeset
374
4218
f542ad1f76c5 Added a batch mode to the code style checker to make use of multiple CPUs/CPU-Cores.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
375 def __checkCodeStyle(filename, source, args):
f542ad1f76c5 Added a batch mode to the code style checker to make use of multiple CPUs/CPU-Cores.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
376 """
10069
435cc5875135 Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10059
diff changeset
377 Private module function to perform the source code style check and/or fix
4218
f542ad1f76c5 Added a batch mode to the code style checker to make use of multiple CPUs/CPU-Cores.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
378 found errors.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
379
6264
04a671fa4adb code style checker: extended the dialog to be able to define the number of blank lines before class and function/method definitions
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6235
diff changeset
380 @param filename source filename
04a671fa4adb code style checker: extended the dialog to be able to define the number of blank lines before class and function/method definitions
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6235
diff changeset
381 @type str
10579
be997a4bd670 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
382 @param source list of code lines to be checked
be997a4bd670 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
383 @type list of str
4218
f542ad1f76c5 Added a batch mode to the code style checker to make use of multiple CPUs/CPU-Cores.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
384 @param args arguments used by the codeStyleCheck function (list of
6264
04a671fa4adb code style checker: extended the dialog to be able to define the number of blank lines before class and function/method definitions
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6235
diff changeset
385 excludeMessages, includeMessages, repeatMessages, fixCodes,
6786
701b511ba8f5 Added option to set the documentation line length.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 6645
diff changeset
386 noFixCodes, fixIssues, maxLineLength, maxDocLineLength, blankLines,
7247
bf9379f964f3 Code Style Checker:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7246
diff changeset
387 hangClosing, docType, codeComplexityArgs, miscellaneousArgs,
10052
041d0785dd42 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10046
diff changeset
388 annotationArgs, securityArgs, importsArgs, nameOrderArgs, unusedArgs, errors,
041d0785dd42 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10046
diff changeset
389 eol, encoding, backup)
6264
04a671fa4adb code style checker: extended the dialog to be able to define the number of blank lines before class and function/method definitions
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6235
diff changeset
390 @type list of (str, str, bool, str, str, bool, int, list of (int, int),
10052
041d0785dd42 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10046
diff changeset
391 bool, str, dict, dict, dict, dict, dict, dict, list of str, str, str, bool)
7610
df7025fe26a3 Code Style Checker: reworked the API between frontend and backend to get some more flexibility for the future.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
392 @return tuple of statistics data and list of result dictionaries with
df7025fe26a3 Code Style Checker: reworked the API between frontend and backend to get some more flexibility for the future.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
393 keys:
df7025fe26a3 Code Style Checker: reworked the API between frontend and backend to get some more flexibility for the future.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
394 <ul>
df7025fe26a3 Code Style Checker: reworked the API between frontend and backend to get some more flexibility for the future.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
395 <li>file: file name</li>
df7025fe26a3 Code Style Checker: reworked the API between frontend and backend to get some more flexibility for the future.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
396 <li>line: line_number</li>
df7025fe26a3 Code Style Checker: reworked the API between frontend and backend to get some more flexibility for the future.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
397 <li>offset: offset within line</li>
10069
435cc5875135 Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10059
diff changeset
398 <li>code: error message code</li>
7610
df7025fe26a3 Code Style Checker: reworked the API between frontend and backend to get some more flexibility for the future.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
399 <li>args: list of arguments to format the message</li>
df7025fe26a3 Code Style Checker: reworked the API between frontend and backend to get some more flexibility for the future.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
400 <li>ignored: flag indicating this issue was ignored</li>
df7025fe26a3 Code Style Checker: reworked the API between frontend and backend to get some more flexibility for the future.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
401 <li>fixed: flag indicating this issue was fixed</li>
df7025fe26a3 Code Style Checker: reworked the API between frontend and backend to get some more flexibility for the future.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
402 <li>autofixing: flag indicating that a fix can be done</li>
df7025fe26a3 Code Style Checker: reworked the API between frontend and backend to get some more flexibility for the future.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
403 <li>fixcode: message code for the fix</li>
df7025fe26a3 Code Style Checker: reworked the API between frontend and backend to get some more flexibility for the future.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
404 <li>fixargs: list of arguments to format the fix message</li>
df7025fe26a3 Code Style Checker: reworked the API between frontend and backend to get some more flexibility for the future.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
405 </ul>
df7025fe26a3 Code Style Checker: reworked the API between frontend and backend to get some more flexibility for the future.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
406 @rtype tuple of (dict, list of dict)
4218
f542ad1f76c5 Added a batch mode to the code style checker to make use of multiple CPUs/CPU-Cores.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
407 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
408 (
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
409 excludeMessages,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
410 includeMessages,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
411 repeatMessages,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
412 fixCodes,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
413 noFixCodes,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
414 fixIssues,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
415 maxLineLength,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
416 maxDocLineLength,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
417 blankLines,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
418 hangClosing,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
419 docType,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
420 codeComplexityArgs,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
421 miscellaneousArgs,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
422 annotationArgs,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
423 securityArgs,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
424 importsArgs,
10046
35b27af462ef Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10041
diff changeset
425 nameOrderArgs,
10052
041d0785dd42 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10046
diff changeset
426 unusedArgs,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
427 errors,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
428 eol,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
429 encoding,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
430 backup,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
431 ) = args
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
432
3209
c5432abceb25 CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
433 stats = {}
3616
081b69e00f3e updated pep8 to 1.5.6
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3564
diff changeset
434
9482
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
435 fixer = (
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
436 CodeStyleFixer(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
437 filename,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
438 source,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
439 fixCodes,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
440 noFixCodes,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
441 maxLineLength,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
442 blankLines,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
443 True,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
444 eol,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
445 backup,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
446 )
9482
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
447 if fixIssues
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
448 else None
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
449 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
450
3209
c5432abceb25 CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
451 if not errors:
c5432abceb25 CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
452 if includeMessages:
11160
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
453 selected = [s.strip() for s in includeMessages.split(",") if s.strip()]
3209
c5432abceb25 CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
454 else:
11160
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
455 selected = []
3209
c5432abceb25 CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
456 if excludeMessages:
11160
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
457 ignored = [i.strip() for i in excludeMessages.split(",") if i.strip()]
3209
c5432abceb25 CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
458 else:
11160
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
459 ignored = []
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
460
8198
1c765dc90c21 Code Style Checker: changed code such, that the AST tree is built only once and passed to each checker module.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8194
diff changeset
461 syntaxError, syntaxStats, tree = __checkSyntax(filename, source)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
462
8198
1c765dc90c21 Code Style Checker: changed code such, that the AST tree is built only once and passed to each checker module.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8194
diff changeset
463 # perform the checks only, if syntax is ok and AST tree was generated
1c765dc90c21 Code Style Checker: changed code such, that the AST tree is built only once and passed to each checker module.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8194
diff changeset
464 if tree:
11159
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
465 # determine enabled categories
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
466 enabledCategories = set()
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
467 for includeMessage in includeMessages.split(","):
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
468 category = includeMessage.strip().split("-", 1)[0]
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
469 enabledCategories.add(category)
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
470
7619
ef2b5af23ce7 Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7615
diff changeset
471 # check coding style
11160
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
472 if "E" in enabledCategories or "W" in enabledCategories:
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
473 pycodestyle.BLANK_LINES_CONFIG = {
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
474 # Top level class and function.
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
475 "top_level": blankLines[0],
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
476 # Methods and nested class and function.
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
477 "method": blankLines[1],
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
478 }
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
479 styleGuide = pycodestyle.StyleGuide(
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
480 reporter=CodeStyleCheckerReport,
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
481 repeat=repeatMessages,
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
482 select=[
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
483 x.replace("-", "", 1) # change to pycodestyle error codes
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
484 for x in selected
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
485 if x.startswith(("E-", "W-"))
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
486 ],
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
487 ignore=[
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
488 x.replace("-", "", 1) # change to pycodestyle error codes
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
489 for x in ignored
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
490 if x.startswith(("E-", "W-"))
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
491 ],
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
492 max_line_length=maxLineLength,
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
493 max_doc_length=maxDocLineLength,
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
494 hang_closing=hangClosing,
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
495 )
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
496 report = styleGuide.options.report
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
497 styleGuide.input_file(filename, lines=source)
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
498 stats.update(report.counters)
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
499 errors += report.errors
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
500
7619
ef2b5af23ce7 Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7615
diff changeset
501 # check documentation style
11159
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
502 if DocStyleChecker.Category in enabledCategories:
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
503 docStyleChecker = DocStyleChecker(
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
504 source,
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
505 filename,
11160
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
506 selected,
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
507 ignored,
11159
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
508 [],
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
509 repeatMessages,
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
510 maxLineLength=maxDocLineLength,
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
511 docType=docType,
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
512 )
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
513 docStyleChecker.run()
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
514 stats.update(docStyleChecker.counters)
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
515 errors += docStyleChecker.errors
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
516
7619
ef2b5af23ce7 Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7615
diff changeset
517 # miscellaneous additional checks
11159
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
518 if MiscellaneousChecker.Category in enabledCategories:
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
519 miscellaneousChecker = MiscellaneousChecker(
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
520 source,
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
521 filename,
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
522 tree,
11160
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
523 selected,
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
524 ignored,
11159
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
525 [],
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
526 repeatMessages,
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
527 miscellaneousArgs,
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
528 )
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
529 miscellaneousChecker.run()
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
530 stats.update(miscellaneousChecker.counters)
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
531 errors += miscellaneousChecker.errors
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
532
7619
ef2b5af23ce7 Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7615
diff changeset
533 # check code complexity
11159
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
534 if ComplexityChecker.Category in enabledCategories:
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
535 complexityChecker = ComplexityChecker(
11160
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
536 source, filename, tree, selected, ignored, codeComplexityArgs
11159
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
537 )
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
538 complexityChecker.run()
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
539 stats.update(complexityChecker.counters)
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
540 errors += complexityChecker.errors
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
541
7619
ef2b5af23ce7 Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7615
diff changeset
542 # check function annotations
11159
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
543 if AnnotationsChecker.Category in enabledCategories:
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
544 annotationsChecker = AnnotationsChecker(
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
545 source,
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
546 filename,
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
547 tree,
11160
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
548 selected,
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
549 ignored,
11159
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
550 [],
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
551 repeatMessages,
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
552 annotationArgs,
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
553 )
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
554 annotationsChecker.run()
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
555 stats.update(annotationsChecker.counters)
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
556 errors += annotationsChecker.errors
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
557
8186
655b658aa7ee Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8166
diff changeset
558 # check for security issues
11159
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
559 if SecurityChecker.Category in enabledCategories:
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
560 securityChecker = SecurityChecker(
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
561 source,
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
562 filename,
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
563 tree,
11160
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
564 selected,
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
565 ignored,
11159
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
566 [],
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
567 repeatMessages,
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
568 securityArgs,
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
569 )
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
570 securityChecker.run()
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
571 stats.update(securityChecker.counters)
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
572 errors += securityChecker.errors
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
573
8186
655b658aa7ee Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8166
diff changeset
574 # check for pathlib usage
11159
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
575 if PathlibChecker.Category in enabledCategories:
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
576 pathlibChecker = PathlibChecker(
11160
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
577 source, filename, tree, selected, ignored, [], repeatMessages
11159
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
578 )
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
579 pathlibChecker.run()
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
580 stats.update(pathlibChecker.counters)
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
581 errors += pathlibChecker.errors
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
582
8186
655b658aa7ee Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8166
diff changeset
583 # check for code simplifications
11159
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
584 if SimplifyChecker.Category in enabledCategories:
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
585 simplifyChecker = SimplifyChecker(
11160
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
586 source, filename, tree, selected, ignored, [], repeatMessages
11159
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
587 )
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
588 simplifyChecker.run()
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
589 stats.update(simplifyChecker.counters)
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
590 errors += simplifyChecker.errors
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
591
8790
548df4df8256 Continued implementing a checker for import statements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8650
diff changeset
592 # check import statements
11159
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
593 if ImportsChecker.Category in enabledCategories:
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
594 importsChecker = ImportsChecker(
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
595 source,
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
596 filename,
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
597 tree,
11160
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
598 selected,
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
599 ignored,
11159
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
600 [],
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
601 repeatMessages,
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
602 importsArgs,
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
603 )
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
604 importsChecker.run()
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
605 stats.update(importsChecker.counters)
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
606 errors += importsChecker.errors
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
607
11142
2f0fb22c1d63 Fixed a few issues in the code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11090
diff changeset
608 # check naming style
11159
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
609 if NamingStyleChecker.Category in enabledCategories:
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
610 namingStyleChecker = NamingStyleChecker(
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
611 source,
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
612 filename,
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
613 tree,
11160
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
614 selected,
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
615 ignored,
11159
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
616 [],
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
617 repeatMessages,
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
618 {}, # no arguments yet
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
619 )
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
620 namingStyleChecker.run()
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
621 stats.update(namingStyleChecker.counters)
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
622 errors += namingStyleChecker.errors
11142
2f0fb22c1d63 Fixed a few issues in the code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11090
diff changeset
623
10046
35b27af462ef Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10041
diff changeset
624 # check name ordering
11159
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
625 if NameOrderChecker.Category in enabledCategories:
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
626 nameOrderChecker = NameOrderChecker(
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
627 source,
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
628 filename,
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
629 tree,
11160
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
630 selected,
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
631 ignored,
11159
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
632 [],
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
633 repeatMessages,
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
634 nameOrderArgs,
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
635 )
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
636 nameOrderChecker.run()
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
637 stats.update(nameOrderChecker.counters)
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
638 errors += nameOrderChecker.errors
10046
35b27af462ef Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10041
diff changeset
639
10052
041d0785dd42 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10046
diff changeset
640 # check unused arguments and variables
11159
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
641 if UnusedChecker.Category in enabledCategories:
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
642 unusedChecker = UnusedChecker(
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
643 source,
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
644 filename,
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
645 tree,
11160
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
646 selected,
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
647 ignored,
11159
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
648 [],
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
649 repeatMessages,
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
650 unusedArgs,
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
651 )
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
652 unusedChecker.run()
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
653 stats.update(unusedChecker.counters)
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
654 errors += unusedChecker.errors
10052
041d0785dd42 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10046
diff changeset
655
10116
4a619fb7bd09 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
656 # check async function definitions
11159
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
657 if AsyncChecker.Category in enabledCategories:
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
658 asyncChecker = AsyncChecker(
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
659 source,
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
660 filename,
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
661 tree,
11160
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
662 selected,
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
663 ignored,
11159
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
664 [],
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
665 repeatMessages,
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
666 {}, # no arguments yet
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
667 )
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
668 asyncChecker.run()
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
669 stats.update(asyncChecker.counters)
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
670 errors += asyncChecker.errors
10116
4a619fb7bd09 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
671
10362
cfa7034cccf6 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10122
diff changeset
672 # checking logging statements
11159
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
673 if LoggingChecker.Category in enabledCategories:
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
674 loggingChecker = LoggingChecker(
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
675 source,
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
676 filename,
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
677 tree,
11160
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
678 selected,
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
679 ignored,
11159
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
680 [],
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
681 repeatMessages,
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
682 {}, # no arguments yet
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
683 )
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
684 loggingChecker.run()
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
685 stats.update(loggingChecker.counters)
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
686 errors += loggingChecker.errors
10362
cfa7034cccf6 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10122
diff changeset
687
11142
2f0fb22c1d63 Fixed a few issues in the code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11090
diff changeset
688 # check 'pydantic' related topics
11159
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
689 if PydanticChecker.Category in enabledCategories:
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
690 pydanticChecker = PydanticChecker(
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
691 source,
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
692 filename,
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
693 tree,
11160
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
694 selected,
070b01a1a4c1 Corrected the usage of the 'pycodestyle' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11159
diff changeset
695 ignored,
11159
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
696 [],
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
697 repeatMessages,
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
698 {}, # no arguments yet
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
699 )
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
700 pydanticChecker.run()
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
701 stats.update(pydanticChecker.counters)
2abfc48a72db Changed the code style checker to only instantiate and run those checkers, that are actually enabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11150
diff changeset
702 errors += pydanticChecker.errors
11142
2f0fb22c1d63 Fixed a few issues in the code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11090
diff changeset
703
8198
1c765dc90c21 Code Style Checker: changed code such, that the AST tree is built only once and passed to each checker module.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8194
diff changeset
704 elif syntaxError:
1c765dc90c21 Code Style Checker: changed code such, that the AST tree is built only once and passed to each checker module.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8194
diff changeset
705 errors = [syntaxError]
1c765dc90c21 Code Style Checker: changed code such, that the AST tree is built only once and passed to each checker module.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8194
diff changeset
706 stats.update(syntaxStats)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
707
4444
4867c8189b62 Multiple pep8 fixes in one line doesn't mix up syntax any more.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 4423
diff changeset
708 errorsDict = {}
7610
df7025fe26a3 Code Style Checker: reworked the API between frontend and backend to get some more flexibility for the future.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
709 for error in errors:
df7025fe26a3 Code Style Checker: reworked the API between frontend and backend to get some more flexibility for the future.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
710 if error["line"] > len(source):
df7025fe26a3 Code Style Checker: reworked the API between frontend and backend to get some more flexibility for the future.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
711 error["line"] = len(source)
4444
4867c8189b62 Multiple pep8 fixes in one line doesn't mix up syntax any more.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 4423
diff changeset
712 # inverse processing of messages and fixes
7610
df7025fe26a3 Code Style Checker: reworked the API between frontend and backend to get some more flexibility for the future.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
713 errorLine = errorsDict.setdefault(error["line"], [])
df7025fe26a3 Code Style Checker: reworked the API between frontend and backend to get some more flexibility for the future.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
714 errorLine.append((error["offset"], error))
4444
4867c8189b62 Multiple pep8 fixes in one line doesn't mix up syntax any more.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 4423
diff changeset
715 deferredFixes = {}
4867c8189b62 Multiple pep8 fixes in one line doesn't mix up syntax any more.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 4423
diff changeset
716 results = []
7610
df7025fe26a3 Code Style Checker: reworked the API between frontend and backend to get some more flexibility for the future.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
717 for lineno, errorsList in errorsDict.items():
df7025fe26a3 Code Style Checker: reworked the API between frontend and backend to get some more flexibility for the future.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
718 errorsList.sort(key=lambda x: x[0], reverse=True)
df7025fe26a3 Code Style Checker: reworked the API between frontend and backend to get some more flexibility for the future.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
719 for _, error in errorsList:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
720 error.update(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
721 {
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
722 "ignored": False,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
723 "fixed": False,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
724 "autofixing": False,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
725 "fixcode": "",
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
726 "fixargs": [],
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
727 "securityOk": False,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
728 }
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
729 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
730
4444
4867c8189b62 Multiple pep8 fixes in one line doesn't mix up syntax any more.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 4423
diff changeset
731 if source:
10069
435cc5875135 Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10059
diff changeset
732 errorCode = error["code"]
5172
f35c7e0db572 Added capaibility to ignore warnings by code (use __IGNORE_WARNING_<code>__, e.g. __IGNORE_WARNING_M613__).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5147
diff changeset
733 lineFlags = extractLineFlags(source[lineno - 1].strip())
8243
cc717c2ae956 Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
734 with contextlib.suppress(IndexError):
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
735 lineFlags += extractLineFlags(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
736 source[lineno].strip(), flagsLine=True
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
737 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
738
10069
435cc5875135 Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10059
diff changeset
739 if securityOk(errorCode, lineFlags):
7615
ca2949b1a29a Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7611
diff changeset
740 error["securityOk"] = True
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
741
10069
435cc5875135 Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10059
diff changeset
742 if ignoreCode(errorCode, lineFlags):
7615
ca2949b1a29a Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7611
diff changeset
743 error["ignored"] = True
ca2949b1a29a Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7611
diff changeset
744 else:
4444
4867c8189b62 Multiple pep8 fixes in one line doesn't mix up syntax any more.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 4423
diff changeset
745 if fixer:
7610
df7025fe26a3 Code Style Checker: reworked the API between frontend and backend to get some more flexibility for the future.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
746 res, fixcode, fixargs, id_ = fixer.fixIssue(
10069
435cc5875135 Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10059
diff changeset
747 lineno, error["offset"], errorCode
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
748 )
4444
4867c8189b62 Multiple pep8 fixes in one line doesn't mix up syntax any more.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 4423
diff changeset
749 if res == -1:
7610
df7025fe26a3 Code Style Checker: reworked the API between frontend and backend to get some more flexibility for the future.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
750 deferredFixes[id_] = error
4444
4867c8189b62 Multiple pep8 fixes in one line doesn't mix up syntax any more.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 4423
diff changeset
751 else:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
752 error.update(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
753 {
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
754 "fixed": res == 1,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
755 "autofixing": True,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
756 "fixcode": fixcode,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
757 "fixargs": fixargs,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
758 }
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
759 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
760
7610
df7025fe26a3 Code Style Checker: reworked the API between frontend and backend to get some more flexibility for the future.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
761 results.append(error)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
762
3209
c5432abceb25 CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
763 if fixer:
c5432abceb25 CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
764 deferredResults = fixer.finalize()
c5432abceb25 CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
765 for id_ in deferredResults:
7610
df7025fe26a3 Code Style Checker: reworked the API between frontend and backend to get some more flexibility for the future.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
766 fixed, fixcode, fixargs = deferredResults[id_]
df7025fe26a3 Code Style Checker: reworked the API between frontend and backend to get some more flexibility for the future.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
767 error = deferredFixes[id_]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
768 error.update(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
769 {
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
770 "ignored": False,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
771 "fixed": fixed == 1,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
772 "autofixing": True,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
773 "fixcode": fixcode,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
774 "fixargs": fixargs,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
775 }
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
776 )
3413
5e63f809732a Code style checker: Translations extracted and refactored.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3228
diff changeset
777
7610
df7025fe26a3 Code Style Checker: reworked the API between frontend and backend to get some more flexibility for the future.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
778 saveError = fixer.saveFile(encoding)
df7025fe26a3 Code Style Checker: reworked the API between frontend and backend to get some more flexibility for the future.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
779 if saveError:
df7025fe26a3 Code Style Checker: reworked the API between frontend and backend to get some more flexibility for the future.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
780 for error in results:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
781 error.update(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
782 {
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
783 "fixcode": saveError[0],
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
784 "fixargs": saveError[1],
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
785 }
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9219
diff changeset
786 )
3209
c5432abceb25 CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
787
c5432abceb25 CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
788 return stats, results

eric ide

mercurial