Plugins/CheckerPlugins/SyntaxChecker/pyflakes/messages.py

branch
BgService
changeset 3177
5af61402d74d
parent 3159
02cb2adb4868
child 3456
96232974dcdb
equal deleted inserted replaced
3174:86047f5f4155 3177:5af61402d74d
1 # -*- coding: utf-8 -*- 1 # -*- coding: utf-8 -*-
2 2
3 # Copyright (c) 2010 - 2013 Detlev Offenbach <detlev@die-offenbachs.de> 3 # Copyright (c) 2010 - 2014 Detlev Offenbach <detlev@die-offenbachs.de>
4 # 4 #
5 # Original (c) 2005 Divmod, Inc. See LICENSE file for details 5 # Original (c) 2005 Divmod, Inc. See __init__.py file for details
6 # 6 #
7 # This module is based on pyflakes for Python2 but was heavily hacked to 7 # This module is based on pyflakes but was heavily hacked to
8 # work within Eric5 and Qt (translatable messages) 8 # work within Eric5 and Qt (translatable messages)
9 9
10 """ 10 """
11 Module implementing the messages for pyflakes. 11 Provide the class Message and its subclasses.
12 """ 12 """
13 13
14 # Tell 'lupdate' which strings to keep for translation. 14 # Tell 'lupdate' which strings to keep for translation.
15 QT_TRANSLATE_NOOP = lambda mod, txt: txt 15 QT_TRANSLATE_NOOP = lambda mod, txt: txt
16 16
19 """ 19 """
20 Class defining the base for all specific message classes. 20 Class defining the base for all specific message classes.
21 """ 21 """
22 message = '' 22 message = ''
23 message_args = () 23 message_args = ()
24 24
25 def __init__(self, filename, lineno): 25 def __init__(self, filename, loc):
26 """ 26 """
27 Constructor 27 Constructor
28 28
29 @param filename name of the file (string) 29 @param filename name of the file (string)
30 @param lineno line number (integer) 30 @param loc location of warning (object)
31 """ 31 """
32 self.filename = filename 32 self.filename = filename
33 self.lineno = lineno 33 self.lineno = loc.lineno
34 34 self.col = getattr(loc, 'col_offset', 0)
35
35 def __str__(self): 36 def __str__(self):
36 """ 37 """
37 Special method return a string representation of the instance object. 38 Special method return a string representation of the instance object.
38 39
39 @return string representation of the object (string) 40 @return string representation of the object (string)
40 """ 41 """
41 return '%s:%s: %s' % ( 42 return '%s:%s: %s' % (self.filename, self.lineno,
42 self.filename, self.lineno, self.message % self.message_args) 43 self.message % self.message_args)
43 44
44 def getMessageData(self): 45 def getMessageData(self):
45 """ 46 """
46 Public method to get the individual message data elements. 47 Public method to get the individual message data elements.
47 48
48 @return tuple containing file name, line number and message 49 @return tuple containing file name, line number and message
49 (string, integer, string) 50 (string, integer, string)
50 """ 51 """
51 return (self.filename, self.lineno, self.message, self.message_args) 52 return (self.filename, self.lineno, self.col, self.message,
53 self.message_args)
52 54
53 55
54 class UnusedImport(Message): 56 class UnusedImport(Message):
55 """ 57 """
56 Class defining the "Unused Import" message. 58 Class defining the "Unused Import" message.
57 """ 59 """
58 message = QT_TRANSLATE_NOOP( 60 message = QT_TRANSLATE_NOOP(
59 'py3Flakes', 61 'py3Flakes',
60 '{0!r} imported but unused.') 62 '{0!r} imported but unused.')
61 63
62 def __init__(self, filename, lineno, name): 64 def __init__(self, filename, loc, name):
63 """ 65 """
64 Constructor 66 Constructor
65 67
66 @param filename name of the file (string) 68 @param filename name of the file (string)
67 @param lineno line number (integer) 69 @param loc location of warning (object)
68 @param name name of the unused import (string) 70 @param name name of the unused import (string)
69 """ 71 """
70 Message.__init__(self, filename, lineno) 72 Message.__init__(self, filename, loc)
71 self.message_args = (name,) 73 self.message_args = (name,)
72 74
73 75
74 class RedefinedWhileUnused(Message): 76 class RedefinedWhileUnused(Message):
75 """ 77 """
77 """ 79 """
78 message = QT_TRANSLATE_NOOP( 80 message = QT_TRANSLATE_NOOP(
79 'py3Flakes', 81 'py3Flakes',
80 'Redefinition of unused {0!r} from line {1!r}.') 82 'Redefinition of unused {0!r} from line {1!r}.')
81 83
82 def __init__(self, filename, lineno, name, orig_lineno): 84 def __init__(self, filename, loc, name, orig_loc):
83 """ 85 """
84 Constructor 86 Constructor
85 87
86 @param filename name of the file (string) 88 @param filename name of the file (string)
87 @param lineno line number (integer) 89 @param loc location of warning (object)
88 @param name name of the redefined object (string) 90 @param name name of the redefined object (string)
89 @param orig_lineno line number of the original definition (integer) 91 @param orig_loc location of the original definition (object)
90 """ 92 """
91 Message.__init__(self, filename, lineno) 93 Message.__init__(self, filename, loc)
92 self.message_args = (name, orig_lineno) 94 self.message_args = (name, orig_loc.lineno)
93 95
94 96
95 class RedefinedInListComp(Message): 97 class RedefinedInListComp(Message):
96 """ 98 """
97 Class defining the list comprehension redefinition. 99 Class defining the list comprehension redefinition.
98 """ 100 """
99 message = QT_TRANSLATE_NOOP( 101 message = QT_TRANSLATE_NOOP(
100 'py3Flakes', 102 'py3Flakes',
101 'List comprehension redefines {0!r} from line {1!r}.') 103 'List comprehension redefines {0!r} from line {1!r}.')
102 104
103 def __init__(self, filename, lineno, name, orig_lineno): 105 def __init__(self, filename, loc, name, orig_loc):
104 """ 106 """
105 Constructor 107 Constructor
106 108
107 @param filename name of the file (string) 109 @param filename name of the file (string)
108 @param lineno line number (integer) 110 @param loc location of warning (object)
109 @param name name of the redefined object (string) 111 @param name name of the redefined object (string)
110 @param orig_lineno line number of the original definition (integer) 112 @param orig_loc location of the original definition (object)
111 """ 113 """
112 Message.__init__(self, filename, lineno) 114 Message.__init__(self, filename, loc)
113 self.message_args = (name, orig_lineno) 115 self.message_args = (name, orig_loc.lineno)
114 116
115 117
116 class ImportShadowedByLoopVar(Message): 118 class ImportShadowedByLoopVar(Message):
117 """ 119 """
118 Class defining the "Import Shadowed By Loop Var" message. 120 Class defining the "Import Shadowed By Loop Var" message.
119 """ 121 """
120 message = QT_TRANSLATE_NOOP( 122 message = QT_TRANSLATE_NOOP(
121 'py3Flakes', 123 'py3Flakes',
122 'Import {0!r} from line {1!r} shadowed by loop variable.') 124 'Import {0!r} from line {1!r} shadowed by loop variable.')
123 125
124 def __init__(self, filename, lineno, name, orig_lineno): 126 def __init__(self, filename, loc, name, orig_loc):
125 """ 127 """
126 Constructor 128 Constructor
127 129
128 @param filename name of the file (string) 130 @param filename name of the file (string)
129 @param lineno line number (integer) 131 @param loc location of warning (object)
130 @param name name of the shadowed import (string) 132 @param name name of the shadowed import (string)
131 @param orig_lineno line number of the import (integer) 133 @param orig_loc location of the import (object)
132 """ 134 """
133 Message.__init__(self, filename, lineno) 135 Message.__init__(self, filename, loc)
134 self.message_args = (name, orig_lineno) 136 self.message_args = (name, orig_loc.lineno)
135 137
136 138
137 class ImportStarUsed(Message): 139 class ImportStarUsed(Message):
138 """ 140 """
139 Class defining the "Import Star Used" message. 141 Class defining the "Import Star Used" message.
140 """ 142 """
141 message = QT_TRANSLATE_NOOP( 143 message = QT_TRANSLATE_NOOP(
142 'py3Flakes', 144 'py3Flakes',
143 "'from {0} import *' used; unable to detect undefined names.") 145 "'from {0} import *' used; unable to detect undefined names.")
144 146
145 def __init__(self, filename, lineno, modname): 147 def __init__(self, filename, loc, modname):
146 """ 148 """
147 Constructor 149 Constructor
148 150
149 @param filename name of the file (string) 151 @param filename name of the file (string)
150 @param lineno line number (integer) 152 @param loc location of warning (object)
151 @param modname name of the module imported using star import (string) 153 @param modname name of the module imported using star import (string)
152 """ 154 """
153 Message.__init__(self, filename, lineno) 155 Message.__init__(self, filename, loc)
154 self.message_args = (modname,) 156 self.message_args = (modname,)
155 157
156 158
157 class UndefinedName(Message): 159 class UndefinedName(Message):
158 """ 160 """
159 Class defining the "Undefined Name" message. 161 Class defining the "Undefined Name" message.
160 """ 162 """
161 message = QT_TRANSLATE_NOOP('py3Flakes', 'Undefined name {0!r}.') 163 message = QT_TRANSLATE_NOOP('py3Flakes', 'Undefined name {0!r}.')
162 164
163 def __init__(self, filename, lineno, name): 165 def __init__(self, filename, loc, name):
164 """ 166 """
165 Constructor 167 Constructor
166 168
167 @param filename name of the file (string) 169 @param filename name of the file (string)
168 @param lineno line number (integer) 170 @param loc location of warning (object)
169 @param name undefined name (string) 171 @param name undefined name (string)
170 """ 172 """
171 Message.__init__(self, filename, lineno) 173 Message.__init__(self, filename, loc)
172 self.message_args = (name,) 174 self.message_args = (name,)
173 175
174 176
177 class DoctestSyntaxError(Message):
178 """
179 Class defining the "Syntax error in doctest" message.
180 """
181 message = QT_TRANSLATE_NOOP('py3Flakes', 'Syntax error in doctest.')
182
183 def __init__(self, filename, loc, position=None):
184 """
185 Constructor
186
187 @param filename name of the file (string)
188 @param loc location of warning (object)
189 @keyparam position of warning if existent (object)
190 """
191 Message.__init__(self, filename, loc)
192 if position:
193 (self.lineno, self.col) = position
194 self.message_args = ()
195
196
175 class UndefinedExport(Message): 197 class UndefinedExport(Message):
176 """ 198 """
177 Class defining the "Undefined Export" message. 199 Class defining the "Undefined Export" message.
178 """ 200 """
179 message = QT_TRANSLATE_NOOP( 201 message = QT_TRANSLATE_NOOP(
180 'py3Flakes', 202 'py3Flakes',
181 'Undefined name {0!r} in __all__.') 203 'Undefined name {0!r} in __all__.')
182 204
183 def __init__(self, filename, lineno, name): 205 def __init__(self, filename, loc, name):
184 """ 206 """
185 Constructor 207 Constructor
186 208
187 @param filename name of the file (string) 209 @param filename name of the file (string)
188 @param lineno line number (integer) 210 @param loc location of warning (object)
189 @param name undefined exported name (string) 211 @param name undefined exported name (string)
190 """ 212 """
191 Message.__init__(self, filename, lineno) 213 Message.__init__(self, filename, loc)
192 self.message_args = (name,) 214 self.message_args = (name,)
193 215
194 216
195 class UndefinedLocal(Message): 217 class UndefinedLocal(Message):
196 """ 218 """
198 """ 220 """
199 message = QT_TRANSLATE_NOOP( 221 message = QT_TRANSLATE_NOOP(
200 'py3Flakes', 222 'py3Flakes',
201 "Local variable {0!r} (defined in enclosing scope on line {1!r})" 223 "Local variable {0!r} (defined in enclosing scope on line {1!r})"
202 " referenced before assignment.") 224 " referenced before assignment.")
203 225
204 def __init__(self, filename, lineno, name, orig_lineno): 226 def __init__(self, filename, loc, name, orig_loc):
205 """ 227 """
206 Constructor 228 Constructor
207 229
208 @param filename name of the file (string) 230 @param filename name of the file (string)
209 @param lineno line number (integer) 231 @param loc location of warning (object)
210 @param name name of the prematurely referenced variable (string) 232 @param name name of the prematurely referenced variable (string)
211 @param orig_lineno line number of the variable definition (integer) 233 @param orig_loc location of the variable definition (object)
212 """ 234 """
213 Message.__init__(self, filename, lineno) 235 Message.__init__(self, filename, loc)
214 self.message_args = (name, orig_lineno) 236 self.message_args = (name, orig_loc.lineno)
215 237
216 238
217 class DuplicateArgument(Message): 239 class DuplicateArgument(Message):
218 """ 240 """
219 Class defining the "Duplicate Argument" message. 241 Class defining the "Duplicate Argument" message.
220 """ 242 """
221 message = QT_TRANSLATE_NOOP( 243 message = QT_TRANSLATE_NOOP(
222 'py3Flakes', 244 'py3Flakes',
223 'Duplicate argument {0!r} in function definition.') 245 'Duplicate argument {0!r} in function definition.')
224 246
225 def __init__(self, filename, lineno, name): 247 def __init__(self, filename, loc, name):
226 """ 248 """
227 Constructor 249 Constructor
228 250
229 @param filename name of the file (string) 251 @param filename name of the file (string)
230 @param lineno line number (integer) 252 @param loc location of warning (object)
231 @param name name of the duplicate argument (string) 253 @param name name of the duplicate argument (string)
232 """ 254 """
233 Message.__init__(self, filename, lineno) 255 Message.__init__(self, filename, loc)
234 self.message_args = (name,) 256 self.message_args = (name,)
235 257
236 258
237 class Redefined(Message): 259 class Redefined(Message):
238 """ 260 """
239 Class defining the "Redefined" message. 261 Class defining the "Redefined" message.
240 """ 262 """
241 message = QT_TRANSLATE_NOOP( 263 message = QT_TRANSLATE_NOOP(
242 'py3Flakes', 264 'py3Flakes',
243 'Redefinition of {0!r} from line {1!r}.') 265 'Redefinition of {0!r} from line {1!r}.')
244 266
245 def __init__(self, filename, lineno, name, orig_lineno): 267 def __init__(self, filename, loc, name, orig_loc):
246 """ 268 """
247 Constructor 269 Constructor
248 270
249 @param filename name of the file (string) 271 @param filename name of the file (string)
250 @param lineno line number (integer) 272 @param loc location of warning (object)
251 @param name name of the redefined function (string) 273 @param name name of the redefined function (string)
252 @param orig_lineno line number of the original definition (integer) 274 @param orig_loc location of the original definition (object)
253 """ 275 """
254 Message.__init__(self, filename, lineno) 276 Message.__init__(self, filename, loc)
255 self.message_args = (name, orig_lineno) 277 self.message_args = (name, orig_loc.lineno)
256 278
257 279
258 class LateFutureImport(Message): 280 class LateFutureImport(Message):
259 """ 281 """
260 Class defining the "Late Future Import" message. 282 Class defining the "Late Future Import" message.
261 """ 283 """
262 message = QT_TRANSLATE_NOOP( 284 message = QT_TRANSLATE_NOOP(
263 'py3Flakes', 285 'py3Flakes',
264 'Future import(s) {0!r} after other statements.') 286 'Future import(s) {0!r} after other statements.')
265 287
266 def __init__(self, filename, lineno, names): 288 def __init__(self, filename, loc, names):
267 """ 289 """
268 Constructor 290 Constructor
269 291
270 @param filename name of the file (string) 292 @param filename name of the file (string)
271 @param lineno line number (integer) 293 @param loc location of warning (object)
272 @param names names of the imported futures (string) 294 @param names names of the imported futures (string)
273 """ 295 """
274 Message.__init__(self, filename, lineno) 296 Message.__init__(self, filename, loc)
275 self.message_args = (names,) 297 self.message_args = (names,)
276 298
277 299
278 class UnusedVariable(Message): 300 class UnusedVariable(Message):
279 """ 301 """
283 used. 305 used.
284 """ 306 """
285 message = QT_TRANSLATE_NOOP( 307 message = QT_TRANSLATE_NOOP(
286 'py3Flakes', 308 'py3Flakes',
287 'Local variable {0!r} is assigned to but never used.') 309 'Local variable {0!r} is assigned to but never used.')
288 310
289 def __init__(self, filename, lineno, names): 311 def __init__(self, filename, loc, names):
290 """ 312 """
291 Constructor 313 Constructor
292 314
293 @param filename name of the file (string) 315 @param filename name of the file (string)
294 @param lineno line number (integer) 316 @param loc location of warning (object)
295 @param names names of the unused variable (string) 317 @param names names of the unused variable (string)
296 """ 318 """
297 Message.__init__(self, filename, lineno) 319 Message.__init__(self, filename, loc)
298 self.message_args = (names,) 320 self.message_args = (names,)

eric ide

mercurial