summaryrefslogtreecommitdiff
path: root/setuptools/__init__.py
diff options
context:
space:
mode:
authorJason R. Coombs <jaraco@jaraco.com>2015-08-30 13:53:14 -0400
committerJason R. Coombs <jaraco@jaraco.com>2015-08-30 13:53:14 -0400
commitc05680c5d1b4f0a688a4e560fabde6aa3022596d (patch)
tree3bcff163981166a2379c37d57a11147e8164bff8 /setuptools/__init__.py
parente8ffa23f83d13de6ef3e4fe61b5e481c5e6c1d5b (diff)
downloadpython-setuptools-git-c05680c5d1b4f0a688a4e560fabde6aa3022596d.tar.gz
Replace initialize/inject loop with a list comprehension
Diffstat (limited to 'setuptools/__init__.py')
-rw-r--r--setuptools/__init__.py25
1 files changed, 16 insertions, 9 deletions
diff --git a/setuptools/__init__.py b/setuptools/__init__.py
index 39dd60c6..a884d2d3 100644
--- a/setuptools/__init__.py
+++ b/setuptools/__init__.py
@@ -1,6 +1,7 @@
"""Extensions to the 'distutils' for large or complex distributions"""
import os
+import functools
import distutils.core
import distutils.filelist
from distutils.core import Command as _Command
@@ -138,18 +139,24 @@ class Command(_Command):
# we can't patch distutils.cmd, alas
distutils.core.Command = Command
-def findall(dir = os.curdir):
+def findall(dir=os.curdir):
"""Find all files under 'dir' and return the list of full filenames
(relative to 'dir').
"""
- all_files = []
- for base, dirs, files in os.walk(dir, followlinks=True):
- if base==os.curdir or base.startswith(os.curdir+os.sep):
- base = base[2:]
- if base:
- files = [os.path.join(base, f) for f in files]
- all_files.extend(filter(os.path.isfile, files))
- return all_files
+ def _strip_leading_curdir(base):
+ do_strip = base == os.curdir or base.startswith(os.curdir + os.sep)
+ return base[2:] if do_strip else base
+
+ def _base_prepend(base):
+ base = _strip_leading_curdir(base)
+ return functools.partial(os.path.join, base)
+
+ return [
+ file
+ for base, dirs, files in os.walk(dir, followlinks=True)
+ for file in map(_base_prepend(base), files)
+ if os.path.isfile(file)
+ ]
# fix findall bug in distutils (http://bugs.python.org/issue12885)
distutils.filelist.findall = findall