]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[2.7] bpo-31920: Fixed handling directories as arguments in the ``pygettext`` script...
authorSerhiy Storchaka <storchaka@gmail.com>
Tue, 10 Apr 2018 08:03:52 +0000 (11:03 +0300)
committerGitHub <noreply@github.com>
Tue, 10 Apr 2018 08:03:52 +0000 (11:03 +0300)
Based on patch by Oleg Krasnikov.
(cherry picked from commit c93938b5beea4c3f592119ebee6d4029558db8de)

Misc/ACKS
Misc/NEWS.d/next/Tools-Demos/2018-03-26-18-54-24.bpo-31920.u_WKsT.rst [new file with mode: 0644]
Tools/i18n/pygettext.py

index ee2e4fc1939395bc48a77e03b272e17afc1d5476..28255740c7f0bcdc078a8e696fcfd8a84c03a6b4 100644 (file)
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -767,6 +767,7 @@ Jerzy Kozera
 Maksim Kozyarchuk
 Stefan Krah
 Bob Kras
+Oleg Krasnikov
 Sebastian Kreft
 Holger Krekel
 Michael Kremer
diff --git a/Misc/NEWS.d/next/Tools-Demos/2018-03-26-18-54-24.bpo-31920.u_WKsT.rst b/Misc/NEWS.d/next/Tools-Demos/2018-03-26-18-54-24.bpo-31920.u_WKsT.rst
new file mode 100644 (file)
index 0000000..39c694b
--- /dev/null
@@ -0,0 +1,2 @@
+Fixed handling directories as arguments in the ``pygettext`` script. Based
+on patch by Oleg Krasnikov.
index a62d2fe441f8bf8116a08da390c71c79a7710fad..ddd750ed44d6df62943e4c0d82de289dc2a06ad9 100755 (executable)
@@ -261,25 +261,6 @@ def containsAny(str, 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):
     """Get the filesystem path for a module or a package.
 
@@ -340,7 +321,20 @@ def getFilesForName(name):
     if os.path.isdir(name):
         # find all python files in directory
         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
     elif os.path.exists(name):
         # a single file