# 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'
+CSI = "\033["
+OSC = "\033]"
+BEL = "\007"
def code_to_chars(code):
- return CSI + str(code) + 'm'
+ return CSI + str(code) + "m"
+
def set_title(title):
- return OSC + '2;' + title + BEL
+ return OSC + "2;" + title + BEL
+
def clear_screen(mode=2):
- return CSI + str(mode) + 'J'
+ return CSI + str(mode) + "J"
+
def clear_line(mode=2):
- return CSI + str(mode) + 'K'
+ return CSI + str(mode) + "K"
class AnsiCodes(object):
# 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('_'):
+ 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'
+ return CSI + str(n) + "A"
+
def DOWN(self, n=1):
- return CSI + str(n) + 'B'
+ return CSI + str(n) + "B"
+
def FORWARD(self, n=1):
- return CSI + str(n) + 'C'
+ return CSI + str(n) + "C"
+
def BACK(self, n=1):
- return CSI + str(n) + 'D'
+ return CSI + str(n) + "D"
+
def POS(self, x=1, y=1):
- return CSI + str(y) + ';' + str(x) + 'H'
+ 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
+ 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
+ LIGHTBLACK_EX = 90
+ LIGHTRED_EX = 91
+ LIGHTGREEN_EX = 92
+ LIGHTYELLOW_EX = 93
+ LIGHTBLUE_EX = 94
LIGHTMAGENTA_EX = 95
- LIGHTCYAN_EX = 96
- LIGHTWHITE_EX = 97
+ 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
+ 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
+ LIGHTBLACK_EX = 100
+ LIGHTRED_EX = 101
+ LIGHTGREEN_EX = 102
+ LIGHTYELLOW_EX = 103
+ LIGHTBLUE_EX = 104
LIGHTMAGENTA_EX = 105
- LIGHTCYAN_EX = 106
- LIGHTWHITE_EX = 107
+ LIGHTCYAN_EX = 106
+ LIGHTWHITE_EX = 107
class AnsiStyle(AnsiCodes):
- BRIGHT = 1
- DIM = 2
- NORMAL = 22
+ BRIGHT = 1
+ DIM = 2
+ NORMAL = 22
RESET_ALL = 0
-Fore = AnsiFore()
-Back = AnsiBack()
-Style = AnsiStyle()
+
+Fore = AnsiFore()
+Back = AnsiBack()
+Style = AnsiStyle()
Cursor = AnsiCursor()