Skip to content

Commit 9e2a8bd

Browse files
fix: workaround unsupported metadata version 2.4 in pkginfo (#9881)
Co-authored-by: Randy Döring <30527984+radoering@users.noreply.github.com>
1 parent cdfd955 commit 9e2a8bd

3 files changed

Lines changed: 9 additions & 3 deletions

File tree

src/poetry/inspection/info.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,10 @@ def _from_distribution(
265265
266266
:param dist: The distribution instance to parse information from.
267267
"""
268-
if dist.metadata_version not in pkginfo.distribution.HEADER_ATTRS:
268+
# The current pkginfo version (1.11.2) does not support 2.4.
269+
# The fields we are interested in can be parsed nevertheless.
270+
supported_metadata_versions = {*pkginfo.distribution.HEADER_ATTRS.keys(), "2.4"}
271+
if dist.metadata_version not in supported_metadata_versions:
269272
# This check can be replaced once upstream implements strict parsing
270273
# https://bugs.launchpad.net/pkginfo/+bug/2058697
271274
raise ValueError(f"Unknown metadata version: {dist.metadata_version}")
Binary file not shown.

tests/inspection/test_info.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -202,10 +202,13 @@ def test_info_from_wheel(demo_wheel: Path) -> None:
202202
assert info._source_url == demo_wheel.resolve().as_posix()
203203

204204

205-
def test_info_from_wheel_metadata_version_23(fixture_dir: FixtureDirGetter) -> None:
205+
@pytest.mark.parametrize("version", ["23", "24"])
206+
def test_info_from_wheel_metadata_versions(
207+
version: str, fixture_dir: FixtureDirGetter
208+
) -> None:
206209
path = (
207210
fixture_dir("distributions")
208-
/ "demo_metadata_version_23-0.1.0-py2.py3-none-any.whl"
211+
/ f"demo_metadata_version_{version}-0.1.0-py2.py3-none-any.whl"
209212
)
210213
info = PackageInfo.from_wheel(path)
211214
demo_check_info(info)

0 commit comments

Comments
 (0)