UtilitiesPython2/Pep8Checker.py

Sun, 01 Jul 2012 12:50:37 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 01 Jul 2012 12:50:37 +0200
changeset 1926
474057fbefe0
parent 1509
c0b5e693b0eb
child 2302
f29e9405c851
permissions
-rw-r--r--

Added the configurable capability to automatically show the source, when the call frame is changed in the callstack viewer of the local variables viewer.

842
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
1509
c0b5e693b0eb Updated copyright for 2012.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 847
diff changeset
3 # Copyright (c) 2011 - 2012 Detlev Offenbach <detlev@die-offenbachs.de>
842
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Class implementing the PEP 8 checker for Python2.
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 import sys
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11 import optparse
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 import getopt
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14 from Tools import readEncodedFile, normalizeCode
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16 import pep8
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17
843
522c8befcf49 Continued implementing a PRP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 842
diff changeset
18
842
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 class Pep8Checker(pep8.Checker):
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 """
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 Class implementing the PEP 8 checker for Python2.
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 """
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 def __init__(self, filename, lines, repeat=False,
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 select="", ignore=""):
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 """
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 Constructor
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 @param filename name of the file to check (string)
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 @param lines source of the file (list of strings)
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 @keyparam repeat flag indicating to repeat message categories (boolean)
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 @keyparam select list of message IDs to check for
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 (comma separated string)
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 @keyparam ignore list of message IDs to ignore
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 (comma separated string)
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 """
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 pep8.options = optparse.Values()
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 pep8.options.verbose = 0
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 pep8.options.repeat = repeat
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 if select:
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 pep8.options.select = [s.strip() for s in select.split(',')
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 if s.strip()]
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 else:
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 pep8.options.select = []
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 if ignore:
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 pep8.options.ignore = [i.strip() for i in ignore.split(',')
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 if i.strip()]
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 else:
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 pep8.options.ignore = []
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 pep8.options.physical_checks = pep8.find_checks('physical_line')
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 pep8.options.logical_checks = pep8.find_checks('logical_line')
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 pep8.options.counters = dict.fromkeys(pep8.BENCHMARK_KEYS, 0)
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 pep8.options.messages = {}
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 pep8.Checker.__init__(self, filename, lines)
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 self.messages = []
847
cc18fbcde9fc Added a dialog to show some statistics for the last PEP 8 check to the PEP 8 dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 843
diff changeset
59 self.statistics = {}
842
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 def __ignore_code(self, code):
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 """
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 Private method to check, if the message for the given code should
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 be ignored.
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 If codes are selected and the code has a selected prefix and does not
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 have an ignored prefix, it is not ignored. If codes are selected and
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 the code does not have a selected prefix, it is ignored. If no codes
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 are selected, the code is ignored, if it has a prefix, that is
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 contained in the ignored codes.
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 @param code code to be checked (string)
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 @return flag indicating, that the code should be ignored (boolean)
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 """
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 if pep8.options.select:
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76 if code.startswith(tuple(pep8.options.select)):
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77 if code.startswith(tuple(pep8.options.ignore)):
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 return True
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 else:
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80 return False
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81 else:
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 return True
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83 else:
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 if code.startswith(tuple(pep8.options.ignore)):
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85 return True
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86 else:
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87 return False
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89 def report_error_args(self, line_number, offset, code, check, *args):
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 """
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 Public method to collect the error messages.
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 @param line_number line number of the issue (integer)
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94 @param offset position within line of the issue (integer)
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95 @param code message code (string)
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 @param check reference to the checker function (function)
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97 @param args arguments for the message (list)
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98 """
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 if self.__ignore_code(code):
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100 return
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101
847
cc18fbcde9fc Added a dialog to show some statistics for the last PEP 8 check to the PEP 8 dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 843
diff changeset
102 if code in self.statistics:
cc18fbcde9fc Added a dialog to show some statistics for the last PEP 8 check to the PEP 8 dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 843
diff changeset
103 self.statistics[code] += 1
842
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104 else:
847
cc18fbcde9fc Added a dialog to show some statistics for the last PEP 8 check to the PEP 8 dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 843
diff changeset
105 self.statistics[code] = 1
842
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
106 self.file_errors += 1
847
cc18fbcde9fc Added a dialog to show some statistics for the last PEP 8 check to the PEP 8 dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 843
diff changeset
107 if self.statistics[code] == 1 or pep8.options.repeat:
842
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
108 self.messages.append(
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
109 (self.filename, self.line_offset + line_number,
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
110 offset + 1, code, args)
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
111 )
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
112
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113 if __name__ == "__main__":
843
522c8befcf49 Continued implementing a PRP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 842
diff changeset
114 repeat = False
522c8befcf49 Continued implementing a PRP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 842
diff changeset
115 select = ""
522c8befcf49 Continued implementing a PRP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 842
diff changeset
116 ignore = ""
842
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
117 filename = ""
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
118
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
119 if "-f" not in sys.argv:
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
120 print "ERROR"
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
121 print ""
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
122 print "No file name given."
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
123 else:
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
124 try:
843
522c8befcf49 Continued implementing a PRP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 842
diff changeset
125 optlist, args = getopt.getopt(sys.argv[1:], "rf:i:s:")
842
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
126 except getopt.GetoptError:
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
127 print "ERROR"
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
128 print ""
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
129 print "Wrong arguments given"
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
130 sys.exit(1)
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
131
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
132 for opt, arg in optlist:
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133 if opt == "-r":
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
134 repeat = True
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
135 elif opt == "-f":
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
136 filename = arg
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
137 elif opt == "-i":
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
138 ignore = arg
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
139 elif opt == "-s":
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
140 select = arg
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
141
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
142 try:
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
143 codestring = readEncodedFile(filename)[0]
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
144 codestring = normalizeCode(codestring)
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
145 codestring = codestring.splitlines(True)
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
146 except IOError, msg:
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
147 print "ERROR"
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
148 print filename
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
149 print "I/O Error: %s" % unicode(msg)
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
150 sys.exit(1)
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
151
843
522c8befcf49 Continued implementing a PRP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 842
diff changeset
152 checker = Pep8Checker(filename, codestring, repeat=repeat,
842
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
153 select=select, ignore=ignore)
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
154 checker.check_all()
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
155 if len(checker.messages) > 0:
843
522c8befcf49 Continued implementing a PRP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 842
diff changeset
156 checker.messages.sort(key=lambda a: a[1])
842
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
157 for message in checker.messages:
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
158 fname, lineno, position, code, args = message
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
159 print "PEP8"
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
160 print fname
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
161 print lineno
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
162 print position
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
163 print code
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
164 print len(args)
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
165 for a in args:
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
166 print a
847
cc18fbcde9fc Added a dialog to show some statistics for the last PEP 8 check to the PEP 8 dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 843
diff changeset
167 print "PEP8_STATISTICS"
cc18fbcde9fc Added a dialog to show some statistics for the last PEP 8 check to the PEP 8 dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 843
diff changeset
168 for key in checker.statistics:
cc18fbcde9fc Added a dialog to show some statistics for the last PEP 8 check to the PEP 8 dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 843
diff changeset
169 print key, checker.statistics[key]
842
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
170 else:
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
171 print "NO_PEP8"
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
172 print filename
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
173
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
174 #
984b5535cd26 Started to add the PEP 8 checker for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
175 # eflag: FileType = Python2

eric ide

mercurial