Thu, 27 Feb 2025 14:42:39 +0100
Code Style Checkers
- Refactored the various code style checkers for better maintainability.
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 | """ |
c5432abceb25
CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3145
diff
changeset
|
57 | Class implementing a special report to be used with our dialog. |
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] |
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
|
90 | errorCode = code[0] + "-" + code[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
|
91 | if self._ignore_code(errorCode): |
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
|
92 | return None |
11150
73d80859079c
Code Style Checkers
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11147
diff
changeset
|
93 | |
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
|
94 | 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
|
95 | 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
|
96 | 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
|
97 | self.counters[errorCode] = 1 |
11150
73d80859079c
Code Style Checkers
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11147
diff
changeset
|
98 | |
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
|
99 | # 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
|
100 | 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
|
101 | return None |
11150
73d80859079c
Code Style Checkers
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11147
diff
changeset
|
102 | |
10069
435cc5875135
Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10059
diff
changeset
|
103 | 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
|
104 | 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
|
105 | { |
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 | "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
|
107 | "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
|
108 | "offset": offset, |
10069
435cc5875135
Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10059
diff
changeset
|
109 | "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
|
110 | "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
|
111 | } |
3209
c5432abceb25
CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3145
diff
changeset
|
112 | ) |
11150
73d80859079c
Code Style Checkers
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11147
diff
changeset
|
113 | |
10069
435cc5875135
Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10059
diff
changeset
|
114 | return errorCode |
3209
c5432abceb25
CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3145
diff
changeset
|
115 | |
c5432abceb25
CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3145
diff
changeset
|
116 | |
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
|
117 | 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
|
118 | """ |
c5432abceb25
CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3145
diff
changeset
|
119 | 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
|
120 | comment. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
121 | |
10437
2f70ca07f0af
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10362
diff
changeset
|
122 | @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
|
123 | @type str |
2f70ca07f0af
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10362
diff
changeset
|
124 | @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
|
125 | @type str |
2f70ca07f0af
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10362
diff
changeset
|
126 | @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
|
127 | @type str |
2f70ca07f0af
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10362
diff
changeset
|
128 | @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
|
129 | @type bool |
2f70ca07f0af
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10362
diff
changeset
|
130 | @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
|
131 | @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
|
132 | """ |
c5432abceb25
CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3145
diff
changeset
|
133 | flags = [] |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
134 | |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
135 | 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
|
136 | 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
|
137 | if pos >= 0: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
138 | 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
|
139 | 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
|
140 | 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
|
141 | 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
|
142 | comment = comment[:endPos] |
10041
67c8efa6d098
CodeStyleChecker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9786
diff
changeset
|
143 | if comment.startswith(("noqa:", "NOQA:")): |
67c8efa6d098
CodeStyleChecker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9786
diff
changeset
|
144 | flags = [ |
67c8efa6d098
CodeStyleChecker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9786
diff
changeset
|
145 | "noqa:{0}".format(f.strip()) |
10046
35b27af462ef
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10041
diff
changeset
|
146 | for f in comment[len("noqa:") :].split(",") |
10041
67c8efa6d098
CodeStyleChecker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9786
diff
changeset
|
147 | ] |
67c8efa6d098
CodeStyleChecker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9786
diff
changeset
|
148 | else: |
67c8efa6d098
CodeStyleChecker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9786
diff
changeset
|
149 | flags = [ |
10069
435cc5875135
Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10059
diff
changeset
|
150 | f |
10041
67c8efa6d098
CodeStyleChecker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9786
diff
changeset
|
151 | for f in comment.split() |
67c8efa6d098
CodeStyleChecker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9786
diff
changeset
|
152 | if (f.startswith("__") and f.endswith("__")) |
67c8efa6d098
CodeStyleChecker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9786
diff
changeset
|
153 | ] |
67c8efa6d098
CodeStyleChecker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9786
diff
changeset
|
154 | flags += [ |
10069
435cc5875135
Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10059
diff
changeset
|
155 | f.lower() |
10041
67c8efa6d098
CodeStyleChecker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9786
diff
changeset
|
156 | for f in comment.split() |
67c8efa6d098
CodeStyleChecker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9786
diff
changeset
|
157 | if f in ("noqa", "NOQA", "nosec", "NOSEC", "secok", "SECOK") |
67c8efa6d098
CodeStyleChecker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9786
diff
changeset
|
158 | ] |
3209
c5432abceb25
CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3145
diff
changeset
|
159 | return flags |
c5432abceb25
CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3145
diff
changeset
|
160 | |
c5432abceb25
CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3145
diff
changeset
|
161 | |
10069
435cc5875135
Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10059
diff
changeset
|
162 | 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
|
163 | """ |
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 | 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
|
165 | |
10069
435cc5875135
Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10059
diff
changeset
|
166 | @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
|
167 | @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
|
168 | @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
|
169 | @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
|
170 | @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
|
171 | @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
|
172 | """ |
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 | if lineFlags: |
7256
4ef3b78ebb4e
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7247
diff
changeset
|
174 | if ( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
175 | "__IGNORE_WARNING__" in lineFlags |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
176 | or "noqa" in lineFlags |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
177 | or "nosec" in lineFlags |
7256
4ef3b78ebb4e
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7247
diff
changeset
|
178 | ): |
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
|
179 | # 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
|
180 | return True |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
181 | |
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
|
182 | 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
|
183 | # 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
|
184 | 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
|
185 | 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
|
186 | 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
|
187 | return True |
10041
67c8efa6d098
CodeStyleChecker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9786
diff
changeset
|
188 | elif flag.startswith("noqa:"): |
10046
35b27af462ef
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10041
diff
changeset
|
189 | 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
|
190 | if errorCode.startswith(ignoredCode): |
10041
67c8efa6d098
CodeStyleChecker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9786
diff
changeset
|
191 | return True |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
192 | |
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
|
193 | 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
|
194 | |
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 | |
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
|
196 | 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
|
197 | """ |
10069
435cc5875135
Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10059
diff
changeset
|
198 | 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
|
199 | |
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
|
200 | @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
|
201 | @type str |
ca2949b1a29a
Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7611
diff
changeset
|
202 | @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
|
203 | @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
|
204 | @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
|
205 | @rtype bool |
ca2949b1a29a
Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7611
diff
changeset
|
206 | """ |
ca2949b1a29a
Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7611
diff
changeset
|
207 | if lineFlags: |
ca2949b1a29a
Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7611
diff
changeset
|
208 | return "secok" in lineFlags |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
209 | |
7615
ca2949b1a29a
Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7611
diff
changeset
|
210 | return False |
ca2949b1a29a
Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7611
diff
changeset
|
211 | |
ca2949b1a29a
Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7611
diff
changeset
|
212 | |
3209
c5432abceb25
CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3145
diff
changeset
|
213 | 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
|
214 | """ |
10069
435cc5875135
Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10059
diff
changeset
|
215 | 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
|
216 | |
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
|
217 | @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
|
218 | @type str |
10579
be997a4bd670
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10439
diff
changeset
|
219 | @param source list of code lines to be checked |
be997a4bd670
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10439
diff
changeset
|
220 | @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
|
221 | @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
|
222 | excludeMessages, includeMessages, repeatMessages, fixCodes, |
6786
701b511ba8f5
Added option to set the documentation line length.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6645
diff
changeset
|
223 | noFixCodes, fixIssues, maxLineLength, maxDocLineLength, blankLines, |
8801
8fbb21be8579
Continued implementing a checker for import statements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8790
diff
changeset
|
224 | hangClosing, docType, codeComplexityArgs, miscellaneousArgs, |
10052
041d0785dd42
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10046
diff
changeset
|
225 | annotationArgs, securityArgs, importsArgs, nameOrderArgs, unusedArgs, errors, |
041d0785dd42
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10046
diff
changeset
|
226 | 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
|
227 | @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
|
228 | 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
|
229 | @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
|
230 | 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
|
231 | 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
|
232 | @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
|
233 | str)) |
3209
c5432abceb25
CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3145
diff
changeset
|
234 | """ |
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
|
235 | 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
|
236 | |
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 | |
5762
76ef5f340007
Added functionality to limit the number of processes used for bachground services.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5737
diff
changeset
|
238 | 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
|
239 | """ |
10069
435cc5875135
Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10059
diff
changeset
|
240 | 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
|
241 | |
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
|
242 | @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
|
243 | @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
|
244 | @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
|
245 | @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
|
246 | @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
|
247 | @type str |
4221
c9fdc07753a7
Implemented the Cancel logic for batch checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4218
diff
changeset
|
248 | @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
|
249 | @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
|
250 | @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
|
251 | @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
|
252 | """ |
5762
76ef5f340007
Added functionality to limit the number of processes used for bachground services.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5737
diff
changeset
|
253 | 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
|
254 | # 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
|
255 | try: |
76ef5f340007
Added functionality to limit the number of processes used for bachground services.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5737
diff
changeset
|
256 | 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
|
257 | 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
|
258 | 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 | 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
|
260 | 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
|
261 | else: |
76ef5f340007
Added functionality to limit the number of processes used for bachground services.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5737
diff
changeset
|
262 | 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
|
263 | |
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 | # 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
|
265 | 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
|
266 | 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
|
267 | |
9289
ba49c41e8f63
Did some optimizations in the multiprocessing code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9284
diff
changeset
|
268 | # 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
|
269 | 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
|
270 | initialTasks = min(2 * NumberOfProcesses, tasks) |
9289
ba49c41e8f63
Did some optimizations in the multiprocessing code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9284
diff
changeset
|
271 | for _ in range(initialTasks): |
ba49c41e8f63
Did some optimizations in the multiprocessing code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9284
diff
changeset
|
272 | 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
|
273 | |
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 | # 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
|
275 | workers = [ |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
276 | 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
|
277 | 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
|
278 | ] |
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 | 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
|
280 | 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
|
281 | |
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 | # Get and send results |
9289
ba49c41e8f63
Did some optimizations in the multiprocessing code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9284
diff
changeset
|
283 | 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
|
284 | 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
|
285 | wasCancelled = False |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
286 | |
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
|
287 | 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
|
288 | 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
|
289 | # 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
|
290 | 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
|
291 | 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
|
292 | 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
|
293 | 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
|
294 | # 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
|
295 | 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
|
296 | 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
|
297 | break |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
298 | |
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
|
299 | if wasCancelled or cancelled(): |
4221
c9fdc07753a7
Implemented the Cancel logic for batch checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4218
diff
changeset
|
300 | # 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
|
301 | break |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
302 | |
9289
ba49c41e8f63
Did some optimizations in the multiprocessing code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9284
diff
changeset
|
303 | if argumentsList: |
ba49c41e8f63
Did some optimizations in the multiprocessing code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9284
diff
changeset
|
304 | 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
|
305 | |
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 | # 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
|
307 | for _ in range(NumberOfProcesses): |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
308 | taskQueue.put("STOP") |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
309 | |
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
|
310 | 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
|
311 | 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
|
312 | worker.close() |
9284
3b3a4f659782
"Blacked" the sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9279
diff
changeset
|
313 | |
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
|
314 | 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
|
315 | 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
|
316 | |
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 | |
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
|
318 | 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
|
319 | """ |
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 | 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
|
321 | |
10437
2f70ca07f0af
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10362
diff
changeset
|
322 | @param inputQueue input queue |
2f70ca07f0af
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10362
diff
changeset
|
323 | @type multiprocessing.Queue |
2f70ca07f0af
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10362
diff
changeset
|
324 | @param outputQueue output queue |
2f70ca07f0af
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10362
diff
changeset
|
325 | @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
|
326 | """ |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
327 | 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
|
328 | 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
|
329 | 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
|
330 | |
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 | |
7619
ef2b5af23ce7
Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7615
diff
changeset
|
332 | 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
|
333 | """ |
ef2b5af23ce7
Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7615
diff
changeset
|
334 | 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
|
335 | |
7619
ef2b5af23ce7
Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7615
diff
changeset
|
336 | @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
|
337 | @type str |
10579
be997a4bd670
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10439
diff
changeset
|
338 | @param source list of code lines to be checked |
be997a4bd670
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10439
diff
changeset
|
339 | @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
|
340 | @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
|
341 | 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
|
342 | 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
|
343 | @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
|
344 | """ |
ef2b5af23ce7
Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7615
diff
changeset
|
345 | src = "".join(source) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
346 | |
7619
ef2b5af23ce7
Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7615
diff
changeset
|
347 | try: |
10119
64147a7e6393
Removed support for Python 3.7 because that is EOL.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10116
diff
changeset
|
348 | 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
|
349 | # 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
|
350 | 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
|
351 | 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
|
352 | 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
|
353 | 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
|
354 | 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
|
355 | 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
|
356 | 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
|
357 | else: |
ef2b5af23ce7
Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7615
diff
changeset
|
358 | 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
|
359 | return ( |
4a0f1f896341
Applied some code simplifications suggested by the new Simplify checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8198
diff
changeset
|
360 | { |
4a0f1f896341
Applied some code simplifications suggested by the new Simplify checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8198
diff
changeset
|
361 | "file": filename, |
4a0f1f896341
Applied some code simplifications suggested by the new Simplify checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8198
diff
changeset
|
362 | "line": offset[0], |
4a0f1f896341
Applied some code simplifications suggested by the new Simplify checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8198
diff
changeset
|
363 | "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
|
364 | "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
|
365 | "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
|
366 | }, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
367 | { |
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
|
368 | "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
|
369 | }, |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
370 | None, |
8205
4a0f1f896341
Applied some code simplifications suggested by the new Simplify checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8198
diff
changeset
|
371 | ) |
7619
ef2b5af23ce7
Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7615
diff
changeset
|
372 | |
ef2b5af23ce7
Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7615
diff
changeset
|
373 | |
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
|
374 | 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
|
375 | """ |
10069
435cc5875135
Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10059
diff
changeset
|
376 | 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
|
377 | found errors. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
378 | |
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
|
379 | @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
|
380 | @type str |
10579
be997a4bd670
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10439
diff
changeset
|
381 | @param source list of code lines to be checked |
be997a4bd670
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10439
diff
changeset
|
382 | @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
|
383 | @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
|
384 | excludeMessages, includeMessages, repeatMessages, fixCodes, |
6786
701b511ba8f5
Added option to set the documentation line length.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
6645
diff
changeset
|
385 | noFixCodes, fixIssues, maxLineLength, maxDocLineLength, blankLines, |
7247
bf9379f964f3
Code Style Checker:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7246
diff
changeset
|
386 | hangClosing, docType, codeComplexityArgs, miscellaneousArgs, |
10052
041d0785dd42
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10046
diff
changeset
|
387 | annotationArgs, securityArgs, importsArgs, nameOrderArgs, unusedArgs, errors, |
041d0785dd42
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10046
diff
changeset
|
388 | 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
|
389 | @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
|
390 | 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
|
391 | @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
|
392 | 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
|
393 | <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
|
394 | <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
|
395 | <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
|
396 | <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
|
397 | <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
|
398 | <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
|
399 | <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
|
400 | <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
|
401 | <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
|
402 | <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
|
403 | <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
|
404 | </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
|
405 | @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
|
406 | """ |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
407 | ( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
408 | excludeMessages, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
409 | includeMessages, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
410 | repeatMessages, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
411 | fixCodes, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
412 | noFixCodes, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
413 | fixIssues, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
414 | maxLineLength, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
415 | maxDocLineLength, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
416 | blankLines, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
417 | hangClosing, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
418 | docType, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
419 | codeComplexityArgs, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
420 | miscellaneousArgs, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
421 | annotationArgs, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
422 | securityArgs, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
423 | importsArgs, |
10046
35b27af462ef
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10041
diff
changeset
|
424 | nameOrderArgs, |
10052
041d0785dd42
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10046
diff
changeset
|
425 | unusedArgs, |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
426 | errors, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
427 | eol, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
428 | encoding, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
429 | backup, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
430 | ) = args |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
431 | |
3209
c5432abceb25
CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3145
diff
changeset
|
432 | stats = {} |
3616 | 433 | |
9482
a2bc06a54d9d
Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9473
diff
changeset
|
434 | fixer = ( |
a2bc06a54d9d
Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9473
diff
changeset
|
435 | CodeStyleFixer( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
436 | filename, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
437 | source, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
438 | fixCodes, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
439 | noFixCodes, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
440 | maxLineLength, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
441 | blankLines, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
442 | True, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
443 | eol, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
444 | backup, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
445 | ) |
9482
a2bc06a54d9d
Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9473
diff
changeset
|
446 | if fixIssues |
a2bc06a54d9d
Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9473
diff
changeset
|
447 | else None |
a2bc06a54d9d
Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9473
diff
changeset
|
448 | ) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
449 | |
3209
c5432abceb25
CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3145
diff
changeset
|
450 | if not errors: |
c5432abceb25
CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3145
diff
changeset
|
451 | if includeMessages: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
452 | select = [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
|
453 | else: |
c5432abceb25
CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3145
diff
changeset
|
454 | select = [] |
c5432abceb25
CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3145
diff
changeset
|
455 | if excludeMessages: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
456 | ignore = [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
|
457 | else: |
c5432abceb25
CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3145
diff
changeset
|
458 | ignore = [] |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
459 | |
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
|
460 | 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
|
461 | |
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
|
462 | # 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
|
463 | if tree: |
7619
ef2b5af23ce7
Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7615
diff
changeset
|
464 | # check coding style |
ef2b5af23ce7
Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7615
diff
changeset
|
465 | pycodestyle.BLANK_LINES_CONFIG = { |
ef2b5af23ce7
Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7615
diff
changeset
|
466 | # Top level class and function. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
467 | "top_level": blankLines[0], |
7619
ef2b5af23ce7
Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7615
diff
changeset
|
468 | # Methods and nested class and function. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
469 | "method": blankLines[1], |
7619
ef2b5af23ce7
Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7615
diff
changeset
|
470 | } |
ef2b5af23ce7
Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7615
diff
changeset
|
471 | styleGuide = pycodestyle.StyleGuide( |
ef2b5af23ce7
Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7615
diff
changeset
|
472 | reporter=CodeStyleCheckerReport, |
ef2b5af23ce7
Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7615
diff
changeset
|
473 | repeat=repeatMessages, |
11142
2f0fb22c1d63
Fixed a few issues in the code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
474 | select=[], |
2f0fb22c1d63
Fixed a few issues in the code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
475 | ignore=[x for x in ignore if x.startswith(("E", "W"))], |
7619
ef2b5af23ce7
Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7615
diff
changeset
|
476 | max_line_length=maxLineLength, |
ef2b5af23ce7
Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7615
diff
changeset
|
477 | max_doc_length=maxDocLineLength, |
ef2b5af23ce7
Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7615
diff
changeset
|
478 | hang_closing=hangClosing, |
ef2b5af23ce7
Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7615
diff
changeset
|
479 | ) |
10579
be997a4bd670
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10439
diff
changeset
|
480 | report = styleGuide.options.report |
be997a4bd670
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10439
diff
changeset
|
481 | styleGuide.input_file(filename, lines=source) |
7619
ef2b5af23ce7
Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7615
diff
changeset
|
482 | stats.update(report.counters) |
ef2b5af23ce7
Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7615
diff
changeset
|
483 | errors = report.errors |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
484 | |
7619
ef2b5af23ce7
Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7615
diff
changeset
|
485 | # check documentation style |
ef2b5af23ce7
Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7615
diff
changeset
|
486 | docStyleChecker = DocStyleChecker( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
487 | source, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
488 | filename, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
489 | select, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
490 | ignore, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
491 | [], |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
492 | repeatMessages, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
493 | maxLineLength=maxDocLineLength, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
494 | docType=docType, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
495 | ) |
7619
ef2b5af23ce7
Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7615
diff
changeset
|
496 | docStyleChecker.run() |
ef2b5af23ce7
Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7615
diff
changeset
|
497 | stats.update(docStyleChecker.counters) |
ef2b5af23ce7
Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7615
diff
changeset
|
498 | errors += docStyleChecker.errors |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
499 | |
7619
ef2b5af23ce7
Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7615
diff
changeset
|
500 | # miscellaneous additional checks |
ef2b5af23ce7
Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7615
diff
changeset
|
501 | miscellaneousChecker = MiscellaneousChecker( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
502 | source, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
503 | filename, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
504 | tree, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
505 | select, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
506 | ignore, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
507 | [], |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
508 | repeatMessages, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
509 | miscellaneousArgs, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
510 | ) |
7619
ef2b5af23ce7
Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7615
diff
changeset
|
511 | miscellaneousChecker.run() |
ef2b5af23ce7
Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7615
diff
changeset
|
512 | stats.update(miscellaneousChecker.counters) |
ef2b5af23ce7
Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7615
diff
changeset
|
513 | errors += miscellaneousChecker.errors |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
514 | |
7619
ef2b5af23ce7
Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7615
diff
changeset
|
515 | # check code complexity |
ef2b5af23ce7
Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7615
diff
changeset
|
516 | complexityChecker = ComplexityChecker( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
517 | source, filename, tree, select, ignore, codeComplexityArgs |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
518 | ) |
7619
ef2b5af23ce7
Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7615
diff
changeset
|
519 | complexityChecker.run() |
ef2b5af23ce7
Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7615
diff
changeset
|
520 | stats.update(complexityChecker.counters) |
ef2b5af23ce7
Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7615
diff
changeset
|
521 | errors += complexityChecker.errors |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
522 | |
7619
ef2b5af23ce7
Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7615
diff
changeset
|
523 | # check function annotations |
10119
64147a7e6393
Removed support for Python 3.7 because that is EOL.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10116
diff
changeset
|
524 | annotationsChecker = AnnotationsChecker( |
64147a7e6393
Removed support for Python 3.7 because that is EOL.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10116
diff
changeset
|
525 | source, |
64147a7e6393
Removed support for Python 3.7 because that is EOL.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10116
diff
changeset
|
526 | filename, |
64147a7e6393
Removed support for Python 3.7 because that is EOL.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10116
diff
changeset
|
527 | tree, |
64147a7e6393
Removed support for Python 3.7 because that is EOL.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10116
diff
changeset
|
528 | select, |
64147a7e6393
Removed support for Python 3.7 because that is EOL.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10116
diff
changeset
|
529 | ignore, |
64147a7e6393
Removed support for Python 3.7 because that is EOL.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10116
diff
changeset
|
530 | [], |
64147a7e6393
Removed support for Python 3.7 because that is EOL.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10116
diff
changeset
|
531 | repeatMessages, |
64147a7e6393
Removed support for Python 3.7 because that is EOL.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10116
diff
changeset
|
532 | annotationArgs, |
64147a7e6393
Removed support for Python 3.7 because that is EOL.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10116
diff
changeset
|
533 | ) |
64147a7e6393
Removed support for Python 3.7 because that is EOL.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10116
diff
changeset
|
534 | annotationsChecker.run() |
64147a7e6393
Removed support for Python 3.7 because that is EOL.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10116
diff
changeset
|
535 | stats.update(annotationsChecker.counters) |
64147a7e6393
Removed support for Python 3.7 because that is EOL.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10116
diff
changeset
|
536 | errors += annotationsChecker.errors |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
537 | |
8186
655b658aa7ee
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8166
diff
changeset
|
538 | # check for security issues |
7619
ef2b5af23ce7
Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7615
diff
changeset
|
539 | securityChecker = SecurityChecker( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
540 | source, filename, tree, select, ignore, [], repeatMessages, securityArgs |
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 | securityChecker.run() |
ef2b5af23ce7
Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7615
diff
changeset
|
543 | stats.update(securityChecker.counters) |
ef2b5af23ce7
Code Style Checker: continued to implement checker for security related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7615
diff
changeset
|
544 | errors += securityChecker.errors |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
545 | |
8186
655b658aa7ee
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8166
diff
changeset
|
546 | # check for pathlib usage |
8166
bd5cd5858503
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
547 | pathlibChecker = PathlibChecker( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
548 | source, filename, tree, select, ignore, [], repeatMessages |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
549 | ) |
8166
bd5cd5858503
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
550 | pathlibChecker.run() |
bd5cd5858503
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
551 | stats.update(pathlibChecker.counters) |
bd5cd5858503
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
552 | errors += pathlibChecker.errors |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
553 | |
8186
655b658aa7ee
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8166
diff
changeset
|
554 | # check for code simplifications |
8194
b925628bf91f
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8186
diff
changeset
|
555 | simplifyChecker = SimplifyChecker( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
556 | source, filename, tree, select, ignore, [], repeatMessages |
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 | simplifyChecker.run() |
655b658aa7ee
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8166
diff
changeset
|
559 | stats.update(simplifyChecker.counters) |
655b658aa7ee
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8166
diff
changeset
|
560 | errors += simplifyChecker.errors |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
561 | |
8790
548df4df8256
Continued implementing a checker for import statements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8650
diff
changeset
|
562 | # check import statements |
548df4df8256
Continued implementing a checker for import statements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8650
diff
changeset
|
563 | importsChecker = ImportsChecker( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
564 | source, filename, tree, select, ignore, [], repeatMessages, importsArgs |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
565 | ) |
8790
548df4df8256
Continued implementing a checker for import statements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8650
diff
changeset
|
566 | importsChecker.run() |
548df4df8256
Continued implementing a checker for import statements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8650
diff
changeset
|
567 | stats.update(importsChecker.counters) |
548df4df8256
Continued implementing a checker for import statements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8650
diff
changeset
|
568 | errors += importsChecker.errors |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
569 | |
11142
2f0fb22c1d63
Fixed a few issues in the code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
570 | # check naming style |
2f0fb22c1d63
Fixed a few issues in the code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
571 | namingStyleChecker = NamingStyleChecker( |
2f0fb22c1d63
Fixed a few issues in the code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
572 | source, |
2f0fb22c1d63
Fixed a few issues in the code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
573 | filename, |
2f0fb22c1d63
Fixed a few issues in the code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
574 | tree, |
2f0fb22c1d63
Fixed a few issues in the code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
575 | select, |
2f0fb22c1d63
Fixed a few issues in the code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
576 | ignore, |
2f0fb22c1d63
Fixed a few issues in the code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
577 | [], |
2f0fb22c1d63
Fixed a few issues in the code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
578 | repeatMessages, |
2f0fb22c1d63
Fixed a few issues in the code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
579 | {}, # no arguments yet |
2f0fb22c1d63
Fixed a few issues in the code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
580 | ) |
2f0fb22c1d63
Fixed a few issues in the code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
581 | namingStyleChecker.run() |
2f0fb22c1d63
Fixed a few issues in the code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
582 | stats.update(namingStyleChecker.counters) |
2f0fb22c1d63
Fixed a few issues in the code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
583 | errors += namingStyleChecker.errors |
2f0fb22c1d63
Fixed a few issues in the code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
584 | |
10046
35b27af462ef
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10041
diff
changeset
|
585 | # check name ordering |
35b27af462ef
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10041
diff
changeset
|
586 | nameOrderChecker = NameOrderChecker( |
35b27af462ef
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10041
diff
changeset
|
587 | source, |
35b27af462ef
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10041
diff
changeset
|
588 | filename, |
35b27af462ef
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10041
diff
changeset
|
589 | tree, |
35b27af462ef
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10041
diff
changeset
|
590 | select, |
35b27af462ef
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10041
diff
changeset
|
591 | ignore, |
35b27af462ef
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10041
diff
changeset
|
592 | [], |
35b27af462ef
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10041
diff
changeset
|
593 | repeatMessages, |
35b27af462ef
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10041
diff
changeset
|
594 | nameOrderArgs, |
35b27af462ef
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10041
diff
changeset
|
595 | ) |
35b27af462ef
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10041
diff
changeset
|
596 | nameOrderChecker.run() |
35b27af462ef
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10041
diff
changeset
|
597 | stats.update(nameOrderChecker.counters) |
35b27af462ef
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10041
diff
changeset
|
598 | errors += nameOrderChecker.errors |
35b27af462ef
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10041
diff
changeset
|
599 | |
10052
041d0785dd42
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10046
diff
changeset
|
600 | # check unused arguments and variables |
041d0785dd42
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10046
diff
changeset
|
601 | unusedChecker = UnusedChecker( |
041d0785dd42
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10046
diff
changeset
|
602 | source, |
041d0785dd42
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10046
diff
changeset
|
603 | filename, |
041d0785dd42
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10046
diff
changeset
|
604 | tree, |
041d0785dd42
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10046
diff
changeset
|
605 | select, |
041d0785dd42
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10046
diff
changeset
|
606 | ignore, |
041d0785dd42
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10046
diff
changeset
|
607 | [], |
041d0785dd42
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10046
diff
changeset
|
608 | repeatMessages, |
041d0785dd42
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10046
diff
changeset
|
609 | unusedArgs, |
041d0785dd42
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10046
diff
changeset
|
610 | ) |
041d0785dd42
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10046
diff
changeset
|
611 | unusedChecker.run() |
041d0785dd42
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10046
diff
changeset
|
612 | stats.update(unusedChecker.counters) |
041d0785dd42
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10046
diff
changeset
|
613 | errors += unusedChecker.errors |
041d0785dd42
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10046
diff
changeset
|
614 | |
10116
4a619fb7bd09
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10069
diff
changeset
|
615 | # check async function definitions |
4a619fb7bd09
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10069
diff
changeset
|
616 | asyncChecker = AsyncChecker( |
4a619fb7bd09
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10069
diff
changeset
|
617 | source, |
4a619fb7bd09
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10069
diff
changeset
|
618 | filename, |
4a619fb7bd09
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10069
diff
changeset
|
619 | tree, |
4a619fb7bd09
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10069
diff
changeset
|
620 | select, |
4a619fb7bd09
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10069
diff
changeset
|
621 | ignore, |
4a619fb7bd09
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10069
diff
changeset
|
622 | [], |
4a619fb7bd09
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10069
diff
changeset
|
623 | repeatMessages, |
4a619fb7bd09
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10069
diff
changeset
|
624 | {}, # no arguments yet |
4a619fb7bd09
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10069
diff
changeset
|
625 | ) |
4a619fb7bd09
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10069
diff
changeset
|
626 | asyncChecker.run() |
4a619fb7bd09
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10069
diff
changeset
|
627 | stats.update(asyncChecker.counters) |
4a619fb7bd09
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10069
diff
changeset
|
628 | errors += asyncChecker.errors |
4a619fb7bd09
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10069
diff
changeset
|
629 | |
10362
cfa7034cccf6
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10122
diff
changeset
|
630 | # checking logging statements |
cfa7034cccf6
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10122
diff
changeset
|
631 | loggingChecker = LoggingChecker( |
cfa7034cccf6
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10122
diff
changeset
|
632 | source, |
cfa7034cccf6
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10122
diff
changeset
|
633 | filename, |
cfa7034cccf6
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10122
diff
changeset
|
634 | tree, |
cfa7034cccf6
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10122
diff
changeset
|
635 | select, |
cfa7034cccf6
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10122
diff
changeset
|
636 | ignore, |
cfa7034cccf6
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10122
diff
changeset
|
637 | [], |
cfa7034cccf6
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10122
diff
changeset
|
638 | repeatMessages, |
cfa7034cccf6
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10122
diff
changeset
|
639 | {}, # no arguments yet |
cfa7034cccf6
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10122
diff
changeset
|
640 | ) |
cfa7034cccf6
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10122
diff
changeset
|
641 | loggingChecker.run() |
cfa7034cccf6
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10122
diff
changeset
|
642 | stats.update(loggingChecker.counters) |
cfa7034cccf6
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10122
diff
changeset
|
643 | errors += loggingChecker.errors |
cfa7034cccf6
Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10122
diff
changeset
|
644 | |
11142
2f0fb22c1d63
Fixed a few issues in the code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
645 | # check 'pydantic' related topics |
2f0fb22c1d63
Fixed a few issues in the code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
646 | pydanticChecker = PydanticChecker( |
2f0fb22c1d63
Fixed a few issues in the code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
647 | source, |
2f0fb22c1d63
Fixed a few issues in the code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
648 | filename, |
2f0fb22c1d63
Fixed a few issues in the code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
649 | tree, |
2f0fb22c1d63
Fixed a few issues in the code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
650 | select, |
2f0fb22c1d63
Fixed a few issues in the code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
651 | ignore, |
2f0fb22c1d63
Fixed a few issues in the code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
652 | [], |
2f0fb22c1d63
Fixed a few issues in the code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
653 | repeatMessages, |
2f0fb22c1d63
Fixed a few issues in the code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
654 | {}, # no arguments yet |
2f0fb22c1d63
Fixed a few issues in the code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
655 | ) |
2f0fb22c1d63
Fixed a few issues in the code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
656 | pydanticChecker.run() |
2f0fb22c1d63
Fixed a few issues in the code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
657 | stats.update(pydanticChecker.counters) |
2f0fb22c1d63
Fixed a few issues in the code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
658 | errors += pydanticChecker.errors |
2f0fb22c1d63
Fixed a few issues in the code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
659 | |
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
|
660 | 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
|
661 | 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
|
662 | stats.update(syntaxStats) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
663 | |
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
|
664 | 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
|
665 | 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
|
666 | 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
|
667 | 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
|
668 | # 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
|
669 | 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
|
670 | 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
|
671 | 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
|
672 | 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
|
673 | 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
|
674 | 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
|
675 | for _, error in errorsList: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
676 | error.update( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
677 | { |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
678 | "ignored": False, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
679 | "fixed": False, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
680 | "autofixing": False, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
681 | "fixcode": "", |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
682 | "fixargs": [], |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
683 | "securityOk": False, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
684 | } |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
685 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
686 | |
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
|
687 | if source: |
10069
435cc5875135
Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10059
diff
changeset
|
688 | 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
|
689 | 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
|
690 | with contextlib.suppress(IndexError): |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
691 | lineFlags += extractLineFlags( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
692 | source[lineno].strip(), flagsLine=True |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
693 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
694 | |
10069
435cc5875135
Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10059
diff
changeset
|
695 | 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
|
696 | error["securityOk"] = True |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
697 | |
10069
435cc5875135
Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10059
diff
changeset
|
698 | 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
|
699 | 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
|
700 | 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
|
701 | 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
|
702 | 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
|
703 | lineno, error["offset"], errorCode |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
704 | ) |
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
|
705 | 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
|
706 | 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
|
707 | else: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
708 | error.update( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
709 | { |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
710 | "fixed": res == 1, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
711 | "autofixing": True, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
712 | "fixcode": fixcode, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
713 | "fixargs": fixargs, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
714 | } |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
715 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
716 | |
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 | results.append(error) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
718 | |
3209
c5432abceb25
CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3145
diff
changeset
|
719 | if fixer: |
c5432abceb25
CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3145
diff
changeset
|
720 | deferredResults = fixer.finalize() |
c5432abceb25
CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3145
diff
changeset
|
721 | 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
|
722 | 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
|
723 | error = deferredFixes[id_] |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
724 | error.update( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
725 | { |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
726 | "ignored": False, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
727 | "fixed": fixed == 1, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
728 | "autofixing": True, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
729 | "fixcode": fixcode, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
730 | "fixargs": fixargs, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
731 | } |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
732 | ) |
3413
5e63f809732a
Code style checker: Translations extracted and refactored.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3228
diff
changeset
|
733 | |
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
|
734 | 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
|
735 | 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
|
736 | for error in results: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
737 | error.update( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
738 | { |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
739 | "fixcode": saveError[0], |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
740 | "fixargs": saveError[1], |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
741 | } |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9219
diff
changeset
|
742 | ) |
3209
c5432abceb25
CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3145
diff
changeset
|
743 | |
c5432abceb25
CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3145
diff
changeset
|
744 | return stats, results |