Skip to content

Commit a092b9e

Browse files
committed
fix export of marker unions with extras (requires poetry-core > 1.4.2)
1 parent 65172a0 commit a092b9e

2 files changed

Lines changed: 12 additions & 4 deletions

File tree

src/poetry_plugin_export/walker.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -273,10 +273,17 @@ def get_project_dependency_packages2(
273273
continue
274274

275275
marker = info.get_marker(groups)
276-
if not marker.validate({"extra": extras}):
277-
continue
276+
try:
277+
marker = marker.apply({"extra": extras}) # type: ignore[attr-defined]
278+
except AttributeError:
279+
if not marker.validate({"extra": extras}):
280+
continue
278281

279-
marker = marker.without_extras()
282+
marker = marker.without_extras()
283+
284+
else:
285+
if marker.is_empty():
286+
continue
280287

281288
if project_python_marker:
282289
marker = project_python_marker.intersect(marker)

tests/test_exporter_pylock_toml.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
from poetry.core.constraints.version import Version
1111
from poetry.core.packages.dependency_group import MAIN_GROUP
1212
from poetry.core.packages.package import Package
13+
from poetry.core.version.markers import BaseMarker
1314
from poetry.factory import Factory
1415
from poetry.packages import Locker as BaseLocker
1516
from poetry.repositories import Repository
@@ -974,7 +975,7 @@ def test_export_legacy_repo_dependencies(tmp_path: Path, poetry: Poetry) -> None
974975
{"main"},
975976
{"extra1"},
976977
'python_version >= "3.6" or extra == "extra1"',
977-
'python_version >= "3.6"',
978+
"*" if hasattr(BaseMarker, "apply") else 'python_version >= "3.6"',
978979
),
979980
({"main"}, {"extra1"}, 'python_version >= "3.6" and extra != "extra1"', ""),
980981
],

0 commit comments

Comments
 (0)