1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- # -*- coding: utf-8 -*-
- """
- pygments.console
- ~~~~~~~~~~~~~~~~
- Format colored console output.
- :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
- :license: BSD, see LICENSE for details.
- """
- esc = "\x1b["
- codes = {}
- codes[""] = ""
- codes["reset"] = esc + "39;49;00m"
- codes["bold"] = esc + "01m"
- codes["faint"] = esc + "02m"
- codes["standout"] = esc + "03m"
- codes["underline"] = esc + "04m"
- codes["blink"] = esc + "05m"
- codes["overline"] = esc + "06m"
- dark_colors = ["black", "red", "green", "yellow", "blue",
- "magenta", "cyan", "gray"]
- light_colors = ["brightblack", "brightred", "brightgreen", "brightyellow", "brightblue",
- "brightmagenta", "brightcyan", "white"]
- x = 30
- for d, l in zip(dark_colors, light_colors):
- codes[d] = esc + "%im" % x
- codes[l] = esc + "%im" % (60 + x)
- x += 1
- del d, l, x
- codes["white"] = codes["bold"]
- def reset_color():
- return codes["reset"]
- def colorize(color_key, text):
- return codes[color_key] + text + codes["reset"]
- def ansiformat(attr, text):
- """
- Format ``text`` with a color and/or some attributes::
- color normal color
- *color* bold color
- _color_ underlined color
- +color+ blinking color
- """
- result = []
- if attr[:1] == attr[-1:] == '+':
- result.append(codes['blink'])
- attr = attr[1:-1]
- if attr[:1] == attr[-1:] == '*':
- result.append(codes['bold'])
- attr = attr[1:-1]
- if attr[:1] == attr[-1:] == '_':
- result.append(codes['underline'])
- attr = attr[1:-1]
- result.append(codes[attr])
- result.append(text)
- result.append(codes['reset'])
- return ''.join(result)
|