Mercurial > hg
view tests/filterpyflakes.py @ 19462:a87d9102f7af
hgweb: always start log with searched revision
This makes the specified revision be always on top of the list.
Before the patch, for example with repo having revisions 0, 1, 2, 3 and user
searching for '2', all revisions were shown and the specified one wasn't
the first.
author | Alexander Plavin <me@aplavin.ru> |
---|---|
date | Sat, 13 Jul 2013 02:36:29 +0400 |
parents | e033a7d444ac |
children | 681f7b9213a4 |
line wrap: on
line source
#!/usr/bin/env python # Filter output by pyflakes to control which warnings we check import sys, re, os def makekey(typeandline): """ for sorting lines by: msgtype, path/to/file, lineno, message typeandline is a sequence of a message type and the entire message line the message line format is path/to/file:line: message >>> makekey((3, 'example.py:36: any message')) (3, 'example.py', 36, ' any message') >>> makekey((7, 'path/to/file.py:68: dummy message')) (7, 'path/to/file.py', 68, ' dummy message') >>> makekey((2, 'fn:88: m')) > makekey((2, 'fn:9: m')) True """ msgtype, line = typeandline fname, line, message = line.split(":", 2) # line as int for ordering 9 before 88 return msgtype, fname, int(line), message lines = [] for line in sys.stdin: # We whitelist tests (see more messages in pyflakes.messages) pats = [ r"imported but unused", r"local variable '.*' is assigned to but never used", r"unable to detect undefined names", ] for msgtype, pat in enumerate(pats): if re.search(pat, line): break # pattern matches else: continue # no pattern matched, next line fn = line.split(':', 1)[0] f = open(os.path.join(os.path.dirname(os.path.dirname(__file__)), fn)) data = f.read() f.close() if 'no-' 'check-code' in data: continue lines.append((msgtype, line)) for msgtype, line in sorted(lines, key = makekey): sys.stdout.write(line) print