annotate Tools/scripts/patchcheck.py @ 73323:dad02a080bbc

Improve byte-compilation in packaging to be independent of -O or -B. The code I fixed to comply with PEP 3147 still had one bug: When run under python -O, some paths for pyc files would be pyo, because I called imp.cache_from_source without explicit debug_override argument in some places, and under -O that would return .pyo (this is well explained in the imp docs). Now all code (util.byte_compile, build_py, install_lib) can create .pyo files according to options given by users, without interference from the calling Python’s own optimize mode. On a related topic, I also removed the code that prevented byte compilation under python -B. The rationale is that packaging gives control over the creation of pyc files to the user with its own explicit option, and the behavior should not be changed if the calling Python happens to run with -B for whatever reason. I will argue that this is a bug fix and ask to be allowed to backport this change to distutils. Finally, I moved one nugget of information about the --compile and --optimize options from the source into the doc. It clears up a misunderstanding that I (and maybe other people) had.
author Éric Araujo <merwok@netwok.org>
date Thu, 03 Nov 2011 05:08:28 +0100
parents d403eaec64df
children 1bdca2bcba6d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
45865
e0e8bef0d5ec Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
39 @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
40 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
41 def changed_files():
71667
d72e04ff0f97 Small cleanup
Éric Araujo <merwok@netwok.org>
parents: 71666
diff changeset
42 """Get the list of changed or added files from Mercurial."""
d72e04ff0f97 Small cleanup
Éric Araujo <merwok@netwok.org>
parents: 71666
diff changeset
43 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
44 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
45
71667
d72e04ff0f97 Small cleanup
Éric Araujo <merwok@netwok.org>
parents: 71666
diff changeset
46 cmd = 'hg status --added --modified --no-status'
d72e04ff0f97 Small cleanup
Éric Araujo <merwok@netwok.org>
parents: 71666
diff changeset
47 with subprocess.Popen(cmd.split(), stdout=subprocess.PIPE) as st:
71026
39fadb0255cd general cleaning up
Benjamin Peterson <benjamin@python.org>
parents: 71025
diff changeset
48 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
49
05ee6f8c0260 Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents: 50812
diff changeset
50
05ee6f8c0260 Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents: 50812
diff changeset
51 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
52 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
53 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
54 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
55 else:
05ee6f8c0260 Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents: 50812
diff changeset
56 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
57 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
58 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
59 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
60
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 @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
63 def normalize_whitespace(file_paths):
e0e8bef0d5ec Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
64 """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
65 reindent.makebackup = False # No need to create backups.
71026
39fadb0255cd general cleaning up
Benjamin Peterson <benjamin@python.org>
parents: 71025
diff changeset
66 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>
parents: 71570 71663
diff changeset
67 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
68 return fixed
05ee6f8c0260 Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents: 50812
diff changeset
69
05ee6f8c0260 Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents: 50812
diff changeset
70
05ee6f8c0260 Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents: 50812
diff changeset
71 @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
72 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
73 """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
74 fixed = []
05ee6f8c0260 Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents: 50812
diff changeset
75 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
76 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
77 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
78 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
79 continue
71663
313a71664781 Let “make patchcheck” work for out-of-dir builds (#9860)
Éric Araujo <merwok@netwok.org>
parents: 71557
diff changeset
80 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
81 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
82 return fixed
05ee6f8c0260 Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents: 50812
diff changeset
83
05ee6f8c0260 Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents: 50812
diff changeset
84
05ee6f8c0260 Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents: 50812
diff changeset
85 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
86
05ee6f8c0260 Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents: 50812
diff changeset
87 @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
88 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
89 fixed = []
05ee6f8c0260 Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents: 50812
diff changeset
90 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
91 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
92 try:
71663
313a71664781 Let “make patchcheck” work for out-of-dir builds (#9860)
Éric Araujo <merwok@netwok.org>
parents: 71557
diff changeset
93 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
94 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
95 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
96 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
97 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
98 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
99 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
100 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
101 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
102 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
103 return fixed
05ee6f8c0260 Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents: 50812
diff changeset
104
45865
e0e8bef0d5ec Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
105
e0e8bef0d5ec Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
106 @status("Docs modified", modal=True)
e0e8bef0d5ec Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
107 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
108 """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
109 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
110
45865
e0e8bef0d5ec Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
111
e0e8bef0d5ec Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
112 @status("Misc/ACKS updated", modal=True)
e0e8bef0d5ec Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
113 def credit_given(file_paths):
e0e8bef0d5ec Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
114 """Check if Misc/ACKS has been changed."""
50812
a04b1c7167ba Merged revisions 68630 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 45883
diff changeset
115 return 'Misc/ACKS' in file_paths
45865
e0e8bef0d5ec Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
116
66473
05ee6f8c0260 Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents: 50812
diff changeset
117
45865
e0e8bef0d5ec Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
118 @status("Misc/NEWS updated", modal=True)
e0e8bef0d5ec Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
119 def reported_news(file_paths):
e0e8bef0d5ec Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
120 """Check if Misc/NEWS has been changed."""
50812
a04b1c7167ba Merged revisions 68630 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 45883
diff changeset
121 return 'Misc/NEWS' in file_paths
45865
e0e8bef0d5ec Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
122
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 def main():
e0e8bef0d5ec Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
125 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
126 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
127 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
128 doc_files = [fn for fn in file_paths if fn.startswith('Doc')]
05ee6f8c0260 Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents: 50812
diff changeset
129 special_files = {'Misc/ACKS', 'Misc/NEWS'} & set(file_paths)
05ee6f8c0260 Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents: 50812
diff changeset
130 # 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
131 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
132 # 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
133 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
134 # 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
135 normalize_docs_whitespace(doc_files)
45865
e0e8bef0d5ec Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
136 # 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
137 docs_modified(doc_files)
45865
e0e8bef0d5ec Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
138 # Misc/ACKS changed.
66473
05ee6f8c0260 Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents: 50812
diff changeset
139 credit_given(special_files)
45865
e0e8bef0d5ec Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
140 # Misc/NEWS changed.
66473
05ee6f8c0260 Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
Georg Brandl <georg@python.org>
parents: 50812
diff changeset
141 reported_news(special_files)
45865
e0e8bef0d5ec Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
142
e0e8bef0d5ec Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
143 # 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
144 if python_files or c_files:
f1859c9d1086 patchcheck: don’t talk about the test suite when no code file were changed.
Éric Araujo <merwok@netwok.org>
parents: 71663
diff changeset
145 print()
f1859c9d1086 patchcheck: don’t talk about the test suite when no code file were changed.
Éric Araujo <merwok@netwok.org>
parents: 71663
diff changeset
146 print("Did you run the test suite?")
45865
e0e8bef0d5ec Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
147
e0e8bef0d5ec Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
148
e0e8bef0d5ec Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
149 if __name__ == '__main__':
e0e8bef0d5ec Merged revisions 61520,61523-61528,61532 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
150 main()