Mercurial > hg
view tests/filterpyflakes.py @ 18604:a1141f04e368
manifest: use a size 3 LRU cache to store parsed manifests
Previously, the manifest cache would store the last manifest parsed. We could
run into situations with operations like update where we would try parsing the
manifest for a revision r1, then r2, then r1 again. This increases the cache
size to 3 to avoid that bit of performance fragility.
author | Siddharth Agarwal <sid0@fb.com> |
---|---|
date | Sat, 09 Feb 2013 15:43:02 +0000 |
parents | 08d84bdce1a5 |
children | 77440de177f7 |
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(message): # "path/file:line: message" match = re.search(r"(line \d+)", message) line = '' if match: line = match.group(0) message = re.sub(r"(line \d+)", '', message) return re.sub(r"([^:]*):([^:]+):([^']*)('[^']*')(.*)$", r'\3:\5:\4:\1:\2:' + line, message) lines = [] for line in sys.stdin: # We whitelist tests pats = [ r"imported but unused", r"local variable '.*' is assigned to but never used", r"unable to detect undefined names", ] if not re.search('|'.join(pats), line): continue 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(line) for line in sorted(lines, key = makekey): sys.stdout.write(line) print