bpo-31221: patchcheck ignores external libraries (#3109)
Tools/scripts/patchcheck.py now ignores changes in directories which are copies of external libraries: * Modules/_ctypes/libffi_msvc/ * Modules/_ctypes/libffi_osx/ * Modules/_decimal/libmpdec/ * Modules/expat/ * Modules/zlib/ Drop also support for Mercurial, since CPython migrated to Git. Exclude also libmpdec patchcheck: exclude also libffi_osx and libffi_msvc
This commit is contained in:
parent
b616b97299
commit
4a347ce426
|
@ -11,8 +11,16 @@ import reindent
|
||||||
import untabify
|
import untabify
|
||||||
|
|
||||||
|
|
||||||
|
# Excluded directories which are copies of external libraries:
|
||||||
|
# don't check their coding style
|
||||||
|
EXCLUDE_DIRS = [os.path.join('Modules', '_ctypes', 'libffi_osx'),
|
||||||
|
os.path.join('Modules', '_ctypes', 'libffi_msvc'),
|
||||||
|
os.path.join('Modules', '_decimal', 'libmpdec'),
|
||||||
|
os.path.join('Modules', 'expat'),
|
||||||
|
os.path.join('Modules', 'zlib')]
|
||||||
SRCDIR = sysconfig.get_config_var('srcdir')
|
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 "")
|
||||||
|
@ -98,7 +106,7 @@ def changed_files(base_branch=None):
|
||||||
if mq_patches_applied():
|
if mq_patches_applied():
|
||||||
cmd += ' --rev qparent'
|
cmd += ' --rev qparent'
|
||||||
with subprocess.Popen(cmd.split(), stdout=subprocess.PIPE) as st:
|
with subprocess.Popen(cmd.split(), stdout=subprocess.PIPE) as st:
|
||||||
return [x.decode().rstrip() for x in st.stdout]
|
filenames = [x.decode().rstrip() for x in st.stdout]
|
||||||
elif os.path.exists(os.path.join(SRCDIR, '.git')):
|
elif os.path.exists(os.path.join(SRCDIR, '.git')):
|
||||||
# We just use an existence check here as:
|
# We just use an existence check here as:
|
||||||
# directory = normal git checkout/clone
|
# directory = normal git checkout/clone
|
||||||
|
@ -120,10 +128,20 @@ def changed_files(base_branch=None):
|
||||||
# file is renamed
|
# file is renamed
|
||||||
filename = filename.split(' -> ', 2)[1].strip()
|
filename = filename.split(' -> ', 2)[1].strip()
|
||||||
filenames.append(filename)
|
filenames.append(filename)
|
||||||
return filenames
|
|
||||||
else:
|
else:
|
||||||
sys.exit('need a Mercurial or git checkout to get modified files')
|
sys.exit('need a Mercurial or git checkout to get modified files')
|
||||||
|
|
||||||
|
filenames2 = []
|
||||||
|
for filename in filenames:
|
||||||
|
# Normalize the path to be able to match using .startswith()
|
||||||
|
filename = os.path.normpath(filename)
|
||||||
|
if any(filename.startswith(path) for path in EXCLUDE_DIRS):
|
||||||
|
# Exclude the file
|
||||||
|
continue
|
||||||
|
filenames2.append(filename)
|
||||||
|
|
||||||
|
return filenames2
|
||||||
|
|
||||||
|
|
||||||
def report_modified_files(file_paths):
|
def report_modified_files(file_paths):
|
||||||
count = len(file_paths)
|
count = len(file_paths)
|
||||||
|
|
Loading…
Reference in New Issue