Fixed #23298 -- Made makemessages actually ignore specified dirs on Windows.
This was detected by two failures in the i18n.test_extraction of our test suite. Refs #20422, refs #22336
This commit is contained in:
parent
d441a9d006
commit
b4dce7c37a
|
@ -364,8 +364,17 @@ class Command(BaseCommand):
|
||||||
fnmatch.fnmatchcase(path, pattern))
|
fnmatch.fnmatchcase(path, pattern))
|
||||||
return any(ignore(pattern) for pattern in ignore_patterns)
|
return any(ignore(pattern) for pattern in ignore_patterns)
|
||||||
|
|
||||||
dir_suffix = '%s*' % os.sep
|
ignore_patterns = [os.path.normcase(p) for p in self.ignore_patterns]
|
||||||
norm_patterns = [p[:-len(dir_suffix)] if p.endswith(dir_suffix) else p for p in self.ignore_patterns]
|
dir_suffixes = {'%s*' % path_sep for path_sep in {'/', os.sep}}
|
||||||
|
norm_patterns = []
|
||||||
|
for p in ignore_patterns:
|
||||||
|
for dir_suffix in dir_suffixes:
|
||||||
|
if p.endswith(dir_suffix):
|
||||||
|
norm_patterns.append(p[:-len(dir_suffix)])
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
norm_patterns.append(p)
|
||||||
|
|
||||||
all_files = []
|
all_files = []
|
||||||
for dirpath, dirnames, filenames in os.walk(root, topdown=True, followlinks=self.symlinks):
|
for dirpath, dirnames, filenames in os.walk(root, topdown=True, followlinks=self.symlinks):
|
||||||
for dirname in dirnames[:]:
|
for dirname in dirnames[:]:
|
||||||
|
|
Loading…
Reference in New Issue