mirror of
https://github.com/python/cpython.git
synced 2025-08-14 05:52:50 +00:00
Let “make patchcheck” work for out-of-dir builds (#9860)
This commit is contained in:
parent
dedb502f90
commit
35a7f5516d
1 changed files with 13 additions and 7 deletions
|
@ -4,11 +4,15 @@ import sys
|
||||||
import shutil
|
import shutil
|
||||||
import os.path
|
import os.path
|
||||||
import subprocess
|
import subprocess
|
||||||
|
import sysconfig
|
||||||
|
|
||||||
import reindent
|
import reindent
|
||||||
import untabify
|
import untabify
|
||||||
|
|
||||||
|
|
||||||
|
SRCDIR = sysconfig.get_config_var('srcdir')
|
||||||
|
|
||||||
|
|
||||||
def n_files_str(count):
|
def n_files_str(count):
|
||||||
"""Return 'N file(s)' with the proper plurality on 'file'."""
|
"""Return 'N file(s)' with the proper plurality on 'file'."""
|
||||||
return "{} file{}".format(count, "s" if count != 1 else "")
|
return "{} file{}".format(count, "s" if count != 1 else "")
|
||||||
|
@ -36,7 +40,7 @@ def status(message, modal=False, info=None):
|
||||||
info=lambda x: n_files_str(len(x)))
|
info=lambda x: n_files_str(len(x)))
|
||||||
def changed_files():
|
def changed_files():
|
||||||
"""Get the list of changed or added files from the VCS."""
|
"""Get the list of changed or added files from the VCS."""
|
||||||
if os.path.isdir('.hg'):
|
if os.path.isdir(os.path.join(SRCDIR, '.hg')):
|
||||||
vcs = 'hg'
|
vcs = 'hg'
|
||||||
cmd = 'hg status --added --modified --no-status'
|
cmd = 'hg status --added --modified --no-status'
|
||||||
elif os.path.isdir('.svn'):
|
elif os.path.isdir('.svn'):
|
||||||
|
@ -75,7 +79,7 @@ def normalize_whitespace(file_paths):
|
||||||
reindent.makebackup = False # No need to create backups.
|
reindent.makebackup = False # No need to create backups.
|
||||||
fixed = []
|
fixed = []
|
||||||
for path in (x for x in file_paths if x.endswith('.py')):
|
for path in (x for x in file_paths if x.endswith('.py')):
|
||||||
if reindent.check(path):
|
if reindent.check(os.path.join(SRCDIR, path)):
|
||||||
fixed.append(path)
|
fixed.append(path)
|
||||||
return fixed
|
return fixed
|
||||||
|
|
||||||
|
@ -85,10 +89,11 @@ def normalize_c_whitespace(file_paths):
|
||||||
"""Report if any C files """
|
"""Report if any C files """
|
||||||
fixed = []
|
fixed = []
|
||||||
for path in file_paths:
|
for path in file_paths:
|
||||||
with open(path, 'r') as f:
|
abspath = os.path.join(SRCDIR, path)
|
||||||
|
with open(abspath, 'r') as f:
|
||||||
if '\t' not in f.read():
|
if '\t' not in f.read():
|
||||||
continue
|
continue
|
||||||
untabify.process(path, 8, verbose=False)
|
untabify.process(abspath, 8, verbose=False)
|
||||||
fixed.append(path)
|
fixed.append(path)
|
||||||
return fixed
|
return fixed
|
||||||
|
|
||||||
|
@ -99,13 +104,14 @@ ws_re = re.compile(br'\s+(\r?\n)$')
|
||||||
def normalize_docs_whitespace(file_paths):
|
def normalize_docs_whitespace(file_paths):
|
||||||
fixed = []
|
fixed = []
|
||||||
for path in file_paths:
|
for path in file_paths:
|
||||||
|
abspath = os.path.join(SRCDIR, path)
|
||||||
try:
|
try:
|
||||||
with open(path, 'rb') as f:
|
with open(abspath, 'rb') as f:
|
||||||
lines = f.readlines()
|
lines = f.readlines()
|
||||||
new_lines = [ws_re.sub(br'\1', line) for line in lines]
|
new_lines = [ws_re.sub(br'\1', line) for line in lines]
|
||||||
if new_lines != lines:
|
if new_lines != lines:
|
||||||
shutil.copyfile(path, path + '.bak')
|
shutil.copyfile(abspath, abspath + '.bak')
|
||||||
with open(path, 'wb') as f:
|
with open(abspath, 'wb') as f:
|
||||||
f.writelines(new_lines)
|
f.writelines(new_lines)
|
||||||
fixed.append(path)
|
fixed.append(path)
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue