Mercurial > hg
view tests/filterpyflakes.py @ 18894:ed46c2b98b0d
dicthelpers.diff: compare against default for missing values
This is not only a bit faster, but also aligns with callers' expectations
better since we can legitimately have manifestdict's _flags set to '' instead
of unset.
hg perfmergecalculate -r .
before: ! wall 0.139582 comb 0.140000 user 0.140000 sys 0.000000 (best of 59)
after: ! wall 0.126154 comb 0.120000 user 0.120000 sys 0.000000 (best of 74)
hg perfmergecalculate -r .^
before: ! wall 0.236333 comb 0.240000 user 0.240000 sys 0.000000 (best of 36)
after: ! wall 0.212265 comb 0.210000 user 0.210000 sys 0.000000 (best of 45)
author | Siddharth Agarwal <sid0@fb.com> |
---|---|
date | Wed, 10 Apr 2013 12:31:07 -0700 |
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