Commit a61f5da5 authored by Serhiy Storchaka's avatar Serhiy Storchaka Committed by GitHub

[2.7] bpo-31920: Fixed handling directories as arguments in the ``pygettext``...

[2.7] bpo-31920: Fixed handling directories as arguments in the ``pygettext`` script. (GH-6259) (GH-6436)

Based on patch by Oleg Krasnikov.
(cherry picked from commit c93938b5)
parent 77f0a41d
...@@ -767,6 +767,7 @@ Jerzy Kozera ...@@ -767,6 +767,7 @@ Jerzy Kozera
Maksim Kozyarchuk Maksim Kozyarchuk
Stefan Krah Stefan Krah
Bob Kras Bob Kras
Oleg Krasnikov
Sebastian Kreft Sebastian Kreft
Holger Krekel Holger Krekel
Michael Kremer Michael Kremer
......
Fixed handling directories as arguments in the ``pygettext`` script. Based
on patch by Oleg Krasnikov.
...@@ -261,25 +261,6 @@ def containsAny(str, set): ...@@ -261,25 +261,6 @@ def containsAny(str, set):
return 1 in [c in str for c in set] return 1 in [c in str for c in set]
def _visit_pyfiles(list, dirname, names):
"""Helper for getFilesForName()."""
# get extension for python source files
if not globals().has_key('_py_ext'):
global _py_ext
_py_ext = [triple[0] for triple in imp.get_suffixes()
if triple[2] == imp.PY_SOURCE][0]
# don't recurse into CVS directories
if 'CVS' in names:
names.remove('CVS')
# add all *.py files to list
list.extend(
[os.path.join(dirname, file) for file in names
if os.path.splitext(file)[1] == _py_ext]
)
def _get_modpkg_path(dotted_name, pathlist=None): def _get_modpkg_path(dotted_name, pathlist=None):
"""Get the filesystem path for a module or a package. """Get the filesystem path for a module or a package.
...@@ -340,7 +321,20 @@ def getFilesForName(name): ...@@ -340,7 +321,20 @@ def getFilesForName(name):
if os.path.isdir(name): if os.path.isdir(name):
# find all python files in directory # find all python files in directory
list = [] list = []
os.path.walk(name, _visit_pyfiles, list) # get extension for python source files
if '_py_ext' not in globals():
global _py_ext
_py_ext = [triple[0] for triple in imp.get_suffixes()
if triple[2] == imp.PY_SOURCE][0]
for root, dirs, files in os.walk(name):
# don't recurse into CVS directories
if 'CVS' in dirs:
dirs.remove('CVS')
# add all *.py files to list
list.extend(
[os.path.join(root, file) for file in files
if os.path.splitext(file)[1] == _py_ext]
)
return list return list
elif os.path.exists(name): elif os.path.exists(name):
# a single file # a single file
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment