Mercurial > cpython-lru_cache-weakref
annotate Tools/scripts/patchcheck.py @ 87690:66c1c9f32567 default tip
Add use_weakref option to functools.lru_cache
The use_weakref option makes lru_cache create weak references to the function
arguments when creating the cache key, which prevents them from staying in the
memory forever even after all other references to them are gone.
This is a proof of concept for http://bugs.python.org/issue19859
| author | Radomir Dopieralski <devel@sheep.art.pl> |
|---|---|
| date | Tue, 03 Dec 2013 16:02:48 +0100 |
| parents | 26686d227e41 |
| children |
| rev | line source |
|---|---|
|
71557
65d5ecefd50d
Fix missing or wrong shebangs and missing executable bits for scripts (#10318)
Éric Araujo <merwok@netwok.org>
parents:
68257
diff
changeset
|
1 #!/usr/bin/env python3 |
|
66473
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
2 import re |
|
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
3 import sys |
|
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
4 import shutil |
|
45865
e0e8bef0d5ec
Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
5 import os.path |
|
e0e8bef0d5ec
Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
6 import subprocess |
|
71663
313a71664781
Let “make patchcheck” work for out-of-dir builds (#9860)
Éric Araujo <merwok@netwok.org>
parents:
71557
diff
changeset
|
7 import sysconfig |
|
45865
e0e8bef0d5ec
Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
8 |
|
e0e8bef0d5ec
Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
9 import reindent |
|
66473
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
10 import untabify |
|
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
11 |
|
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
12 |
|
71663
313a71664781
Let “make patchcheck” work for out-of-dir builds (#9860)
Éric Araujo <merwok@netwok.org>
parents:
71557
diff
changeset
|
13 SRCDIR = sysconfig.get_config_var('srcdir') |
|
313a71664781
Let “make patchcheck” work for out-of-dir builds (#9860)
Éric Araujo <merwok@netwok.org>
parents:
71557
diff
changeset
|
14 |
|
313a71664781
Let “make patchcheck” work for out-of-dir builds (#9860)
Éric Araujo <merwok@netwok.org>
parents:
71557
diff
changeset
|
15 |
|
66473
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
16 def n_files_str(count): |
|
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
17 """Return 'N file(s)' with the proper plurality on 'file'.""" |
|
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
18 return "{} file{}".format(count, "s" if count != 1 else "") |
|
45865
e0e8bef0d5ec
Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
19 |
|
e0e8bef0d5ec
Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
20 |
|
e0e8bef0d5ec
Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
21 def status(message, modal=False, info=None): |
|
e0e8bef0d5ec
Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
22 """Decorator to output status info to stdout.""" |
|
e0e8bef0d5ec
Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
23 def decorated_fxn(fxn): |
|
e0e8bef0d5ec
Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
24 def call_fxn(*args, **kwargs): |
|
e0e8bef0d5ec
Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
25 sys.stdout.write(message + ' ... ') |
|
e0e8bef0d5ec
Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
26 sys.stdout.flush() |
|
e0e8bef0d5ec
Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
27 result = fxn(*args, **kwargs) |
|
e0e8bef0d5ec
Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
28 if not modal and not info: |
|
e0e8bef0d5ec
Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
29 print("done") |
|
e0e8bef0d5ec
Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
30 elif info: |
|
e0e8bef0d5ec
Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
31 print(info(result)) |
|
e0e8bef0d5ec
Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
32 else: |
|
66473
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
33 print("yes" if result else "NO") |
|
45865
e0e8bef0d5ec
Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
34 return result |
|
e0e8bef0d5ec
Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
35 return call_fxn |
|
e0e8bef0d5ec
Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
36 return decorated_fxn |
|
e0e8bef0d5ec
Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
37 |
|
66473
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
38 |
|
75168
fc5de19c66e2
Issue #14053: Fix "make patchcheck" to work with MQ.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
71834
diff
changeset
|
39 def mq_patches_applied(): |
|
fc5de19c66e2
Issue #14053: Fix "make patchcheck" to work with MQ.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
71834
diff
changeset
|
40 """Check if there are any applied MQ patches.""" |
|
fc5de19c66e2
Issue #14053: Fix "make patchcheck" to work with MQ.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
71834
diff
changeset
|
41 cmd = 'hg qapplied' |
|
fc5de19c66e2
Issue #14053: Fix "make patchcheck" to work with MQ.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
71834
diff
changeset
|
42 with subprocess.Popen(cmd.split(), |
|
fc5de19c66e2
Issue #14053: Fix "make patchcheck" to work with MQ.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
71834
diff
changeset
|
43 stdout=subprocess.PIPE, |
|
fc5de19c66e2
Issue #14053: Fix "make patchcheck" to work with MQ.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
71834
diff
changeset
|
44 stderr=subprocess.PIPE) as st: |
|
fc5de19c66e2
Issue #14053: Fix "make patchcheck" to work with MQ.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
71834
diff
changeset
|
45 bstdout, _ = st.communicate() |
|
fc5de19c66e2
Issue #14053: Fix "make patchcheck" to work with MQ.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
71834
diff
changeset
|
46 return st.returncode == 0 and bstdout |
|
fc5de19c66e2
Issue #14053: Fix "make patchcheck" to work with MQ.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
71834
diff
changeset
|
47 |
|
fc5de19c66e2
Issue #14053: Fix "make patchcheck" to work with MQ.
Nadeem Vawda <nadeem.vawda@gmail.com>
parents:
71834
diff
changeset
|
48 |
|
45865
e0e8bef0d5ec
Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
49 @status("Getting the list of files that have been added/changed", |
|
66473
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
50 info=lambda x: n_files_str(len(x))) |
|
45865
e0e8bef0d5ec
Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
51 def changed_files(): |
| 71667 | 52 """Get the list of changed or added files from Mercurial.""" |
| 53 if not os.path.isdir(os.path.join(SRCDIR, '.hg')): | |
|
66473
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
54 sys.exit('need a checkout to get modified files') |
|
45865
e0e8bef0d5ec
Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
55 |
| 71667 | 56 cmd = 'hg status --added --modified --no-status' |
|
75169
1bdca2bcba6d
Merge: #14053: Fix "make patchcheck" to work with MQ.
Nadeem Vawda <nadeem.vawda@gmail.com>
diff
changeset
|
57 if mq_patches_applied(): |
|
1bdca2bcba6d
Merge: #14053: Fix "make patchcheck" to work with MQ.
Nadeem Vawda <nadeem.vawda@gmail.com>
diff
changeset
|
58 cmd += ' --rev qparent' |
| 71667 | 59 with subprocess.Popen(cmd.split(), stdout=subprocess.PIPE) as st: |
|
71026
39fadb0255cd
general cleaning up
Benjamin Peterson <benjamin@python.org>
parents:
71025
diff
changeset
|
60 return [x.decode().rstrip() for x in st.stdout] |
|
66473
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
61 |
|
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
62 |
|
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
63 def report_modified_files(file_paths): |
|
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
64 count = len(file_paths) |
|
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
65 if count == 0: |
|
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
66 return n_files_str(count) |
|
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
67 else: |
|
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
68 lines = ["{}:".format(n_files_str(count))] |
|
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
69 for path in file_paths: |
|
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
70 lines.append(" {}".format(path)) |
|
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
71 return "\n".join(lines) |
|
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
72 |
|
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
73 |
|
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
74 @status("Fixing whitespace", info=report_modified_files) |
|
45865
e0e8bef0d5ec
Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
75 def normalize_whitespace(file_paths): |
|
e0e8bef0d5ec
Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
76 """Make sure that the whitespace for .py files have been normalized.""" |
|
e0e8bef0d5ec
Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
77 reindent.makebackup = False # No need to create backups. |
|
71026
39fadb0255cd
general cleaning up
Benjamin Peterson <benjamin@python.org>
parents:
71025
diff
changeset
|
78 fixed = [path for path in file_paths if path.endswith('.py') and |
|
71666
5993f91598ce
Merge fixes for #9860, #11104/#8688 and #12331 from 3.2
Éric Araujo <merwok@netwok.org>
diff
changeset
|
79 reindent.check(os.path.join(SRCDIR, path))] |
|
66473
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
80 return fixed |
|
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
81 |
|
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
82 |
|
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
83 @status("Fixing C file whitespace", info=report_modified_files) |
|
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
84 def normalize_c_whitespace(file_paths): |
|
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
85 """Report if any C files """ |
|
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
86 fixed = [] |
|
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
87 for path in file_paths: |
|
71663
313a71664781
Let “make patchcheck” work for out-of-dir builds (#9860)
Éric Araujo <merwok@netwok.org>
parents:
71557
diff
changeset
|
88 abspath = os.path.join(SRCDIR, path) |
|
313a71664781
Let “make patchcheck” work for out-of-dir builds (#9860)
Éric Araujo <merwok@netwok.org>
parents:
71557
diff
changeset
|
89 with open(abspath, 'r') as f: |
|
66473
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
90 if '\t' not in f.read(): |
|
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
91 continue |
|
71663
313a71664781
Let “make patchcheck” work for out-of-dir builds (#9860)
Éric Araujo <merwok@netwok.org>
parents:
71557
diff
changeset
|
92 untabify.process(abspath, 8, verbose=False) |
|
66473
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
93 fixed.append(path) |
|
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
94 return fixed |
|
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
95 |
|
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
96 |
|
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
97 ws_re = re.compile(br'\s+(\r?\n)$') |
|
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
98 |
|
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
99 @status("Fixing docs whitespace", info=report_modified_files) |
|
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
100 def normalize_docs_whitespace(file_paths): |
|
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
101 fixed = [] |
|
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
102 for path in file_paths: |
|
71663
313a71664781
Let “make patchcheck” work for out-of-dir builds (#9860)
Éric Araujo <merwok@netwok.org>
parents:
71557
diff
changeset
|
103 abspath = os.path.join(SRCDIR, path) |
|
66473
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
104 try: |
|
71663
313a71664781
Let “make patchcheck” work for out-of-dir builds (#9860)
Éric Araujo <merwok@netwok.org>
parents:
71557
diff
changeset
|
105 with open(abspath, 'rb') as f: |
|
66473
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
106 lines = f.readlines() |
|
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
107 new_lines = [ws_re.sub(br'\1', line) for line in lines] |
|
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
108 if new_lines != lines: |
|
71663
313a71664781
Let “make patchcheck” work for out-of-dir builds (#9860)
Éric Araujo <merwok@netwok.org>
parents:
71557
diff
changeset
|
109 shutil.copyfile(abspath, abspath + '.bak') |
|
313a71664781
Let “make patchcheck” work for out-of-dir builds (#9860)
Éric Araujo <merwok@netwok.org>
parents:
71557
diff
changeset
|
110 with open(abspath, 'wb') as f: |
|
66473
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
111 f.writelines(new_lines) |
|
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
112 fixed.append(path) |
|
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
113 except Exception as err: |
|
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
114 print('Cannot fix %s: %s' % (path, err)) |
|
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
115 return fixed |
|
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
116 |
|
45865
e0e8bef0d5ec
Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
117 |
|
e0e8bef0d5ec
Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
118 @status("Docs modified", modal=True) |
|
e0e8bef0d5ec
Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
119 def docs_modified(file_paths): |
|
66473
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
120 """Report if any file in the Doc directory has been changed.""" |
|
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
121 return bool(file_paths) |
|
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
122 |
|
45865
e0e8bef0d5ec
Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
123 |
|
e0e8bef0d5ec
Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
124 @status("Misc/ACKS updated", modal=True) |
|
e0e8bef0d5ec
Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
125 def credit_given(file_paths): |
|
e0e8bef0d5ec
Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
126 """Check if Misc/ACKS has been changed.""" |
|
84773
26686d227e41
Issue #18439: Make patchcheck work on Windows for ACKS, NEWS.
Terry Jan Reedy <tjreedy@udel.edu>
parents:
81416
diff
changeset
|
127 return os.path.join('Misc', 'ACKS') in file_paths |
|
45865
e0e8bef0d5ec
Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
128 |
|
66473
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
129 |
|
45865
e0e8bef0d5ec
Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
130 @status("Misc/NEWS updated", modal=True) |
|
e0e8bef0d5ec
Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
131 def reported_news(file_paths): |
|
e0e8bef0d5ec
Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
132 """Check if Misc/NEWS has been changed.""" |
|
84773
26686d227e41
Issue #18439: Make patchcheck work on Windows for ACKS, NEWS.
Terry Jan Reedy <tjreedy@udel.edu>
parents:
81416
diff
changeset
|
133 return os.path.join('Misc', 'NEWS') in file_paths |
|
45865
e0e8bef0d5ec
Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
134 |
|
75523
8ecd1a1c7dfc
Modify patchcheck.py to check for changes to configure.in.
Ross Lagerwall <rosslagerwall@gmail.com>
parents:
75169
diff
changeset
|
135 @status("configure regenerated", modal=True, info=str) |
|
8ecd1a1c7dfc
Modify patchcheck.py to check for changes to configure.in.
Ross Lagerwall <rosslagerwall@gmail.com>
parents:
75169
diff
changeset
|
136 def regenerated_configure(file_paths): |
|
8ecd1a1c7dfc
Modify patchcheck.py to check for changes to configure.in.
Ross Lagerwall <rosslagerwall@gmail.com>
parents:
75169
diff
changeset
|
137 """Check if configure has been regenerated.""" |
| 75661 | 138 if 'configure.ac' in file_paths: |
|
75523
8ecd1a1c7dfc
Modify patchcheck.py to check for changes to configure.in.
Ross Lagerwall <rosslagerwall@gmail.com>
parents:
75169
diff
changeset
|
139 return "yes" if 'configure' in file_paths else "no" |
|
8ecd1a1c7dfc
Modify patchcheck.py to check for changes to configure.in.
Ross Lagerwall <rosslagerwall@gmail.com>
parents:
75169
diff
changeset
|
140 else: |
|
8ecd1a1c7dfc
Modify patchcheck.py to check for changes to configure.in.
Ross Lagerwall <rosslagerwall@gmail.com>
parents:
75169
diff
changeset
|
141 return "not needed" |
|
8ecd1a1c7dfc
Modify patchcheck.py to check for changes to configure.in.
Ross Lagerwall <rosslagerwall@gmail.com>
parents:
75169
diff
changeset
|
142 |
|
8ecd1a1c7dfc
Modify patchcheck.py to check for changes to configure.in.
Ross Lagerwall <rosslagerwall@gmail.com>
parents:
75169
diff
changeset
|
143 @status("pyconfig.h.in regenerated", modal=True, info=str) |
|
8ecd1a1c7dfc
Modify patchcheck.py to check for changes to configure.in.
Ross Lagerwall <rosslagerwall@gmail.com>
parents:
75169
diff
changeset
|
144 def regenerated_pyconfig_h_in(file_paths): |
|
8ecd1a1c7dfc
Modify patchcheck.py to check for changes to configure.in.
Ross Lagerwall <rosslagerwall@gmail.com>
parents:
75169
diff
changeset
|
145 """Check if pyconfig.h.in has been regenerated.""" |
| 75661 | 146 if 'configure.ac' in file_paths: |
|
75523
8ecd1a1c7dfc
Modify patchcheck.py to check for changes to configure.in.
Ross Lagerwall <rosslagerwall@gmail.com>
parents:
75169
diff
changeset
|
147 return "yes" if 'pyconfig.h.in' in file_paths else "no" |
|
8ecd1a1c7dfc
Modify patchcheck.py to check for changes to configure.in.
Ross Lagerwall <rosslagerwall@gmail.com>
parents:
75169
diff
changeset
|
148 else: |
|
8ecd1a1c7dfc
Modify patchcheck.py to check for changes to configure.in.
Ross Lagerwall <rosslagerwall@gmail.com>
parents:
75169
diff
changeset
|
149 return "not needed" |
|
45865
e0e8bef0d5ec
Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
150 |
|
e0e8bef0d5ec
Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
151 def main(): |
|
e0e8bef0d5ec
Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
152 file_paths = changed_files() |
|
66473
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
153 python_files = [fn for fn in file_paths if fn.endswith('.py')] |
|
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
154 c_files = [fn for fn in file_paths if fn.endswith(('.c', '.h'))] |
|
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
155 doc_files = [fn for fn in file_paths if fn.startswith('Doc')] |
|
84773
26686d227e41
Issue #18439: Make patchcheck work on Windows for ACKS, NEWS.
Terry Jan Reedy <tjreedy@udel.edu>
parents:
81416
diff
changeset
|
156 misc_files = {os.path.join('Misc', 'ACKS'), os.path.join('Misc', 'NEWS')}\ |
|
26686d227e41
Issue #18439: Make patchcheck work on Windows for ACKS, NEWS.
Terry Jan Reedy <tjreedy@udel.edu>
parents:
81416
diff
changeset
|
157 & set(file_paths) |
|
66473
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
158 # PEP 8 whitespace rules enforcement. |
|
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
159 normalize_whitespace(python_files) |
|
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
160 # C rules enforcement. |
|
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
161 normalize_c_whitespace(c_files) |
|
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
162 # Doc whitespace enforcement. |
|
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
163 normalize_docs_whitespace(doc_files) |
|
45865
e0e8bef0d5ec
Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
164 # Docs updated. |
|
66473
05ee6f8c0260
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
50812
diff
changeset
|
165 docs_modified(doc_files) |
|
45865
e0e8bef0d5ec
Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
166 # Misc/ACKS changed. |
|
84773
26686d227e41
Issue #18439: Make patchcheck work on Windows for ACKS, NEWS.
Terry Jan Reedy <tjreedy@udel.edu>
parents:
81416
diff
changeset
|
167 credit_given(misc_files) |
|
45865
e0e8bef0d5ec
Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
168 # Misc/NEWS changed. |
|
84773
26686d227e41
Issue #18439: Make patchcheck work on Windows for ACKS, NEWS.
Terry Jan Reedy <tjreedy@udel.edu>
parents:
81416
diff
changeset
|
169 reported_news(misc_files) |
|
75523
8ecd1a1c7dfc
Modify patchcheck.py to check for changes to configure.in.
Ross Lagerwall <rosslagerwall@gmail.com>
parents:
75169
diff
changeset
|
170 # Regenerated configure, if necessary. |
|
8ecd1a1c7dfc
Modify patchcheck.py to check for changes to configure.in.
Ross Lagerwall <rosslagerwall@gmail.com>
parents:
75169
diff
changeset
|
171 regenerated_configure(file_paths) |
|
8ecd1a1c7dfc
Modify patchcheck.py to check for changes to configure.in.
Ross Lagerwall <rosslagerwall@gmail.com>
parents:
75169
diff
changeset
|
172 # Regenerated pyconfig.h.in, if necessary. |
|
8ecd1a1c7dfc
Modify patchcheck.py to check for changes to configure.in.
Ross Lagerwall <rosslagerwall@gmail.com>
parents:
75169
diff
changeset
|
173 regenerated_pyconfig_h_in(file_paths) |
|
45865
e0e8bef0d5ec
Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
174 |
|
e0e8bef0d5ec
Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
175 # Test suite run and passed. |
|
71834
f1859c9d1086
patchcheck: don’t talk about the test suite when no code file were changed.
Éric Araujo <merwok@netwok.org>
parents:
71663
diff
changeset
|
176 if python_files or c_files: |
|
81415
0ed68fb13b3a
Add a note about checking refleaks to patchcheck.
Ezio Melotti <ezio.melotti@gmail.com>
parents:
75168
diff
changeset
|
177 end = " and check for refleaks?" if c_files else "?" |
|
71834
f1859c9d1086
patchcheck: don’t talk about the test suite when no code file were changed.
Éric Araujo <merwok@netwok.org>
parents:
71663
diff
changeset
|
178 print() |
|
81415
0ed68fb13b3a
Add a note about checking refleaks to patchcheck.
Ezio Melotti <ezio.melotti@gmail.com>
parents:
75168
diff
changeset
|
179 print("Did you run the test suite" + end) |
|
45865
e0e8bef0d5ec
Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
180 |
|
e0e8bef0d5ec
Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
181 |
|
e0e8bef0d5ec
Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
182 if __name__ == '__main__': |
|
e0e8bef0d5ec
Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
183 main() |
