| 123456789101112131415161718192021222324252627282930313233343536373839404142 | from __future__ import unicode_literalsNAMES = [    'grey',    'red',    'green',    'yellow',    'blue',    'magenta',    'cyan',    'white']def get_pairs():    for i, name in enumerate(NAMES):        yield(name, str(30 + i))        yield('intense_' + name, str(30 + i) + ';1')def ansi(code):    return '\033[{0}m'.format(code)def ansi_color(code, s):    return '{0}{1}{2}'.format(ansi(code), s, ansi(0))def make_color_fn(code):    return lambda s: ansi_color(code, s)for (name, code) in get_pairs():    globals()[name] = make_color_fn(code)def rainbow():    cs = ['cyan', 'yellow', 'green', 'magenta', 'red', 'blue',          'intense_cyan', 'intense_yellow', 'intense_green',          'intense_magenta', 'intense_red', 'intense_blue']    for c in cs:        yield globals()[c]
 |