[Python-checkins] distutils2: merge to lastest head

tarek.ziade python-checkins at python.org
Sat Jan 29 14:21:48 CET 2011


tarek.ziade pushed edda0a74267a to distutils2:
http://hg.python.org/distutils2/rev/edda0a74267a
changeset: 912:edda0a74267a
parent: 911:efe36550d8cc
parent: 906:f7b8081c17fc
user: Gael Pasgrimaud <gael at gawel.org>
date: Sat Jan 29 14:03:03 2011 +0100
summary:
 merge to lastest head
files:
 distutils2/config.py
diff --git a/distutils2/command/build_py.py b/distutils2/command/build_py.py
--- a/distutils2/command/build_py.py
+++ b/distutils2/command/build_py.py
@@ -66,10 +66,9 @@
 self.packages = self.distribution.packages
 self.py_modules = self.distribution.py_modules
 self.package_data = self.distribution.package_data
- self.package_dir = {}
- if self.distribution.package_dir:
- for name, path in self.distribution.package_dir.iteritems():
- self.package_dir[name] = convert_path(path)
+ self.package_dir = None
+ if self.distribution.package_dir is not None:
+ self.package_dir = convert_path(self.distribution.package_dir)
 self.data_files = self.get_data_files()
 
 # Ick, copied straight from install_lib.py (fancy_getopt needs a
@@ -179,41 +178,14 @@
 """Return the directory, relative to the top of the source
 distribution, where package 'package' should be found
 (at least according to the 'package_dir' option, if any)."""
+ path = package.split('.')
+ if self.package_dir is not None:
+ path.insert(0, self.package_dir)
 
- path = package.split('.')
+ if len(path) > 0:
+ return os.path.join(*path)
 
- if not self.package_dir:
- if path:
- return os.path.join(*path)
- else:
- return ''
- else:
- tail = []
- while path:
- try:
- pdir = self.package_dir['.'.join(path)]
- except KeyError:
- tail.insert(0, path[-1])
- del path[-1]
- else:
- tail.insert(0, pdir)
- return os.path.join(*tail)
- else:
- # Oops, got all the way through 'path' without finding a
- # match in package_dir. If package_dir defines a directory
- # for the root (nameless) package, then fallback on it;
- # otherwise, we might as well have not consulted
- # package_dir at all, as we just use the directory implied
- # by 'tail' (which should be the same as the original value
- # of 'path' at this point).
- pdir = self.package_dir.get('')
- if pdir is not None:
- tail.insert(0, pdir)
-
- if tail:
- return os.path.join(*tail)
- else:
- return ''
+ return ''
 
 def check_package(self, package, package_dir):
 """Helper function for `find_package_modules()` and `find_modules()'.
diff --git a/distutils2/config.py b/distutils2/config.py
--- a/distutils2/config.py
+++ b/distutils2/config.py
@@ -139,16 +139,12 @@
 files = dict([(key, self._multiline(value))
 for key, value in content['files'].iteritems()])
 self.dist.packages = []
- self.dist.package_dir = {}
-
+ self.dist.package_dir = pkg_dir = files.get('packages_root')
 packages = files.get('packages', [])
 if isinstance(packages, str):
 packages = [packages]
 
 for package in packages:
- if ':' in package:
- dir_, package = package.split(':')
- self.dist.package_dir[package] = dir_
 self.dist.packages.append(package)
 
 self.dist.py_modules = files.get('modules', [])
diff --git a/distutils2/install.py b/distutils2/install.py
--- a/distutils2/install.py
+++ b/distutils2/install.py
@@ -208,6 +208,13 @@
 infos[key].extend(new_infos[key])
 
 
+def remove(project_name):
+ """Removes a single project from the installation"""
+ pass
+
+
+
+
 def main(**attrs):
 if 'script_args' not in attrs:
 import sys
diff --git a/distutils2/run.py b/distutils2/run.py
--- a/distutils2/run.py
+++ b/distutils2/run.py
@@ -109,6 +109,7 @@
 
 except (DistutilsError,
 CCompilerError), msg:
+ raise
 raise SystemExit, "error: " + str(msg)
 
 return dist
diff --git a/distutils2/tests/test_command_build_ext.py b/distutils2/tests/test_command_build_ext.py
--- a/distutils2/tests/test_command_build_ext.py
+++ b/distutils2/tests/test_command_build_ext.py
@@ -289,7 +289,7 @@
 
 # inplace = 0, cmd.package = 'bar'
 build_py = cmd.get_finalized_command('build_py')
- build_py.package_dir = {'': 'bar'}
+ build_py.package_dir = 'bar'
 path = cmd.get_ext_fullpath('foo')
 # checking that the last directory is the build_dir
 path = os.path.split(path)[0]
@@ -318,7 +318,7 @@
 dist = Distribution()
 cmd = build_ext(dist)
 cmd.inplace = 1
- cmd.distribution.package_dir = {'': 'src'}
+ cmd.distribution.package_dir = 'src'
 cmd.distribution.packages = ['lxml', 'lxml.html']
 curdir = os.getcwd()
 wanted = os.path.join(curdir, 'src', 'lxml', 'etree' + ext)
@@ -334,7 +334,7 @@
 
 # building twisted.runner.portmap not inplace
 build_py = cmd.get_finalized_command('build_py')
- build_py.package_dir = {}
+ build_py.package_dir = None
 cmd.distribution.packages = ['twisted', 'twisted.runner.portmap']
 path = cmd.get_ext_fullpath('twisted.runner.portmap')
 wanted = os.path.join(curdir, 'tmpdir', 'twisted', 'runner',
diff --git a/distutils2/tests/test_command_build_py.py b/distutils2/tests/test_command_build_py.py
--- a/distutils2/tests/test_command_build_py.py
+++ b/distutils2/tests/test_command_build_py.py
@@ -17,12 +17,14 @@
 
 def test_package_data(self):
 sources = self.mkdtemp()
- f = open(os.path.join(sources, "__init__.py"), "w")
+ pkg_dir = os.path.join(sources, 'pkg')
+ os.mkdir(pkg_dir)
+ f = open(os.path.join(pkg_dir, "__init__.py"), "w")
 try:
 f.write("# Pretend this is a package.")
 finally:
 f.close()
- f = open(os.path.join(sources, "README.txt"), "w")
+ f = open(os.path.join(pkg_dir, "README.txt"), "w")
 try:
 f.write("Info about this package")
 finally:
@@ -31,8 +33,9 @@
 destination = self.mkdtemp()
 
 dist = Distribution({"packages": ["pkg"],
- "package_dir": {"pkg": sources}})
+ "package_dir": sources})
 # script_name need not exist, it just need to be initialized
+
 dist.script_name = os.path.join(sources, "setup.py")
 dist.command_obj["build"] = support.DummyCommand(
 force=0,
@@ -42,7 +45,7 @@
 use_2to3=False)
 dist.packages = ["pkg"]
 dist.package_data = {"pkg": ["README.txt"]}
- dist.package_dir = {"pkg": sources}
+ dist.package_dir = sources
 
 cmd = build_py(dist)
 cmd.compile = 1
@@ -68,19 +71,20 @@
 
 # create the distribution files.
 sources = self.mkdtemp()
- open(os.path.join(sources, "__init__.py"), "w").close()
-
- testdir = os.path.join(sources, "doc")
+ pkg = os.path.join(sources, 'pkg')
+ os.mkdir(pkg)
+ open(os.path.join(pkg, "__init__.py"), "w").close()
+ testdir = os.path.join(pkg, "doc")
 os.mkdir(testdir)
 open(os.path.join(testdir, "testfile"), "w").close()
 
 os.chdir(sources)
 old_stdout = sys.stdout
- sys.stdout = StringIO.StringIO()
+ #sys.stdout = StringIO.StringIO()
 
 try:
 dist = Distribution({"packages": ["pkg"],
- "package_dir": {"pkg": ""},
+ "package_dir": sources,
 "package_data": {"pkg": ["doc/*"]}})
 # script_name need not exist, it just need to be initialized
 dist.script_name = os.path.join(sources, "setup.py")
@@ -89,7 +93,7 @@
 
 try:
 dist.run_commands()
- except DistutilsFileError:
+ except DistutilsFileError, e:
 self.fail("failed package_data test when package_dir is ''")
 finally:
 # Restore state.
diff --git a/distutils2/tests/test_config.py b/distutils2/tests/test_config.py
--- a/distutils2/tests/test_config.py
+++ b/distutils2/tests/test_config.py
@@ -49,9 +49,11 @@
 Fork in progress, http://bitbucket.org/Merwok/sample-distutils2-project
 
 [files]
+packages_root = src
+
 packages = one
- src:two
- src2:three
+ two
+ three
 
 modules = haven
 
@@ -140,6 +142,7 @@
 opts.update(kwargs)
 self.write_file('setup.cfg', SETUP_CFG % opts)
 
+
 def run_setup(self, *args):
 # run setup with args
 sys.stdout = StringIO()
@@ -198,7 +201,6 @@
 'http://bitbucket.org/Merwok/sample-distutils2-project')]
 self.assertEqual(dist.metadata['Project-Url'], urls)
 
-
 self.assertEqual(dist.packages, ['one', 'two', 'three'])
 self.assertEqual(dist.py_modules, ['haven'])
 self.assertEqual(dist.package_data, {'cheese': 'data/templates/*'})
@@ -206,7 +208,8 @@
 [('bitmaps ', ['bm/b1.gif', 'bm/b2.gif']),
 ('config ', ['cfg/data.cfg']),
 ('/etc/init.d ', ['init-script'])])
- self.assertEqual(dist.package_dir['two'], 'src')
+
+ self.assertEqual(dist.package_dir, 'src')
 
 # Make sure we get the foo command loaded. We use a string comparison
 # instead of assertIsInstance because the class is not the same when
@@ -262,7 +265,9 @@
 os.mkdir('bin')
 self.write_file(os.path.join('bin', 'taunt'), '#')
 
- for pkg in ('one', 'src', 'src2'):
+ os.mkdir('src')
+ for pkg in ('one', 'two', 'three'):
+ pkg = os.path.join('src', pkg)
 os.mkdir(pkg)
 self.write_file(os.path.join(pkg, '__init__.py'), '#')
 
@@ -285,7 +290,9 @@
 os.mkdir('bin')
 self.write_file(os.path.join('bin', 'taunt'), '#')
 
- for pkg in ('one', 'src', 'src2'):
+ os.mkdir('src')
+ for pkg in ('one', 'two', 'three'):
+ pkg = os.path.join('src', pkg)
 os.mkdir(pkg)
 self.write_file(os.path.join(pkg, '__init__.py'), '#')
 
@@ -310,8 +317,10 @@
 self.write_file(os.path.join('scripts', 'find-coconuts'), '#')
 os.mkdir('bin')
 self.write_file(os.path.join('bin', 'taunt'), '#')
+ os.mkdir('src')
 
- for pkg in ('one', 'src', 'src2'):
+ for pkg in ('one', 'two', 'three'):
+ pkg = os.path.join('src', pkg)
 os.mkdir(pkg)
 self.write_file(os.path.join(pkg, '__init__.py'), '#')
 
--
Repository URL: http://hg.python.org/distutils2


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /