/usr/lib/python2.7/site-packages/pip/utils
NameSizeModeActions
appdirs.py88110644editdlrm
appdirs.pyc86070644editdlrm
appdirs.pyo86070644editdlrm
build.py13120644editdlrm
build.pyc17190644editdlrm
build.pyo17190644editdlrm
deprecation.py22320644editdlrm
deprecation.pyc23170644editdlrm
deprecation.pyo23170644editdlrm
encoding.py9710644editdlrm
encoding.pyc12820644editdlrm
encoding.pyo12820644editdlrm
filesystem.py8990644editdlrm
filesystem.pyc7800644editdlrm
filesystem.pyo7800644editdlrm
glibc.py29390644editdlrm
glibc.pyc18260644editdlrm
glibc.pyo18260644editdlrm
hashes.py28660644editdlrm
hashes.pyc39610644editdlrm
hashes.pyo39610644editdlrm
logging.py33270644editdlrm
logging.pyc48420644editdlrm
logging.pyo48420644editdlrm
outdated.py59890644editdlrm
outdated.pyc56800644editdlrm
outdated.pyo56800644editdlrm
packaging.py20800644editdlrm
packaging.pyc24610644editdlrm
packaging.pyo24610644editdlrm
setuptools_build.py2780644editdlrm
setuptools_build.pyc3470644editdlrm
setuptools_build.pyo3470644editdlrm
ui.py115970644editdlrm
ui.pyc116830644editdlrm
ui.pyo116130644editdlrm
__init__.py271870644editdlrm
__init__.pyc277250644editdlrm
__init__.pyo276660644editdlrm
Edit: /usr/lib/python2.7/site-packages/pip/utils/logging.py (3327B)
from __future__ import absolute_import import contextlib import logging import logging.handlers import os try: import threading except ImportError: import dummy_threading as threading from pip.compat import WINDOWS from pip.utils import ensure_dir try: from pip._vendor import colorama # Lots of different errors can come from this, including SystemError and # ImportError. except Exception: colorama = None _log_state = threading.local() _log_state.indentation = 0 @contextlib.contextmanager def indent_log(num=2): """ A context manager which will cause the log output to be indented for any log messages emitted inside it. """ _log_state.indentation += num try: yield finally: _log_state.indentation -= num def get_indentation(): return getattr(_log_state, 'indentation', 0) class IndentingFormatter(logging.Formatter): def format(self, record): """ Calls the standard formatter, but will indent all of the log messages by our current indentation level. """ formatted = logging.Formatter.format(self, record) formatted = "".join([ (" " * get_indentation()) + line for line in formatted.splitlines(True) ]) return formatted def _color_wrap(*colors): def wrapped(inp): return "".join(list(colors) + [inp, colorama.Style.RESET_ALL]) return wrapped class ColorizedStreamHandler(logging.StreamHandler): # Don't build up a list of colors if we don't have colorama if colorama: COLORS = [ # This needs to be in order from highest logging level to lowest. (logging.ERROR, _color_wrap(colorama.Fore.RED)), (logging.WARNING, _color_wrap(colorama.Fore.YELLOW)), ] else: COLORS = [] def __init__(self, stream=None): logging.StreamHandler.__init__(self, stream) if WINDOWS and colorama: self.stream = colorama.AnsiToWin32(self.stream) def should_color(self): # Don't colorize things if we do not have colorama if not colorama: return False real_stream = ( self.stream if not isinstance(self.stream, colorama.AnsiToWin32) else self.stream.wrapped ) # If the stream is a tty we should color it if hasattr(real_stream, "isatty") and real_stream.isatty(): return True # If we have an ASNI term we should color it if os.environ.get("TERM") == "ANSI": return True # If anything else we should not color it return False def format(self, record): msg = logging.StreamHandler.format(self, record) if self.should_color(): for level, color in self.COLORS: if record.levelno >= level: msg = color(msg) break return msg class BetterRotatingFileHandler(logging.handlers.RotatingFileHandler): def _open(self): ensure_dir(os.path.dirname(self.baseFilename)) return logging.handlers.RotatingFileHandler._open(self) class MaxLevelFilter(logging.Filter): def __init__(self, level): self.level = level def filter(self, record): return record.levelno < self.level