* 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
(cherry picked from commit 4a347ce426
)
* Exclude also Modules/_ctypes/libffi on Python 2.7
* Remove _decimal/libmpdec, not in Python 2.7
This commit is contained in:
parent
3cc46bb3ed
commit
d45cb040b9
|
@ -10,8 +10,16 @@ import reindent
|
|||
import untabify
|
||||
|
||||
|
||||
# Excluded directories which are copies of external libraries:
|
||||
# don't check their coding style
|
||||
EXCLUDE_DIRS = [os.path.join('Modules', '_ctypes', 'libffi'),
|
||||
os.path.join('Modules', '_ctypes', 'libffi_osx'),
|
||||
os.path.join('Modules', '_ctypes', 'libffi_msvc'),
|
||||
os.path.join('Modules', 'expat'),
|
||||
os.path.join('Modules', 'zlib')]
|
||||
SRCDIR = sysconfig.get_config_var('srcdir')
|
||||
|
||||
|
||||
def n_files_str(count):
|
||||
"""Return 'N file(s)' with the proper plurality on 'file'."""
|
||||
return "{} file{}".format(count, "s" if count != 1 else "")
|
||||
|
@ -102,7 +110,7 @@ def changed_files(base_branch=None):
|
|||
cmd += ' --rev qparent'
|
||||
st = subprocess.Popen(cmd.split(), stdout=subprocess.PIPE)
|
||||
try:
|
||||
return [x.decode().rstrip() for x in st.stdout]
|
||||
filenames = [x.decode().rstrip() for x in st.stdout]
|
||||
finally:
|
||||
st.stdout.close()
|
||||
elif os.path.exists(os.path.join(SRCDIR, '.git')):
|
||||
|
@ -129,9 +137,19 @@ def changed_files(base_branch=None):
|
|||
filenames.append(filename)
|
||||
finally:
|
||||
st.stdout.close()
|
||||
return filenames
|
||||
else:
|
||||
sys.exit('need a 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):
|
||||
|
|
Loading…
Reference in New Issue