codekingpro/portable-devtools
114k
1"""2 pygments.console3 ~~~~~~~~~~~~~~~~4 5 Format colored console output.6 7 :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.8 :license: BSD, see LICENSE for details.9"""10 11esc = "\x1b["12 13codes = {}14codes[""] = ""15codes["reset"] = esc + "39;49;00m"16 17codes["bold"] = esc + "01m"18codes["faint"] = esc + "02m"19codes["standout"] = esc + "03m"20codes["underline"] = esc + "04m"21codes["blink"] = esc + "05m"22codes["overline"] = esc + "06m"23 24dark_colors = ["black", "red", "green", "yellow", "blue",25 "magenta", "cyan", "gray"]26light_colors = ["brightblack", "brightred", "brightgreen", "brightyellow", "brightblue",27 "brightmagenta", "brightcyan", "white"]28 29x = 3030for dark, light in zip(dark_colors, light_colors):31 codes[dark] = esc + "%im" % x32 codes[light] = esc + "%im" % (60 + x)33 x += 134 35del dark, light, x36 37codes["white"] = codes["bold"]38 39 40def reset_color():41 return codes["reset"]42 43 44def colorize(color_key, text):45 return codes[color_key] + text + codes["reset"]46 47 48def ansiformat(attr, text):49 """50 Format ``text`` with a color and/or some attributes::51 52 color normal color53 *color* bold color54 _color_ underlined color55 +color+ blinking color56 """57 result = []58 if attr[:1] == attr[-1:] == '+':59 result.append(codes['blink'])60 attr = attr[1:-1]61 if attr[:1] == attr[-1:] == '*':62 result.append(codes['bold'])63 attr = attr[1:-1]64 if attr[:1] == attr[-1:] == '_':65 result.append(codes['underline'])66 attr = attr[1:-1]67 result.append(codes[attr])68 result.append(text)69 result.append(codes['reset'])70 return ''.join(result)71 