Skip to content

Commit d46a257

Browse files
authored
fix: differ between not defined and empty dependency list (#892)
1 parent 185ea74 commit d46a257

File tree

3 files changed

+38
-2
lines changed

3 files changed

+38
-2
lines changed

src/poetry/core/factory.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -377,12 +377,14 @@ def _configure_package_dependencies(
377377
from poetry.core.packages.dependency_group import MAIN_GROUP
378378
from poetry.core.packages.dependency_group import DependencyGroup
379379

380-
dependencies = project.get("dependencies", {})
380+
dependencies = project.get("dependencies")
381381
optional_dependencies = project.get("optional-dependencies", {})
382382
dynamic = project.get("dynamic", [])
383383

384384
package_extras: dict[NormalizedName, list[Dependency]]
385-
if dependencies or optional_dependencies:
385+
if dependencies is not None or optional_dependencies:
386+
dependencies = dependencies or {}
387+
386388
group = DependencyGroup(
387389
MAIN_GROUP,
388390
mixed_dynamic=(
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
[project]
2+
name = "my-package"
3+
version = "1.2.3"
4+
description = "Some description."
5+
requires-python = ">=3.6"
6+
license = "MIT"
7+
keywords = ["packaging", "dependency", "poetry"]
8+
authors = [
9+
{ name = "Sébastien Eustace", email = "[email protected]" }
10+
]
11+
maintainers = [
12+
{ name = "Sébastien Eustace", email = "[email protected]" }
13+
]
14+
15+
classifiers = [
16+
"Topic :: Software Development :: Build Tools",
17+
"Topic :: Software Development :: Libraries :: Python Modules"
18+
]
19+
20+
# Requirements
21+
dependencies = [
22+
]

tests/test_factory.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -313,6 +313,18 @@ def test_create_poetry(project: str) -> None:
313313
]
314314

315315

316+
def test_create_poetry_with_empty_dependencies() -> None:
317+
project = "sample_project_new_no_deps"
318+
poetry = Factory().create_poetry(fixtures_dir / project)
319+
320+
assert poetry.is_package_mode
321+
322+
package = poetry.package
323+
324+
assert "main" in package._dependency_groups
325+
assert package._dependency_groups[canonicalize_name("main")].dependencies == []
326+
327+
316328
@pytest.mark.parametrize(
317329
"project", ["sample_project_with_groups", "sample_project_with_groups_new"]
318330
)

0 commit comments

Comments
 (0)