summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--setuptools/config/pyprojecttoml.py15
1 files changed, 10 insertions, 5 deletions
diff --git a/setuptools/config/pyprojecttoml.py b/setuptools/config/pyprojecttoml.py
index 9ff0c87f..d995f0bc 100644
--- a/setuptools/config/pyprojecttoml.py
+++ b/setuptools/config/pyprojecttoml.py
@@ -234,8 +234,8 @@ class _ConfigExpander:
# A distribution object is required for discovering the correct package_dir
dist = self._ensure_dist()
-
- with _EnsurePackagesDiscovered(dist, self.setuptools_cfg) as ensure_discovered:
+ ctx = _EnsurePackagesDiscovered(dist, self.project_cfg, self.setuptools_cfg)
+ with ctx as ensure_discovered:
package_dir = ensure_discovered.package_dir
self._expand_data_files()
self._expand_cmdclass(package_dir)
@@ -428,8 +428,11 @@ def _ignore_errors(ignore_option_errors: bool):
class _EnsurePackagesDiscovered(_expand.EnsurePackagesDiscovered):
- def __init__(self, distribution: "Distribution", setuptools_cfg: dict):
+ def __init__(
+ self, distribution: "Distribution", project_cfg: dict, setuptools_cfg: dict
+ ):
super().__init__(distribution)
+ self._project_cfg = project_cfg
self._setuptools_cfg = setuptools_cfg
def __enter__(self):
@@ -443,8 +446,10 @@ class _EnsurePackagesDiscovered(_expand.EnsurePackagesDiscovered):
dist.set_defaults._ignore_ext_modules() # pyproject.toml-specific behaviour
- # Set `py_modules` and `packages` in dist to short-circuit auto-discovery,
- # but avoid overwriting empty lists purposefully set by users.
+ # Set `name`, `py_modules` and `packages` in dist to short-circuit
+ # auto-discovery, but avoid overwriting empty lists purposefully set by users.
+ if dist.metadata.name is None:
+ dist.metadata.name = self._project_cfg.get("name")
if dist.py_modules is None:
dist.py_modules = cfg.get("py-modules")
if dist.packages is None: