fix readline calculation messed up with color sequence
[rainbowstream.git] / rainbowstream / colors.py
... / ...
CommitLineData
1def basic_color(code):
2 """
3 16 colors supported
4 """
5 def inner(text, rl=False):
6 c = code
7 if rl:
8 return "\001\033[%sm\002%s\001\033[0m\002" % (c, text)
9 else:
10 return "\033[%sm%s\033[0m" % (c, text)
11 return inner
12
13
14def term_color(code):
15 """
16 256 colors supported
17 """
18 def inner(text, rl=False):
19 c = code
20 if rl:
21 return "\001\033[38;5;%sm\002%s\001\033[0m\002" % (c, text)
22 else:
23 return "\033[38;5;%sm%s\033[0m" % (c, text)
24 return inner
25
26
27"""
2816 basic colors
29"""
30default = basic_color('39')
31black = basic_color('30')
32red = basic_color('31')
33green = basic_color('32')
34yellow = basic_color('33')
35blue = basic_color('34')
36magenta = basic_color('35')
37cyan = basic_color('36')
38grey = basic_color('90')
39light_red = basic_color('91')
40light_green = basic_color('92')
41light_yellow = basic_color('93')
42light_blue = basic_color('94')
43light_magenta = basic_color('95')
44light_cyan = basic_color('96')
45white = basic_color('97')
46
47"""
4816 basic colors on background
49"""
50on_default = basic_color('49')
51on_black = basic_color('40')
52on_red = basic_color('41')
53on_green = basic_color('42')
54on_yellow = basic_color('43')
55on_blue = basic_color('44')
56on_magenta = basic_color('45')
57on_cyan = basic_color('46')
58on_grey = basic_color('100')
59on_light_red = basic_color('101')
60on_light_green = basic_color('102')
61on_light_yellow = basic_color('103')
62on_light_blue = basic_color('104')
63on_light_magenta = basic_color('105')
64on_light_cyan = basic_color('106')
65on_white = basic_color('107')