summaryrefslogtreecommitdiffstats
path: root/Lib/distutils/command/sdist.py
diff options
context:
space:
mode:
authorTarek Ziadé <ziade.tarek@gmail.com>2009-02-16 21:38:01 (GMT)
committerTarek Ziadé <ziade.tarek@gmail.com>2009-02-16 21:38:01 (GMT)
commit7dd533963fc947982e472db555cd0ee4b937c9cf (patch)
tree3d7f441fffb5e63b2d48a5f36bf99e95fdfdf071 /Lib/distutils/command/sdist.py
parenta7b0c12152e6268bb09b462f2a0fe52178ee6065 (diff)
downloadcpython-7dd533963fc947982e472db555cd0ee4b937c9cf.zip
cpython-7dd533963fc947982e472db555cd0ee4b937c9cf.tar.gz
cpython-7dd533963fc947982e472db555cd0ee4b937c9cf.tar.bz2
Fixed #2279: distutils.sdist.add_defaults now add files listed in package_data and data_files
Diffstat (limited to 'Lib/distutils/command/sdist.py')
-rw-r--r--Lib/distutils/command/sdist.py22
1 files changed, 21 insertions, 1 deletions
diff --git a/Lib/distutils/command/sdist.py b/Lib/distutils/command/sdist.py
index e8b6bce..291e812 100644
--- a/Lib/distutils/command/sdist.py
+++ b/Lib/distutils/command/sdist.py
@@ -259,6 +259,9 @@ class sdist (Command):
- setup.py
- test/test*.py
- all pure Python modules mentioned in setup script
+ - all files pointed by package_data (build_py)
+ - all files defined in data_files.
+ - all files defined as scripts.
- all C sources listed as part of extensions or C libraries
in the setup script (doesn't catch C headers!)
Warns if (README or README.txt) or setup.py are missing; everything
@@ -291,10 +294,27 @@ class sdist (Command):
if files:
self.filelist.extend(files)
+ # build_py is used to get:
+ # - python modules
+ # - files defined in package_data
+ build_py = self.get_finalized_command('build_py')
+
+ # getting python files
if self.distribution.has_pure_modules():
- build_py = self.get_finalized_command('build_py')
self.filelist.extend(build_py.get_source_files())
+ # getting package_data files
+ # (computed in build_py.data_files by build_py.finalize_options)
+ for pkg, src_dir, build_dir, filenames in build_py.data_files:
+ for filename in filenames:
+ self.filelist.append(os.path.join(src_dir, filename))
+
+ # getting distribution.data_files
+ if self.distribution.has_data_files():
+ for dirname, filenames in self.distribution.data_files:
+ for filename in filenames:
+ self.filelist.append(os.path.join(dirname, filename))
+
if self.distribution.has_ext_modules():
build_ext = self.get_finalized_command('build_ext')
self.filelist.extend(build_ext.get_source_files())