Use set to dedup package list in error message

This commit is contained in:
Tzu-ping Chung 2020-11-04 21:27:16 +08:00
parent 0512785fbe
commit bf55229fc6
2 changed files with 4 additions and 3 deletions

1
news/9101.bugfix.rst Normal file
View File

@ -0,0 +1 @@
New resolver: Show each requirement in the conflict error message only once to reduce cluttering.

View File

@ -406,19 +406,19 @@ class Factory(object):
# type: (Candidate) -> str
ireq = parent.get_install_requirement()
if not ireq or not ireq.comes_from:
return "{} {}".format(parent.name, parent.version)
return "{}=={}".format(parent.name, parent.version)
if isinstance(ireq.comes_from, InstallRequirement):
return str(ireq.comes_from.name)
return str(ireq.comes_from)
triggers = []
triggers = set()
for req, parent in e.causes:
if parent is None:
# This is a root requirement, so we can report it directly
trigger = req.format_for_error()
else:
trigger = describe_trigger(parent)
triggers.append(trigger)
triggers.add(trigger)
if triggers:
info = text_join(sorted(triggers))