Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGES/+prerelease-range-filters.bugfix
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Remote include and exclude ranges accept matching prerelease versions without deprecation warnings.
6 changes: 3 additions & 3 deletions pulp_python/app/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -626,12 +626,12 @@ def __init__(self, remote):
self._filter_excludes = self._parse_packages(self.remote.excludes)

def _parse_packages(self, packages):
"""Group requirements by project and whether they specify a version range."""
config = defaultdict(lambda: defaultdict(list))
for value in packages:
requirement = Requirement(value)
requirement.name = canonicalize_name(requirement.name)
if requirement.specifier:
requirement.specifier.prereleases = True
config["range"][requirement.name].append(requirement)
else:
config["full"][requirement.name].append(requirement)
Expand Down Expand Up @@ -666,15 +666,15 @@ def filter_release(self, project_name, version):
include_range = self._filter_includes.get("range", {})
if project_name in include_range:
for req in include_range[project_name]:
if version in req.specifier:
if req.specifier.contains(version, prereleases=True):
break
else:
return False

exclude_range = self._filter_excludes.get("range", {})
if project_name in exclude_range:
for req in exclude_range[project_name]:
if version in req.specifier:
if req.specifier.contains(version, prereleases=True):
return False

return True
Expand Down
Loading