colors.py 821 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. from __future__ import unicode_literals
  2. NAMES = [
  3. 'grey',
  4. 'red',
  5. 'green',
  6. 'yellow',
  7. 'blue',
  8. 'magenta',
  9. 'cyan',
  10. 'white'
  11. ]
  12. def get_pairs():
  13. for i, name in enumerate(NAMES):
  14. yield(name, str(30 + i))
  15. yield('intense_' + name, str(30 + i) + ';1')
  16. def ansi(code):
  17. return '\033[{0}m'.format(code)
  18. def ansi_color(code, s):
  19. return '{0}{1}{2}'.format(ansi(code), s, ansi(0))
  20. def make_color_fn(code):
  21. return lambda s: ansi_color(code, s)
  22. for (name, code) in get_pairs():
  23. globals()[name] = make_color_fn(code)
  24. def rainbow():
  25. cs = ['cyan', 'yellow', 'green', 'magenta', 'red', 'blue',
  26. 'intense_cyan', 'intense_yellow', 'intense_green',
  27. 'intense_magenta', 'intense_red', 'intense_blue']
  28. for c in cs:
  29. yield globals()[c]