Source code for ansicolor.demos

from __future__ import absolute_import

import re
import sys

from ansicolor.ansicolor import Colors
from ansicolor.ansicolor import colorize
from ansicolor.ansicolor import colorize_v2
from ansicolor.ansicolor import colordiff
from ansicolor.ansicolor import get_highlighter
from ansicolor.ansicolor import highlight_string
from ansicolor.ansicolor import write_out


[docs]def demo_color(): width = 10 lst = [] lst.extend([[], ['>>> Without colors'], []]) line = [] line.append(colorize("Standard".ljust(width), None)) line.append(colorize("Bold".ljust(width), None, bold=True)) line.append(colorize("Reverse".ljust(width), None, reverse=True)) line.append(colorize("Bold & Rev".ljust(width), None, bold=True, reverse=True)) # noqa lst.append(line) lst.extend([[], ['>>> Using colors'], []]) for color in Colors.iter(): line = [] line.append(colorize(color.__name__.ljust(width), color)) line.append(colorize(color.__name__.ljust(width), color, bold=True)) # noqa line.append(colorize(color.__name__.ljust(width), color, reverse=True)) # noqa line.append(colorize(color.__name__.ljust(width), color, bold=True, reverse=True)) # noqa lst.append(line) lst.extend([[], ['>>> Using highlighting colors'], []]) for color in Colors.iter(): color = get_highlighter(color.id) line = [] line.append(colorize(color.__name__.ljust(width), color)) line.append(colorize(color.__name__.ljust(width), color, bold=True)) # noqa line.append(colorize(color.__name__.ljust(width), color, reverse=True)) # noqa line.append(colorize(color.__name__.ljust(width), color, bold=True, reverse=True)) # noqa lst.append(line) for line in lst: for item in line: write_out('%s ' % item) write_out("\n")
[docs]def demo_color_v2(): width = 10 lst = [] lst.extend([[], ['>>> Without colors'], []]) line = [] line.append(colorize_v2("Standard".ljust(width), None)) line.append(colorize_v2("Bold".ljust(width), None, bold=True)) line.append(colorize_v2("Underline".ljust(width), None, underline=True)) line.append(colorize_v2("Blink".ljust(width), None, blink=True)) line.append(colorize_v2("Reverse".ljust(width), None, reverse=True)) line.append(colorize_v2("Bold & Rev".ljust(width), None, bold=True, underline=True, reverse=True)) # noqa lst.append(line) lst.extend([[], ['>>> Using colors_v2'], []]) for color in Colors.iter(): line = [] line.append(colorize_v2(color.__name__.ljust(width), color)) line.append(colorize_v2(color.__name__.ljust(width), color, bold=True)) # noqa line.append(colorize_v2(color.__name__.ljust(width), color, underline=True)) # noqa line.append(colorize_v2(color.__name__.ljust(width), color, blink=True)) # noqa line.append(colorize_v2(color.__name__.ljust(width), color, reverse=True)) # noqa line.append(colorize_v2(color.__name__.ljust(width), color, bold=True, underline=True, reverse=True)) # noqa lst.append(line) lst.extend([[], ['>>> Using highlighting colors_v2'], []]) for color in Colors.iter(): color = get_highlighter(color.id) line = [] line.append(colorize_v2(color.__name__.ljust(width), color)) line.append(colorize_v2(color.__name__.ljust(width), color, bold=True)) # noqa line.append(colorize_v2(color.__name__.ljust(width), color, underline=True)) # noqa line.append(colorize_v2(color.__name__.ljust(width), color, blink=True)) # noqa line.append(colorize_v2(color.__name__.ljust(width), color, reverse=True)) # noqa line.append(colorize_v2(color.__name__.ljust(width), color, bold=True, underline=True, reverse=True)) # noqa lst.append(line) for line in lst: for item in line: write_out('%s ' % item) write_out("\n")
def _demo_highlight(reverse=False): rxs = [ '(b+).*\\1', '(c+).*\\1', '(d+).*\\1', '(e+).*\\1', ] s = """\ aaabbbcccdddeeefffeeedddcccbbbaaa fffeeedddcccbbbaaabbbcccdddeeefff """ def display(rxs, s): spanlists = [] colors = [] for i, rx in enumerate(rxs): spanlist = [] for m in re.finditer(rx, s): spanlist.append(m.span()) spanlists.append(spanlist) colors.append(get_highlighter(i)) if reverse: colors.reverse() s = highlight_string(s, *spanlists, colors=colors) for (i, rx) in enumerate(rxs): color = get_highlighter(i) color = colorize(color.__name__.ljust(10), color) write_out('Regex %s: %s %s\n' % (i, color, rx)) write_out(s) for i in range(0, len(rxs) + 1): write_out('\n') display(rxs[:i], s)
[docs]def demo_highlight(): _demo_highlight()
[docs]def demo_highlight_reverse(): _demo_highlight(reverse=True)
[docs]def demo_diff(): def display_diff(s, t): (s_fmt, t_fmt) = colordiff(s, t) write_out('>>> %s\n' % s_fmt) write_out(' %s\n\n' % t_fmt) display_diff('first last', 'First Last') display_diff('the the boss', 'the boss') display_diff('the coder', 'the first coder') display_diff('agcat', 'gac') display_diff('XMJYAUZ', 'MZJAWXU') display_diff('abcdfghjqz', 'abcdefgijkrxyz')
if __name__ == '__main__': try: action = sys.argv[1] except IndexError: print("Usage: %s [ --color | --highlight | --diff ]" % sys.argv[0]) sys.exit(1) if action == '--color': demo_color() demo_color_v2() elif action == '--highlight': demo_highlight() elif action == '--highlight-reverse': demo_highlight_reverse() elif action == '--diff': demo_diff()