Skip to content

Commit b78efa2

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

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

647647
def _parse_packages(self, packages):
648+
"""Group requirements by project and whether they specify a version range."""
648649
config = defaultdict(lambda: defaultdict(list))
649650
for value in packages:
650651
requirement = Requirement(value)
651652
requirement.name = canonicalize_name(requirement.name)
652653
if requirement.specifier:
653-
requirement.specifier.prereleases = True
654654
config["range"][requirement.name].append(requirement)
655655
else:
656656
config["full"][requirement.name].append(requirement)
@@ -685,15 +685,15 @@ def filter_release(self, project_name, version):
685685
include_range = self._filter_includes.get("range", {})
686686
if project_name in include_range:
687687
for req in include_range[project_name]:
688-
if version in req.specifier:
688+
if req.specifier.contains(version, prereleases=True):
689689
break
690690
else:
691691
return False
692692

693693
exclude_range = self._filter_excludes.get("range", {})
694694
if project_name in exclude_range:
695695
for req in exclude_range[project_name]:
696-
if version in req.specifier:
696+
if req.specifier.contains(version, prereleases=True):
697697
return False
698698

699699
return True

0 commit comments

Comments
 (0)