summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew M. Kuchling <amk@amk.ca>2003-02-28 22:03:04 (GMT)
committerAndrew M. Kuchling <amk@amk.ca>2003-02-28 22:03:04 (GMT)
commite557f3556f1f87825e00a018eabf837c4c55f7d5 (patch)
treeb08401165948ee8961835cbe0f0cc1a264c50caf
parent6156a2d07cc26e89a068bff7a4b7bbc84167d415 (diff)
downloadcpython-e557f3556f1f87825e00a018eabf837c4c55f7d5.zip
cpython-e557f3556f1f87825e00a018eabf837c4c55f7d5.tar.gz
cpython-e557f3556f1f87825e00a018eabf837c4c55f7d5.tar.bz2
[Patch #695090 from Bernhard Herzog] Allow specifying both py_modules and packages
-rw-r--r--Lib/distutils/command/build_py.py26
1 files changed, 6 insertions, 20 deletions
diff --git a/Lib/distutils/command/build_py.py b/Lib/distutils/command/build_py.py
index 258d6d4..6c007c6 100644
--- a/Lib/distutils/command/build_py.py
+++ b/Lib/distutils/command/build_py.py
@@ -86,25 +86,11 @@ class build_py (Command):
# Two options control which modules will be installed: 'packages'
# and 'py_modules'. The former lets us work with whole packages, not
# specifying individual modules at all; the latter is for
- # specifying modules one-at-a-time. Currently they are mutually
- # exclusive: you can define one or the other (or neither), but not
- # both. It remains to be seen how limiting this is.
-
- # Dispose of the two "unusual" cases first: no pure Python modules
- # at all (no problem, just return silently), and over-specified
- # 'packages' and 'py_modules' options.
-
- if not self.py_modules and not self.packages:
- return
- if self.py_modules and self.packages:
- raise DistutilsOptionError, \
- "build_py: supplying both 'packages' and 'py_modules' " + \
- "options is not allowed"
-
- # Now we're down to two cases: 'py_modules' only and 'packages' only.
+ # specifying modules one-at-a-time.
+
if self.py_modules:
self.build_modules()
- else:
+ if self.packages:
self.build_packages()
self.byte_compile(self.get_outputs(include_bytecode=0))
@@ -276,10 +262,10 @@ class build_py (Command):
(package, module, module_file), just like 'find_modules()' and
'find_package_modules()' do."""
+ modules = []
if self.py_modules:
- modules = self.find_modules()
- else:
- modules = []
+ modules.extend(self.find_modules())
+ if self.packages:
for package in self.packages:
package_dir = self.get_package_dir(package)
m = self.find_package_modules(package, package_dir)