Sun, 02 Mar 2025 16:59:50 +0100
Corrected the usage of the 'pycodestyle' checker.
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 | 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 |