Mercurial > hg
annotate tests/filterpyflakes.py @ 45202:31393ec06cef
commitctx: document a fast path in _filecommit
This block cut off a lot of logic, documenting the why and how seems useful to
future reader.
This is part of a larger refactoring/cleanup of the commitctx code to clarify
and augment the logic gathering metadata useful for copy tracing. The current
code is a tad too long and entangled to make such update easy. We start with
easy and small cleanup.
Differential Revision: https://phab.mercurial-scm.org/D8700
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Mon, 06 Jul 2020 19:13:19 +0200 |
parents | 2372284d9457 |
children | c102b704edb5 |
rev | line source |
---|---|
14140
82f0412ef7de
tests: add pyflakes checking for unused imports
timeless <timeless@mozdev.org>
parents:
diff
changeset
|
1 #!/usr/bin/env python |
82f0412ef7de
tests: add pyflakes checking for unused imports
timeless <timeless@mozdev.org>
parents:
diff
changeset
|
2 |
82f0412ef7de
tests: add pyflakes checking for unused imports
timeless <timeless@mozdev.org>
parents:
diff
changeset
|
3 # Filter output by pyflakes to control which warnings we check |
82f0412ef7de
tests: add pyflakes checking for unused imports
timeless <timeless@mozdev.org>
parents:
diff
changeset
|
4 |
28724
cf339d6ac7c7
py3: use print_function in filterpyflakes.py
Robert Stanca <robert.stanca7@gmail.com>
parents:
27285
diff
changeset
|
5 from __future__ import absolute_import, print_function |
27285
aef5b606d3ee
tests/filterpyflakes: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com>
parents:
26023
diff
changeset
|
6 |
aef5b606d3ee
tests/filterpyflakes: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com>
parents:
26023
diff
changeset
|
7 import re |
aef5b606d3ee
tests/filterpyflakes: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com>
parents:
26023
diff
changeset
|
8 import sys |
14140
82f0412ef7de
tests: add pyflakes checking for unused imports
timeless <timeless@mozdev.org>
parents:
diff
changeset
|
9 |
14173
419539ea79cb
test-pyflake: improve sorting algorithm
timeless <timeless@mozdev.org>
parents:
14140
diff
changeset
|
10 lines = [] |
14140
82f0412ef7de
tests: add pyflakes checking for unused imports
timeless <timeless@mozdev.org>
parents:
diff
changeset
|
11 for line in sys.stdin: |
30421
21772a6a7861
filterpyflakes: dramatically simplify the entire thing by blacklisting
Augie Fackler <augie@google.com>
parents:
30394
diff
changeset
|
12 # We blacklist tests that are too noisy for us |
14175
b452abffcb15
tests: add pyflakes checking for assigned to but never used
timeless <timeless@mozdev.org>
parents:
14173
diff
changeset
|
13 pats = [ |
32277
80e3002cd29e
tests: remove special handling for undefined memoryview
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30421
diff
changeset
|
14 r"undefined name 'WindowsError'", |
30421
21772a6a7861
filterpyflakes: dramatically simplify the entire thing by blacklisting
Augie Fackler <augie@google.com>
parents:
30394
diff
changeset
|
15 r"redefinition of unused '[^']+' from line", |
32510
50eaccb8353f
filterpyflakes: allow reexporting pure symbols from cffi modules
Yuya Nishihara <yuya@tcha.org>
parents:
32277
diff
changeset
|
16 # for cffi, allow re-exports from pure.* |
50eaccb8353f
filterpyflakes: allow reexporting pure symbols from cffi modules
Yuya Nishihara <yuya@tcha.org>
parents:
32277
diff
changeset
|
17 r"cffi/[^:]*:.*\bimport \*' used", |
50eaccb8353f
filterpyflakes: allow reexporting pure symbols from cffi modules
Yuya Nishihara <yuya@tcha.org>
parents:
32277
diff
changeset
|
18 r"cffi/[^:]*:.*\*' imported but unused", |
30421
21772a6a7861
filterpyflakes: dramatically simplify the entire thing by blacklisting
Augie Fackler <augie@google.com>
parents:
30394
diff
changeset
|
19 ] |
21293
507ce509fd22
filterpyflakes: make memoryview filtering unconditional
Matt Mackall <mpm@selenic.com>
parents:
21271
diff
changeset
|
20 |
30421
21772a6a7861
filterpyflakes: dramatically simplify the entire thing by blacklisting
Augie Fackler <augie@google.com>
parents:
30394
diff
changeset
|
21 keep = True |
21772a6a7861
filterpyflakes: dramatically simplify the entire thing by blacklisting
Augie Fackler <augie@google.com>
parents:
30394
diff
changeset
|
22 for pat in pats: |
21772a6a7861
filterpyflakes: dramatically simplify the entire thing by blacklisting
Augie Fackler <augie@google.com>
parents:
30394
diff
changeset
|
23 if re.search(pat, line): |
21772a6a7861
filterpyflakes: dramatically simplify the entire thing by blacklisting
Augie Fackler <augie@google.com>
parents:
30394
diff
changeset
|
24 keep = False |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
33367
diff
changeset
|
25 break # pattern matches |
30421
21772a6a7861
filterpyflakes: dramatically simplify the entire thing by blacklisting
Augie Fackler <augie@google.com>
parents:
30394
diff
changeset
|
26 if keep: |
21772a6a7861
filterpyflakes: dramatically simplify the entire thing by blacklisting
Augie Fackler <augie@google.com>
parents:
30394
diff
changeset
|
27 fn = line.split(':', 1)[0] |
21772a6a7861
filterpyflakes: dramatically simplify the entire thing by blacklisting
Augie Fackler <augie@google.com>
parents:
30394
diff
changeset
|
28 f = open(fn) |
21772a6a7861
filterpyflakes: dramatically simplify the entire thing by blacklisting
Augie Fackler <augie@google.com>
parents:
30394
diff
changeset
|
29 data = f.read() |
21772a6a7861
filterpyflakes: dramatically simplify the entire thing by blacklisting
Augie Fackler <augie@google.com>
parents:
30394
diff
changeset
|
30 f.close() |
21772a6a7861
filterpyflakes: dramatically simplify the entire thing by blacklisting
Augie Fackler <augie@google.com>
parents:
30394
diff
changeset
|
31 if 'no-' 'check-code' in data: |
21772a6a7861
filterpyflakes: dramatically simplify the entire thing by blacklisting
Augie Fackler <augie@google.com>
parents:
30394
diff
changeset
|
32 continue |
21772a6a7861
filterpyflakes: dramatically simplify the entire thing by blacklisting
Augie Fackler <augie@google.com>
parents:
30394
diff
changeset
|
33 lines.append(line) |
14173
419539ea79cb
test-pyflake: improve sorting algorithm
timeless <timeless@mozdev.org>
parents:
14140
diff
changeset
|
34 |
30421
21772a6a7861
filterpyflakes: dramatically simplify the entire thing by blacklisting
Augie Fackler <augie@google.com>
parents:
30394
diff
changeset
|
35 for line in lines: |
14140
82f0412ef7de
tests: add pyflakes checking for unused imports
timeless <timeless@mozdev.org>
parents:
diff
changeset
|
36 sys.stdout.write(line) |
28724
cf339d6ac7c7
py3: use print_function in filterpyflakes.py
Robert Stanca <robert.stanca7@gmail.com>
parents:
27285
diff
changeset
|
37 print() |