# Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file. ''' This module generates ANSI character codes to printing colors to terminals. See: http://en.wikipedia.org/wiki/ANSI_escape_code ''' CSI = '\033[' OSC = '\033]' BEL = '\007' def code_to_chars(code): return CSI + str(code) + 'm' def set_title(title): return OSC + '2;' + title + BEL def clear_screen(mode=2): return CSI + str(mode) + 'J' def clear_line(mode=2): return CSI + str(mode) + 'K' class AnsiCodes(object): def __init__(self): # the subclasses declare class attributes which are numbers. # Upon instantiation we define instance attributes, which are the same # as the class attributes but wrapped with the ANSI escape sequence for name in dir(self): if not name.startswith('_'): value = getattr(self, name) setattr(self, name, code_to_chars(value)) class AnsiCursor(object): def UP(self, n=1): return CSI + str(n) + 'A' def DOWN(self, n=1): return CSI + str(n) + 'B' def FORWARD(self, n=1): return CSI + str(n) + 'C' def BACK(self, n=1): return CSI + str(n) + 'D' def POS(self, x=1, y=1): return CSI + str(y) + ';' + str(x) + 'H' class AnsiFore(AnsiCodes): BLACK = 30 RED = 31 GREEN = 32 YELLOW = 33 BLUE = 34 MAGENTA = 35 CYAN = 36 WHITE = 37 RESET = 39 # These are fairly well supported, but not part of the standard. LIGHTBLACK_EX = 90 LIGHTRED_EX = 91 LIGHTGREEN_EX = 92 LIGHTYELLOW_EX = 93 LIGHTBLUE_EX = 94 LIGHTMAGENTA_EX = 95 LIGHTCYAN_EX = 96 LIGHTWHITE_EX = 97 class AnsiBack(AnsiCodes): BLACK = 40 RED = 41 GREEN = 42 YELLOW = 43 BLUE = 44 MAGENTA = 45 CYAN = 46 WHITE = 47 RESET = 49 # These are fairly well supported, but not part of the standard. LIGHTBLACK_EX = 100 LIGHTRED_EX = 101 LIGHTGREEN_EX = 102 LIGHTYELLOW_EX = 103 LIGHTBLUE_EX = 104 LIGHTMAGENTA_EX = 105 LIGHTCYAN_EX = 106 LIGHTWHITE_EX = 107 class AnsiStyle(AnsiCodes): BRIGHT = 1 DIM = 2 NORMAL = 22 RESET_ALL = 0 Fore = AnsiFore() Back = AnsiBack() Style = AnsiStyle() Cursor = AnsiCursor()
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
__init__.py | File | 240 B | 0644 |
|
__init__.pyc | File | 483 B | 0644 |
|
__init__.pyo | File | 483 B | 0644 |
|
ansi.py | File | 2.46 KB | 0644 |
|
ansi.pyc | File | 4.33 KB | 0644 |
|
ansi.pyo | File | 4.33 KB | 0644 |
|
ansitowin32.py | File | 9.44 KB | 0644 |
|
ansitowin32.pyc | File | 9.13 KB | 0644 |
|
ansitowin32.pyo | File | 9.13 KB | 0644 |
|
initialise.py | File | 1.87 KB | 0644 |
|
initialise.pyc | File | 2.3 KB | 0644 |
|
initialise.pyo | File | 2.3 KB | 0644 |
|
win32.py | File | 5.24 KB | 0644 |
|
win32.pyc | File | 4.74 KB | 0644 |
|
win32.pyo | File | 4.74 KB | 0644 |
|
winterm.py | File | 6.14 KB | 0644 |
|
winterm.pyc | File | 5.91 KB | 0644 |
|
winterm.pyo | File | 5.91 KB | 0644 |
|