1
1
Fork 0
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:
Matthew Iversen 2014-04-16 07:18:46 +10:00
parent 7bda9c3e6f
commit da867b1d20

View file

@ -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)