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