Skip to content

Commit 721d538

Browse files
notatallshawpatchback[bot]
authored andcommitted
Match prereleases in remote ranges without mutating specifiers
(cherry picked from commit e28456f)
1 parent ef7f08f commit 721d538

2 files changed

Lines changed: 4 additions & 3 deletions

File tree

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Remote include and exclude ranges accept matching prerelease versions without deprecation warnings.

‎pulp_python/app/utils.py‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -666,12 +666,12 @@ def __init__(self, remote):
666666
self._filter_excludes = self._parse_packages(self.remote.excludes)
667667

668668
def _parse_packages(self, packages):
669+
"""Group requirements by project and whether they specify a version range."""
669670
config = defaultdict(lambda: defaultdict(list))
670671
for value in packages:
671672
requirement = Requirement(value)
672673
requirement.name = canonicalize_name(requirement.name)
673674
if requirement.specifier:
674-
requirement.specifier.prereleases = True
675675
config["range"][requirement.name].append(requirement)
676676
else:
677677
config["full"][requirement.name].append(requirement)
@@ -706,15 +706,15 @@ def filter_release(self, project_name, version):
706706
include_range = self._filter_includes.get("range", {})
707707
if project_name in include_range:
708708
for req in include_range[project_name]:
709-
if version in req.specifier:
709+
if req.specifier.contains(version, prereleases=True):
710710
break
711711
else:
712712
return False
713713

714714
exclude_range = self._filter_excludes.get("range", {})
715715
if project_name in exclude_range:
716716
for req in exclude_range[project_name]:
717-
if version in req.specifier:
717+
if req.specifier.contains(version, prereleases=True):
718718
return False
719719

720720
return True

0 commit comments

Comments
 (0)