Skip to content

Commit b5fb31a

Browse files
notatallshawgerrod3
authored andcommitted
Match prereleases in remote ranges without mutating specifiers
(cherry picked from commit e28456f)
1 parent 67a5936 commit b5fb31a

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

427427
def _parse_packages(self, packages):
428+
"""Group requirements by project and whether they specify a version range."""
428429
config = defaultdict(lambda: defaultdict(list))
429430
for value in packages:
430431
requirement = Requirement(value)
431432
requirement.name = canonicalize_name(requirement.name)
432433
if requirement.specifier:
433-
requirement.specifier.prereleases = True
434434
config["range"][requirement.name].append(requirement)
435435
else:
436436
config["full"][requirement.name].append(requirement)
@@ -465,15 +465,15 @@ def filter_release(self, project_name, version):
465465
include_range = self._filter_includes.get("range", {})
466466
if project_name in include_range:
467467
for req in include_range[project_name]:
468-
if version in req.specifier:
468+
if req.specifier.contains(version, prereleases=True):
469469
break
470470
else:
471471
return False
472472

473473
exclude_range = self._filter_excludes.get("range", {})
474474
if project_name in exclude_range:
475475
for req in exclude_range[project_name]:
476-
if version in req.specifier:
476+
if req.specifier.contains(version, prereleases=True):
477477
return False
478478

479479
return True

0 commit comments

Comments
 (0)