diff options
author | ?ric Araujo <merwok@netwok.org> | 2012-02-05 11:59:27 +0100 |
---|---|---|
committer | ?ric Araujo <merwok@netwok.org> | 2012-02-05 11:59:27 +0100 |
commit | 858a259ca7d7d06d6dc2436106860176b6c6427d (patch) | |
tree | 0ea62ba1e73b78d1a6d7bdc8dc57b6763ad9d3f7 | |
parent | 5fdd763dde6f8e93038be86edd59631a78de4734 (diff) | |
download | disutils2-858a259ca7d7d06d6dc2436106860176b6c6427d.tar.gz |
Stop converting package_data to extra_files in pysetup create (#13712).
pysetup create used to convert package_data from an existing setup.py
into extra_files, but these files are only present in sdists, not
installed: they don?t have the same use case at all, so converting one
into the other did not work.
-rw-r--r-- | CHANGES.txt | 2 | ||||
-rw-r--r-- | distutils2/create.py | 36 | ||||
-rw-r--r-- | distutils2/tests/test_create.py | 25 |
3 files changed, 36 insertions, 27 deletions
diff --git a/CHANGES.txt b/CHANGES.txt index 1ca5200..62e2b54 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -162,6 +162,8 @@ CONTRIBUTORS.txt for full names. Bug numbers refer to http://bugs.python.org/. - #12659: Add tests for tests.support [francisco] - #13901: Prevent test failure on OS X for Python built in shared mode [ned] - #11805: Add multiple value syntax for package_data in setup.cfg [éric] +- #13712: Don't map package_data to extra_files when converting a setup.py + script with pysetup create [éric] 1.0a3 - 2010-10-08 diff --git a/distutils2/create.py b/distutils2/create.py index 5ad4563..546b178 100644 --- a/distutils2/create.py +++ b/distutils2/create.py @@ -298,6 +298,7 @@ class MainProgram(object): # optional string entries if 'keywords' in self.data and self.data['keywords']: + # XXX shoud use comma to separate, not space fp.write(u'keywords = %s\n' % ' '.join(self.data['keywords'])) for name in ('home_page', 'author', 'author_email', 'maintainer', 'maintainer_email', 'description-file'): @@ -318,17 +319,30 @@ class MainProgram(object): fp.write(u'%s = ' % name) fp.write(u''.join(' %s\n' % val for val in self.data[name]).lstrip()) + fp.write(u'\n[files]\n') - for name in ('packages', 'modules', 'scripts', - 'package_data', 'extra_files'): + + for name in ('packages', 'modules', 'scripts', 'extra_files'): if not(name in self.data and self.data[name]): continue fp.write(u'%s = %s\n' % (name, u'\n '.join(self.data[name]).strip())) - fp.write(u'\nresources =\n') - for src, dest in self.data['resources']: - fp.write(u' %s = %s\n' % (src, dest)) - fp.write(u'\n') + + if self.data.get('package_data'): + fp.write(u'package_data =\n') + for pkg, spec in sorted(self.data['package_data'].items()): + # put one spec per line, indented under the package name + indent = u' ' * (len(pkg) + 7) + spec = (u'\n' + indent).join(spec) + fp.write(u' %s = %s\n' % (pkg, spec)) + fp.write(u'\n') + + if self.data.get('resources'): + fp.write(u'resources =\n') + for src, dest in self.data['resources']: + fp.write(u' %s = %s\n' % (src, dest)) + fp.write(u'\n') + finally: fp.close() @@ -400,14 +414,8 @@ class MainProgram(object): for src in srcs] data['resources'].extend(files) - # 2.2 package_data -> extra_files - package_dirs = dist.package_dir or {} - for package, extras in dist.package_data.items() or []: - package_dir = package_dirs.get(package, package) - for file_ in extras: - if package_dir: - file_ = package_dir + '/' + file_ - data['extra_files'].append(file_) + # 2.2 package_data + data['package_data'] = dist.package_data.copy() # Use README file if its content is the desciption if "description" in data: diff --git a/distutils2/tests/test_create.py b/distutils2/tests/test_create.py index 779d423..ba44fc0 100644 --- a/distutils2/tests/test_create.py +++ b/distutils2/tests/test_create.py @@ -118,7 +118,6 @@ class CreateTestCase(support.TempdirManager, package_data={ 'babar': ['Pom', 'Flora', 'Alexander'], 'me': ['dady', 'mumy', 'sys', 'bro'], - '': ['setup.py', 'README'], 'pyxfoil': ['fengine.so'], }, scripts=['my_script', 'bin/run'], @@ -155,16 +154,15 @@ class CreateTestCase(support.TempdirManager, mymodule scripts = my_script bin/run - extra_files = Martinique/Lamentin/dady - Martinique/Lamentin/mumy - Martinique/Lamentin/sys - Martinique/Lamentin/bro - setup.py - README - Pom - Flora - Alexander - pyxfoil/fengine.so + package_data = + babar = Pom + Flora + Alexander + me = dady + mumy + sys + bro + pyxfoil = fengine.so resources = README.rst = {doc} @@ -228,8 +226,9 @@ ho, baby! [files] packages = pyxfoil - extra_files = pyxfoil/fengine.so - pyxfoil/babar.so + package_data = + pyxfoil = fengine.so + babar.so resources = README.rst = {doc} |