tools: Make Utility.console_log accept Unicode and byte strings as well

This commit is contained in:
Roland Dobai 2018-09-26 08:09:00 +02:00
parent fa784476ba
commit 9ea9d111c8

View file

@ -3,18 +3,18 @@ import sys
_COLOR_CODES = { _COLOR_CODES = {
"white": '\033[0m', "white": u'\033[0m',
"red": '\033[31m', "red": u'\033[31m',
"green": '\033[32m', "green": u'\033[32m',
"orange": '\033[33m', "orange": u'\033[33m',
"blue": '\033[34m', "blue": u'\033[34m',
"purple": '\033[35m', "purple": u'\033[35m',
"W": '\033[0m', "W": u'\033[0m',
"R": '\033[31m', "R": u'\033[31m',
"G": '\033[32m', "G": u'\033[32m',
"O": '\033[33m', "O": u'\033[33m',
"B": '\033[34m', "B": u'\033[34m',
"P": '\033[35m' "P": u'\033[35m'
} }
@ -29,8 +29,10 @@ def console_log(data, color="white", end="\n"):
if color not in _COLOR_CODES: if color not in _COLOR_CODES:
color = "white" color = "white"
color_codes = _COLOR_CODES[color] color_codes = _COLOR_CODES[color]
if type(data) is type(b''):
data = data.decode('utf-8', 'replace')
print(color_codes + data, end=end) print(color_codes + data, end=end)
if color not in ["white", "W"]: if color not in ["white", "W"]:
# reset color to white for later logs # reset color to white for later logs
print(_COLOR_CODES["white"] + "\r") print(_COLOR_CODES["white"] + u"\r")
sys.stdout.flush() sys.stdout.flush()