diff options
| -rw-r--r-- | changelog.d/3497.misc.rst | 1 | ||||
| -rw-r--r-- | setuptools/command/editable_wheel.py | 3 | ||||
| -rw-r--r-- | setuptools/tests/test_editable_install.py | 7 |
3 files changed, 10 insertions, 1 deletions
diff --git a/changelog.d/3497.misc.rst b/changelog.d/3497.misc.rst new file mode 100644 index 00000000..09c8ecc1 --- /dev/null +++ b/changelog.d/3497.misc.rst @@ -0,0 +1 @@ +Fix ``editable_wheel`` for legacy namespaces. diff --git a/setuptools/command/editable_wheel.py b/setuptools/command/editable_wheel.py index a44d24be..eb79608b 100644 --- a/setuptools/command/editable_wheel.py +++ b/setuptools/command/editable_wheel.py @@ -168,7 +168,7 @@ class editable_wheel(Command): if not dist.namespace_packages: return - src_root = Path(self.project_dir, self.pakcage_dir.get("", ".")).resolve() + src_root = Path(self.project_dir, self.package_dir.get("", ".")).resolve() installer = _NamespaceInstaller(dist, installation_dir, pth_prefix, src_root) installer.install_namespaces() @@ -672,6 +672,7 @@ class _NamespaceInstaller(namespaces.Installer): self.installation_dir = installation_dir self.editable_name = editable_name self.outputs = [] + self.dry_run = False def _get_target(self): """Installation target.""" diff --git a/setuptools/tests/test_editable_install.py b/setuptools/tests/test_editable_install.py index 57e31eda..40a35f65 100644 --- a/setuptools/tests/test_editable_install.py +++ b/setuptools/tests/test_editable_install.py @@ -173,8 +173,15 @@ class TestLegacyNamespaces: and the other installed in editable mode should leave the namespace intact and both packages reachable by import. """ + build_system = """\ + [build-system] + requires = ["setuptools"] + build-backend = "setuptools.build_meta" + """ pkg_A = namespaces.build_namespace_package(tmp_path, 'myns.pkgA') pkg_B = namespaces.build_namespace_package(tmp_path, 'myns.pkgB') + (pkg_A / "pyproject.toml").write_text(build_system, encoding="utf-8") + (pkg_B / "pyproject.toml").write_text(build_system, encoding="utf-8") # use pip to install to the target directory opts = editable_opts[:] opts.append("--no-build-isolation") # force current version of setuptools |
