diff options
| author | Jason R. Coombs <jaraco@jaraco.com> | 2015-08-30 13:53:14 -0400 |
|---|---|---|
| committer | Jason R. Coombs <jaraco@jaraco.com> | 2015-08-30 13:53:14 -0400 |
| commit | c05680c5d1b4f0a688a4e560fabde6aa3022596d (patch) | |
| tree | 3bcff163981166a2379c37d57a11147e8164bff8 | |
| parent | e8ffa23f83d13de6ef3e4fe61b5e481c5e6c1d5b (diff) | |
| download | python-setuptools-git-c05680c5d1b4f0a688a4e560fabde6aa3022596d.tar.gz | |
Replace initialize/inject loop with a list comprehension
| -rw-r--r-- | setuptools/__init__.py | 25 |
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 |
