Fixed #7115: using paths instead of dotted name for extensions works too in distutils.command.build_ext

This commit is contained in:
Tarek Ziadé 2009-10-12 22:38:34 +00:00
parent dff2028a1b
commit ff0d8a36be
3 changed files with 15 additions and 0 deletions

View File

@ -628,6 +628,8 @@ class build_ext (Command):
The file is located in `build_lib` or directly in the package The file is located in `build_lib` or directly in the package
(inplace option). (inplace option).
""" """
if os.sep in ext_name:
ext_name = ext_name.replace(os.sep, '.')
fullname = self.get_ext_fullname(ext_name) fullname = self.get_ext_fullname(ext_name)
modpath = fullname.split('.') modpath = fullname.split('.')
filename = self.get_ext_filename(ext_name) filename = self.get_ext_filename(ext_name)

View File

@ -363,6 +363,16 @@ class BuildExtTestCase(support.TempdirManager,
path = cmd.get_ext_fullpath('lxml.etree') path = cmd.get_ext_fullpath('lxml.etree')
self.assertEquals(wanted, path) self.assertEquals(wanted, path)
def test_build_ext_path_with_os_sep(self):
dist = Distribution({'name': 'UpdateManager'})
cmd = build_ext(dist)
cmd.ensure_finalized()
ext = sysconfig.get_config_var("SO")
ext_name = os.path.join('UpdateManager', 'fdsend')
ext_path = cmd.get_ext_fullpath(ext_name)
wanted = os.path.join(cmd.build_lib, 'UpdateManager', 'fdsend' + ext)
self.assertEquals(ext_path, wanted)
def test_suite(): def test_suite():
if not sysconfig.python_build: if not sysconfig.python_build:
if test_support.verbose: if test_support.verbose:

View File

@ -18,6 +18,9 @@ Core and Builtins
Library Library
------- -------
- Issue #7115: Fixed the extension module builds that is failing when using
paths in the extension name instead of dotted names.
- Issue #7068: Fixed the partial renaming that occured in r72594. - Issue #7068: Fixed the partial renaming that occured in r72594.
- Issue #7064: Fixed the incompatibility with Setuptools in distutils - Issue #7064: Fixed the incompatibility with Setuptools in distutils