From ff0d8a36befda1fbecf11d76921f9e34632c181b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tarek=20Ziad=C3=A9?= Date: Mon, 12 Oct 2009 22:38:34 +0000 Subject: [PATCH] Fixed #7115: using paths instead of dotted name for extensions works too in distutils.command.build_ext --- Lib/distutils/command/build_ext.py | 2 ++ Lib/distutils/tests/test_build_ext.py | 10 ++++++++++ Misc/NEWS | 3 +++ 3 files changed, 15 insertions(+) diff --git a/Lib/distutils/command/build_ext.py b/Lib/distutils/command/build_ext.py index da9cbfd5747..abc15841801 100644 --- a/Lib/distutils/command/build_ext.py +++ b/Lib/distutils/command/build_ext.py @@ -628,6 +628,8 @@ class build_ext (Command): The file is located in `build_lib` or directly in the package (inplace option). """ + if os.sep in ext_name: + ext_name = ext_name.replace(os.sep, '.') fullname = self.get_ext_fullname(ext_name) modpath = fullname.split('.') filename = self.get_ext_filename(ext_name) diff --git a/Lib/distutils/tests/test_build_ext.py b/Lib/distutils/tests/test_build_ext.py index 00733a46a7d..5dffe2ca03f 100644 --- a/Lib/distutils/tests/test_build_ext.py +++ b/Lib/distutils/tests/test_build_ext.py @@ -363,6 +363,16 @@ class BuildExtTestCase(support.TempdirManager, path = cmd.get_ext_fullpath('lxml.etree') 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(): if not sysconfig.python_build: if test_support.verbose: diff --git a/Misc/NEWS b/Misc/NEWS index b4a2c50a6fd..26cbbb4143f 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -18,6 +18,9 @@ Core and Builtins 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 #7064: Fixed the incompatibility with Setuptools in distutils