mirror of
https://github.com/pypa/pip
synced 2023-12-13 21:30:23 +01:00
Skip adding a duplicated consumer to pip's logger
This commit is contained in:
parent
7bda9c3e6f
commit
da867b1d20
1 changed files with 16 additions and 10 deletions
26
pip/log.py
26
pip/log.py
|
@ -82,16 +82,22 @@ class Logger(object):
|
|||
self.in_progress_hanging = False
|
||||
|
||||
def add_consumers(self, *consumers):
|
||||
if sys.platform.startswith("win"):
|
||||
for level, consumer in consumers:
|
||||
if hasattr(consumer, "write"):
|
||||
self.consumers.append(
|
||||
(level, colorama.AnsiToWin32(consumer)),
|
||||
)
|
||||
else:
|
||||
self.consumers.append((level, consumer))
|
||||
else:
|
||||
self.consumers.extend(consumers)
|
||||
for level, consumer in consumers:
|
||||
# Try to check for duplicate consumers
|
||||
consumer_exists = False
|
||||
for chk_level, chk_consumer in self.consumers:
|
||||
# Account for coloroma wrapped streams
|
||||
if hasattr(chk_consumer, 'wrapped'):
|
||||
chk_consumer = chk_consumer.wrapped
|
||||
if (level, consumer) == (chk_level, chk_consumer):
|
||||
consumer_exists = True
|
||||
|
||||
# Colorize consumer for Windows
|
||||
if sys.platform.startswith('win') and hasattr(consumer, 'write'):
|
||||
consumer = colorama.AnsiToWin32(consumer)
|
||||
|
||||
if not consumer_exists:
|
||||
self.consumers.append((level, consumer))
|
||||
|
||||
def debug(self, msg, *args, **kw):
|
||||
self.log(self.DEBUG, msg, *args, **kw)
|
||||
|
|
Loading…
Reference in a new issue