boil/utils/ansi.py
ANSI_CODES = {
"black": "30",
"white": "37",
"blue": "34",
"green": "32",
"cyan": "36",
"red": "31",
"purple": "35",
"yellow": "33",
"magenta": "35",
"bold": "1",
"reset": "0",
}
ANSI_CODE_PATTERN = "\33[%sm"
def format(text, color=None, bold=False):
styles = []
if color:
styles.append(color)
if bold:
styles.append("bold")
start_code = "".join([ansi_code(style) for style in styles])
end_code = ansi_code("reset")
formatted = []
for line in text.split("\n"):
formatted.append("%s%s%s" % (start_code, line, end_code))
return "\n".join(formatted)
def ansi_code(style):
return ANSI_CODE_PATTERN % ANSI_CODES[style]