Skip to content

Commit 9624d0d

Browse files
authored
Merge pull request #9676 from stefanor/re-parse-version
2 parents 80e0163 + ba4b7f1 commit 9624d0d

File tree

4 files changed

+9
-5
lines changed

4 files changed

+9
-5
lines changed

news/9e768673-6079-491e-bbe0-d1593952f1c7.trivial.rst

Whitespace-only changes.

src/pip/_internal/metadata/pkg_resources.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
from pip._vendor import pkg_resources
55
from pip._vendor.packaging.utils import canonicalize_name
66
from pip._vendor.packaging.version import _BaseVersion
7+
from pip._vendor.packaging.version import parse as parse_version
78

89
from pip._internal.utils import misc # TODO: Move definition here.
910
from pip._internal.utils.packaging import get_installer
@@ -45,7 +46,7 @@ def canonical_name(self):
4546
@property
4647
def version(self):
4748
# type: () -> _BaseVersion
48-
return self._dist.parsed_version
49+
return parse_version(self._dist.version)
4950

5051
@property
5152
def installer(self):

src/pip/_internal/resolution/resolvelib/candidates.py

+5-3
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from pip._vendor.packaging.specifiers import InvalidSpecifier, SpecifierSet
66
from pip._vendor.packaging.utils import canonicalize_name
77
from pip._vendor.packaging.version import Version, _BaseVersion
8+
from pip._vendor.packaging.version import parse as parse_version
89
from pip._vendor.pkg_resources import Distribution
910

1011
from pip._internal.exceptions import HashError, MetadataInconsistent
@@ -180,7 +181,7 @@ def name(self):
180181
def version(self):
181182
# type: () -> _BaseVersion
182183
if self._version is None:
183-
self._version = self.dist.parsed_version
184+
self._version = parse_version(self.dist.version)
184185
return self._version
185186

186187
def format_for_error(self):
@@ -206,7 +207,8 @@ def _check_metadata_consistency(self, dist):
206207
self._name,
207208
dist.project_name,
208209
)
209-
if self._version is not None and self._version != dist.parsed_version:
210+
parsed_version = parse_version(dist.version)
211+
if self._version is not None and self._version != parsed_version:
210212
raise MetadataInconsistent(
211213
self._ireq,
212214
"version",
@@ -387,7 +389,7 @@ def name(self):
387389
@property
388390
def version(self):
389391
# type: () -> _BaseVersion
390-
return self.dist.parsed_version
392+
return parse_version(self.dist.version)
391393

392394
@property
393395
def is_editable(self):

src/pip/_internal/resolution/resolvelib/resolver.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
from typing import TYPE_CHECKING, Dict, List, Optional, Set, Tuple
55

66
from pip._vendor.packaging.utils import canonicalize_name
7+
from pip._vendor.packaging.version import parse as parse_version
78
from pip._vendor.resolvelib import ResolutionImpossible
89
from pip._vendor.resolvelib import Resolver as RLResolver
910
from pip._vendor.resolvelib.resolvers import Result
@@ -139,7 +140,7 @@ def resolve(self, root_reqs, check_supported_wheels):
139140
elif self.factory.force_reinstall:
140141
# The --force-reinstall flag is set -- reinstall.
141142
ireq.should_reinstall = True
142-
elif installed_dist.parsed_version != candidate.version:
143+
elif parse_version(installed_dist.version) != candidate.version:
143144
# The installation is different in version -- reinstall.
144145
ireq.should_reinstall = True
145146
elif candidate.is_editable or dist_is_editable(installed_dist):

0 commit comments

Comments
 (0)