fix readline calculation messed up with color sequence
[rainbowstream.git] / rainbowstream / colors.py
1 def 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
14 def 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 """
28 16 basic colors
29 """
30 default = basic_color('39')
31 black = basic_color('30')
32 red = basic_color('31')
33 green = basic_color('32')
34 yellow = basic_color('33')
35 blue = basic_color('34')
36 magenta = basic_color('35')
37 cyan = basic_color('36')
38 grey = basic_color('90')
39 light_red = basic_color('91')
40 light_green = basic_color('92')
41 light_yellow = basic_color('93')
42 light_blue = basic_color('94')
43 light_magenta = basic_color('95')
44 light_cyan = basic_color('96')
45 white = basic_color('97')
46
47 """
48 16 basic colors on background
49 """
50 on_default = basic_color('49')
51 on_black = basic_color('40')
52 on_red = basic_color('41')
53 on_green = basic_color('42')
54 on_yellow = basic_color('43')
55 on_blue = basic_color('44')
56 on_magenta = basic_color('45')
57 on_cyan = basic_color('46')
58 on_grey = basic_color('100')
59 on_light_red = basic_color('101')
60 on_light_green = basic_color('102')
61 on_light_yellow = basic_color('103')
62 on_light_blue = basic_color('104')
63 on_light_magenta = basic_color('105')
64 on_light_cyan = basic_color('106')
65 on_white = basic_color('107')