Mercurial > cpython-lru_cache-weakref
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 |
| 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 | 42 """Get the list of changed or added files from Mercurial.""" |
| 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 | 46 cmd = 'hg status --added --modified --no-status' |
| 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>
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() |
