Show More
@@ -257,6 +257,16 b' pypats = [' | |||||
257 | (r'(\w|\))[+/*\-<>]\w', "missing whitespace in expression"), |
|
257 | (r'(\w|\))[+/*\-<>]\w', "missing whitespace in expression"), | |
258 | (r'^\s+(\w|\.)+=\w[^,()\n]*$', "missing whitespace in assignment"), |
|
258 | (r'^\s+(\w|\.)+=\w[^,()\n]*$', "missing whitespace in assignment"), | |
259 | (r'\w\s=\s\s+\w', "gratuitous whitespace after ="), |
|
259 | (r'\w\s=\s\s+\w', "gratuitous whitespace after ="), | |
|
260 | (( | |||
|
261 | # a line ending with a colon, potentially with trailing comments | |||
|
262 | r':([ \t]*#[^\n]*)?\n' | |||
|
263 | # one that is not a pass and not only a comment | |||
|
264 | r'(?P<indent>[ \t]+)[^#][^\n]+\n' | |||
|
265 | # more lines at the same indent level | |||
|
266 | r'((?P=indent)[^\n]+\n)*' | |||
|
267 | # a pass at the same indent level, which is bogus | |||
|
268 | r'(?P=indent)pass[ \t\n#]' | |||
|
269 | ), 'omit superfluous pass'), | |||
260 | (r'.{81}', "line too long"), |
|
270 | (r'.{81}', "line too long"), | |
261 | (r'[^\n]\Z', "no trailing newline"), |
|
271 | (r'[^\n]\Z', "no trailing newline"), | |
262 | (r'(\S[ \t]+|^[ \t]+)\n', "trailing whitespace"), |
|
272 | (r'(\S[ \t]+|^[ \t]+)\n', "trailing whitespace"), |
@@ -285,11 +285,43 b' web templates' | |||||
285 | > ''' "%-6d \n 123456 .:*+-= foobar") |
|
285 | > ''' "%-6d \n 123456 .:*+-= foobar") | |
286 | > EOF |
|
286 | > EOF | |
287 |
|
287 | |||
|
288 | superfluous pass | |||
|
289 | ||||
|
290 | $ cat > superfluous_pass.py <<EOF | |||
|
291 | > # correct examples | |||
|
292 | > if foo: | |||
|
293 | > pass | |||
|
294 | > else: | |||
|
295 | > # comment-only line means still need pass | |||
|
296 | > pass | |||
|
297 | > def nothing(): | |||
|
298 | > pass | |||
|
299 | > class empty(object): | |||
|
300 | > pass | |||
|
301 | > if whatever: | |||
|
302 | > passvalue(value) | |||
|
303 | > # bad examples | |||
|
304 | > if foo: | |||
|
305 | > "foo" | |||
|
306 | > pass | |||
|
307 | > else: # trailing comment doesn't fool checker | |||
|
308 | > wat() | |||
|
309 | > pass | |||
|
310 | > def nothing(): | |||
|
311 | > "docstring means no pass" | |||
|
312 | > pass | |||
|
313 | > class empty(object): | |||
|
314 | > """multiline | |||
|
315 | > docstring also | |||
|
316 | > means no pass""" | |||
|
317 | > pass | |||
|
318 | > EOF | |||
|
319 | ||||
288 | (Checking multiple invalid files at once examines whether caching |
|
320 | (Checking multiple invalid files at once examines whether caching | |
289 | translation table for repquote() works as expected or not. All files |
|
321 | translation table for repquote() works as expected or not. All files | |
290 | should break rules depending on result of repquote(), in this case) |
|
322 | should break rules depending on result of repquote(), in this case) | |
291 |
|
323 | |||
292 | $ "$check_code" stringjoin.py uigettext.py |
|
324 | $ "$check_code" stringjoin.py uigettext.py superfluous_pass.py | |
293 | stringjoin.py:1: |
|
325 | stringjoin.py:1: | |
294 | > foo = (' foo' |
|
326 | > foo = (' foo' | |
295 | string join across lines with no space |
|
327 | string join across lines with no space | |
@@ -317,4 +349,16 b' should break rules depending on result o' | |||||
317 | uigettext.py:1: |
|
349 | uigettext.py:1: | |
318 | > ui.status("% 10s %05d % -3.2f %*s %%" |
|
350 | > ui.status("% 10s %05d % -3.2f %*s %%" | |
319 | missing _() in ui message (use () to hide false-positives) |
|
351 | missing _() in ui message (use () to hide false-positives) | |
|
352 | superfluous_pass.py:14: | |||
|
353 | > if foo: | |||
|
354 | omit superfluous pass | |||
|
355 | superfluous_pass.py:17: | |||
|
356 | > else: # trailing comment doesn't fool checker | |||
|
357 | omit superfluous pass | |||
|
358 | superfluous_pass.py:20: | |||
|
359 | > def nothing(): | |||
|
360 | omit superfluous pass | |||
|
361 | superfluous_pass.py:23: | |||
|
362 | > class empty(object): | |||
|
363 | omit superfluous pass | |||
320 | [1] |
|
364 | [1] |
General Comments 0
You need to be logged in to leave comments.
Login now