50 lines
1013 B
Python
50 lines
1013 B
Python
|
'''
|
||
|
This module generates ANSI character codes to printing colors to terminals.
|
||
|
See: http://en.wikipedia.org/wiki/ANSI_escape_code
|
||
|
'''
|
||
|
|
||
|
CSI = '\033['
|
||
|
|
||
|
def code_to_chars(code):
|
||
|
return CSI + str(code) + 'm'
|
||
|
|
||
|
class AnsiCodes(object):
|
||
|
def __init__(self, codes):
|
||
|
for name in dir(codes):
|
||
|
if not name.startswith('_'):
|
||
|
value = getattr(codes, name)
|
||
|
setattr(self, name, code_to_chars(value))
|
||
|
|
||
|
class AnsiFore:
|
||
|
BLACK = 30
|
||
|
RED = 31
|
||
|
GREEN = 32
|
||
|
YELLOW = 33
|
||
|
BLUE = 34
|
||
|
MAGENTA = 35
|
||
|
CYAN = 36
|
||
|
WHITE = 37
|
||
|
RESET = 39
|
||
|
|
||
|
class AnsiBack:
|
||
|
BLACK = 40
|
||
|
RED = 41
|
||
|
GREEN = 42
|
||
|
YELLOW = 43
|
||
|
BLUE = 44
|
||
|
MAGENTA = 45
|
||
|
CYAN = 46
|
||
|
WHITE = 47
|
||
|
RESET = 49
|
||
|
|
||
|
class AnsiStyle:
|
||
|
BRIGHT = 1
|
||
|
DIM = 2
|
||
|
NORMAL = 22
|
||
|
RESET_ALL = 0
|
||
|
|
||
|
Fore = AnsiCodes( AnsiFore )
|
||
|
Back = AnsiCodes( AnsiBack )
|
||
|
Style = AnsiCodes( AnsiStyle )
|
||
|
|