summaryrefslogtreecommitdiff
path: root/src/pip
diff options
context:
space:
mode:
authorJuan Luis Cano Rodríguez <hello@juanlu.space>2023-03-26 15:39:12 +0200
committerGitHub <noreply@github.com>2023-03-26 14:39:12 +0100
commit973113154bd8cca7fa3ca296f3249e6c3742b801 (patch)
tree2c8c799e119b57ed481f524478ca17f18a511468 /src/pip
parent8271fdb349bb519c1b8fe1e02550fd41f5208b70 (diff)
downloadpip-973113154bd8cca7fa3ca296f3249e6c3742b801.tar.gz
Present found conflicts when discarding some criterion (#10937)
Diffstat (limited to 'src/pip')
-rw-r--r--src/pip/_internal/resolution/resolvelib/reporter.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/pip/_internal/resolution/resolvelib/reporter.py b/src/pip/_internal/resolution/resolvelib/reporter.py
index a95a8e4cf..3c724238a 100644
--- a/src/pip/_internal/resolution/resolvelib/reporter.py
+++ b/src/pip/_internal/resolution/resolvelib/reporter.py
@@ -42,6 +42,18 @@ class PipReporter(BaseReporter):
message = self._messages_at_reject_count[count]
logger.info("INFO: %s", message.format(package_name=candidate.name))
+ msg = "Will try a different candidate, due to conflict:"
+ for req_info in criterion.information:
+ req, parent = req_info.requirement, req_info.parent
+ # Inspired by Factory.get_installation_error
+ msg += "\n "
+ if parent:
+ msg += f"{parent.name} {parent.version} depends on "
+ else:
+ msg += "The user requested "
+ msg += req.format_for_error()
+ logger.debug(msg)
+
class PipDebuggingReporter(BaseReporter):
"""A reporter that does an info log for every event it sees."""