Skip to content

Commit effd18e

Browse files
authored
Merge pull request #13513 from sepehr-rs/fix-version-metadata-error
Handle malformed version metadata error and skip the package
2 parents 1e3c66e + 47e9253 commit effd18e

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

news/13443.bugfix.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
Handle malformed ``Version`` metadata entries and
2+
show a sensible error message instead of crashing.

src/pip/_internal/metadata/importlib/_dists.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
from pip._internal.utils.wheel import parse_wheel, read_wheel_metadata_file
2929

3030
from ._compat import (
31+
BadMetadata,
3132
BasePath,
3233
get_dist_canonical_name,
3334
parse_name_and_version_from_info_directory,
@@ -165,9 +166,14 @@ def canonical_name(self) -> NormalizedName:
165166

166167
@property
167168
def version(self) -> Version:
168-
if version := parse_name_and_version_from_info_directory(self._dist)[1]:
169+
try:
170+
version = (
171+
parse_name_and_version_from_info_directory(self._dist)[1]
172+
or self._dist.version
173+
)
169174
return parse_version(version)
170-
return parse_version(self._dist.version)
175+
except TypeError:
176+
raise BadMetadata(self._dist, reason="invalid metadata entry `version`")
171177

172178
@property
173179
def raw_version(self) -> str:

0 commit comments

Comments
 (0)