aboutsummaryrefslogtreecommitdiffstats
path: root/setuptools/command/install_lib.py
diff options
context:
space:
mode:
authorJason R. Coombs <jaraco@jaraco.com>2014-09-26 10:39:53 -0400
committerJason R. Coombs <jaraco@jaraco.com>2014-09-26 10:39:53 -0400
commit82c2101634a423ae9ccf003612b89fbd230f8303 (patch)
treefda1e59e30407a97eff0eeb29c039fbbbb98ff0e /setuptools/command/install_lib.py
parentbd62121950280590c9388db065df389cf2d8280d (diff)
downloadexternal_python_setuptools-82c2101634a423ae9ccf003612b89fbd230f8303.tar.gz
external_python_setuptools-82c2101634a423ae9ccf003612b89fbd230f8303.tar.bz2
external_python_setuptools-82c2101634a423ae9ccf003612b89fbd230f8303.zip
Extract method for computing parent packages of a package
Diffstat (limited to 'setuptools/command/install_lib.py')
-rw-r--r--setuptools/command/install_lib.py17
1 files changed, 13 insertions, 4 deletions
diff --git a/setuptools/command/install_lib.py b/setuptools/command/install_lib.py
index bf587a04..88b35972 100644
--- a/setuptools/command/install_lib.py
+++ b/setuptools/command/install_lib.py
@@ -17,15 +17,24 @@ class install_lib(orig.install_lib):
excluded for single_version_externally_managed installations.
"""
exclude = set()
- for pkg in self._get_SVEM_NSPs():
- parts = pkg.split('.')
- while parts:
+ for ns_pkg in self._get_SVEM_NSPs():
+ for pkg in self._all_packages(ns_pkg):
+ parts = pkg.split('.')
pkgdir = os.path.join(self.install_dir, *parts)
for f in self._gen_exclude_names():
exclude.add(os.path.join(pkgdir, f))
- parts.pop()
return exclude
+ @staticmethod
+ def _all_packages(pkg_name):
+ """
+ >>> list(install_lib._all_packages('foo.bar.baz'))
+ ['foo.bar.baz', 'foo.bar', 'foo']
+ """
+ while pkg_name:
+ yield pkg_name
+ pkg_name, sep, child = pkg_name.partition('.')
+
def _get_SVEM_NSPs(self):
"""
Get namespace packages (list) but only for