Skip to content

Commit 10be498

Browse files
notatallshawgerrod3
authored andcommitted
Match prereleases in remote ranges without mutating specifiers
(cherry picked from commit e28456f)
1 parent 08af2ca commit 10be498

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
@@ -626,12 +626,12 @@ def __init__(self, remote):
626626
self._filter_excludes = self._parse_packages(self.remote.excludes)
627627

628628
def _parse_packages(self, packages):
629+
"""Group requirements by project and whether they specify a version range."""
629630
config = defaultdict(lambda: defaultdict(list))
630631
for value in packages:
631632
requirement = Requirement(value)
632633
requirement.name = canonicalize_name(requirement.name)
633634
if requirement.specifier:
634-
requirement.specifier.prereleases = True
635635
config["range"][requirement.name].append(requirement)
636636
else:
637637
config["full"][requirement.name].append(requirement)
@@ -666,15 +666,15 @@ def filter_release(self, project_name, version):
666666
include_range = self._filter_includes.get("range", {})
667667
if project_name in include_range:
668668
for req in include_range[project_name]:
669-
if version in req.specifier:
669+
if req.specifier.contains(version, prereleases=True):
670670
break
671671
else:
672672
return False
673673

674674
exclude_range = self._filter_excludes.get("range", {})
675675
if project_name in exclude_range:
676676
for req in exclude_range[project_name]:
677-
if version in req.specifier:
677+
if req.specifier.contains(version, prereleases=True):
678678
return False
679679

680680
return True

0 commit comments

Comments
 (0)