1
0
forked from VimPlug/jedi

Merge master into the away branch. The merge conflict that was resolved was to get 'debug.py' working again.

This commit is contained in:
Dave Halter
2016-06-07 08:55:27 +02:00
6 changed files with 51 additions and 8 deletions

View File

@@ -3,18 +3,41 @@ import inspect
import os
import time
def _lazy_colorama_init():
"""
Lazily init colorama if necessary, not to screw up stdout is debug not
enabled.
This version of the function does nothing.
"""
pass
_inited=False
try:
if os.name == 'nt':
# does not work on Windows, as pyreadline and colorama interfere
# Does not work on Windows, as pyreadline and colorama interfere
raise ImportError
else:
# Use colorama for nicer console output.
from colorama import Fore, init
from colorama import initialise
# pytest resets the stream at the end - causes troubles. Since after
# every output the stream is reset automatically we don't need this.
initialise.atexit_done = True
init()
def _lazy_colorama_init():
"""
Lazily init colorama if necessary, not to screw up stdout is
debug not enabled.
This version of the function does init colorama.
"""
global _inited
if not _inited:
# pytest resets the stream at the end - causes troubles. Since
# after every output the stream is reset automatically we don't
# need this.
initialise.atexit_done = True
init()
_inited = True
except ImportError:
class Fore(object):
RED = ''
@@ -72,6 +95,7 @@ def dbg(message, *args, **kwargs):
mod = inspect.getmodule(frm[0])
if not (mod.__name__ in ignored_modules):
i = ' ' * _debug_indent
_lazy_colorama_init()
debug_function(color, i + 'dbg: ' + message % tuple(u(repr(a)) for a in args))
@@ -95,6 +119,7 @@ def print_to_stdout(color, str_out):
:param str color: A string that is an attribute of ``colorama.Fore``.
"""
col = getattr(Fore, color)
_lazy_colorama_init()
if not is_py3:
str_out = str_out.encode(encoding, 'replace')
print(col + str_out + Fore.RESET)