Colourising terminal output in Python scripts
Based on the source code for click.termui.style()
and the Wikipedia article ANSI escape code…
styles = {
"bold": 1,
"italic": 3,
"red": 31,
"green": 32,
"blue": 34,
"grey": 90,
}
def apply_style(s, style):
code = lambda i: f"\033[{i}m"
reset_code = code(0)
style_code = code(styles.get(style, 0))
return style_code + s + reset_code
bold = lambda s: apply_style(s, "bold")
blue = lambda s: apply_style(s, "blue")
green = lambda s: apply_style(s, "green")
print(bold(green("hello") + ","), blue("world") + "!")