ProjectFlask/AnsiTools.py

changeset 5
550e5ea385cb
child 6
d491ccab7343
equal deleted inserted replaced
4:e164b9ad3819 5:550e5ea385cb
1 # -*- coding: utf-8 -*-
2
3 # Copyright (c) 2020 Detlev Offenbach <detlev@die-offenbachs.de>
4 #
5
6 """
7 Module implementing functions to work with ANSI escape sequences for colors.
8 """
9
10 from PyQt5.QtGui import QColor, QBrush
11
12 # ANSI Colors (see https://en.wikipedia.org/wiki/ANSI_escape_code)
13 _AnsiColorSchemes = {
14 "Windows 7": {
15 0: QBrush(QColor(0, 0, 0)),
16 1: QBrush(QColor(128, 0, 0)),
17 2: QBrush(QColor(0, 128, 0)),
18 3: QBrush(QColor(128, 128, 0)),
19 4: QBrush(QColor(0, 0, 128)),
20 5: QBrush(QColor(128, 0, 128)),
21 6: QBrush(QColor(0, 128, 128)),
22 7: QBrush(QColor(192, 192, 192)),
23 10: QBrush(QColor(128, 128, 128)),
24 11: QBrush(QColor(255, 0, 0)),
25 12: QBrush(QColor(0, 255, 0)),
26 13: QBrush(QColor(255, 255, 0)),
27 14: QBrush(QColor(0, 0, 255)),
28 15: QBrush(QColor(255, 0, 255)),
29 16: QBrush(QColor(0, 255, 255)),
30 17: QBrush(QColor(255, 255, 255)),
31 },
32 "Windows 10": {
33 0: QBrush(QColor(12, 12, 12)),
34 1: QBrush(QColor(197, 15, 31)),
35 2: QBrush(QColor(19, 161, 14)),
36 3: QBrush(QColor(193, 156, 0)),
37 4: QBrush(QColor(0, 55, 218)),
38 5: QBrush(QColor(136, 23, 152)),
39 6: QBrush(QColor(58, 150, 221)),
40 7: QBrush(QColor(204, 204, 204)),
41 10: QBrush(QColor(118, 118, 118)),
42 11: QBrush(QColor(231, 72, 86)),
43 12: QBrush(QColor(22, 198, 12)),
44 13: QBrush(QColor(249, 241, 165)),
45 14: QBrush(QColor(59, 12, 255)),
46 15: QBrush(QColor(180, 0, 158)),
47 16: QBrush(QColor(97, 214, 214)),
48 17: QBrush(QColor(242, 242, 242)),
49 },
50 "PuTTY": {
51 0: QBrush(QColor(0, 0, 0)),
52 1: QBrush(QColor(187, 0, 0)),
53 2: QBrush(QColor(0, 187, 0)),
54 3: QBrush(QColor(187, 187, 0)),
55 4: QBrush(QColor(0, 0, 187)),
56 5: QBrush(QColor(187, 0, 187)),
57 6: QBrush(QColor(0, 187, 187)),
58 7: QBrush(QColor(187, 187, 187)),
59 10: QBrush(QColor(85, 85, 85)),
60 11: QBrush(QColor(255, 85, 85)),
61 12: QBrush(QColor(85, 255, 85)),
62 13: QBrush(QColor(255, 255, 85)),
63 14: QBrush(QColor(85, 85, 255)),
64 15: QBrush(QColor(255, 85, 255)),
65 16: QBrush(QColor(85, 255, 255)),
66 17: QBrush(QColor(255, 255, 255)),
67 },
68 "xterm": {
69 0: QBrush(QColor(0, 0, 0)),
70 1: QBrush(QColor(205, 0, 0)),
71 2: QBrush(QColor(0, 205, 0)),
72 3: QBrush(QColor(205, 205, 0)),
73 4: QBrush(QColor(0, 0, 238)),
74 5: QBrush(QColor(205, 0, 205)),
75 6: QBrush(QColor(0, 205, 205)),
76 7: QBrush(QColor(229, 229, 229)),
77 10: QBrush(QColor(127, 127, 127)),
78 11: QBrush(QColor(255, 0, 0)),
79 12: QBrush(QColor(0, 255, 0)),
80 13: QBrush(QColor(255, 255, 0)),
81 14: QBrush(QColor(0, 0, 255)),
82 15: QBrush(QColor(255, 0, 255)),
83 16: QBrush(QColor(0, 255, 255)),
84 17: QBrush(QColor(255, 255, 255)),
85 },
86 "Ubuntu": {
87 0: QBrush(QColor(1, 1, 1)),
88 1: QBrush(QColor(222, 56, 43)),
89 2: QBrush(QColor(57, 181, 74)),
90 3: QBrush(QColor(255, 199, 6)),
91 4: QBrush(QColor(0, 11, 184)),
92 5: QBrush(QColor(118, 38, 113)),
93 6: QBrush(QColor(44, 181, 233)),
94 7: QBrush(QColor(204, 204, 204)),
95 10: QBrush(QColor(128, 128, 128)),
96 11: QBrush(QColor(255, 0, 0)),
97 12: QBrush(QColor(0, 255, 0)),
98 13: QBrush(QColor(255, 255, 0)),
99 14: QBrush(QColor(0, 0, 255)),
100 15: QBrush(QColor(255, 0, 255)),
101 16: QBrush(QColor(0, 255, 255)),
102 17: QBrush(QColor(255, 255, 255)),
103 },
104 "Ubuntu (dark)": {
105 0: QBrush(QColor(96, 96, 96)),
106 1: QBrush(QColor(235, 58, 45)),
107 2: QBrush(QColor(57, 181, 74)),
108 3: QBrush(QColor(255, 199, 29)),
109 4: QBrush(QColor(25, 56, 230)),
110 5: QBrush(QColor(200, 64, 193)),
111 6: QBrush(QColor(48, 200, 255)),
112 7: QBrush(QColor(204, 204, 204)),
113 10: QBrush(QColor(128, 128, 128)),
114 11: QBrush(QColor(255, 0, 0)),
115 12: QBrush(QColor(0, 255, 0)),
116 13: QBrush(QColor(255, 255, 0)),
117 14: QBrush(QColor(0, 0, 255)),
118 15: QBrush(QColor(255, 0, 255)),
119 16: QBrush(QColor(0, 255, 255)),
120 17: QBrush(QColor(255, 255, 255)),
121 },
122 "Breeze (dark)": {
123 0: QBrush(QColor(35, 38, 39)),
124 1: QBrush(QColor(237, 21, 21)),
125 2: QBrush(QColor(17, 209, 22)),
126 3: QBrush(QColor(246, 116, 0)),
127 4: QBrush(QColor(29, 153, 243)),
128 5: QBrush(QColor(155, 89, 182)),
129 6: QBrush(QColor(26, 188, 156)),
130 7: QBrush(QColor(252, 252, 252)),
131 10: QBrush(QColor(127, 140, 141)),
132 11: QBrush(QColor(192, 57, 43)),
133 12: QBrush(QColor(28, 220, 154)),
134 13: QBrush(QColor(253, 188, 75)),
135 14: QBrush(QColor(61, 174, 233)),
136 15: QBrush(QColor(142, 68, 173)),
137 16: QBrush(QColor(22, 160, 133)),
138 17: QBrush(QColor(255, 255, 255)),
139 },
140 }
141
142
143 def getAvailableColorSchemes():
144 """
145 Function to get a list of available color schemes.
146
147 @return list containing the names of the supported color schemes
148 @rtype list of str
149 """
150 return list(_AnsiColorSchemes.keys())
151
152
153 def getColor(scheme, color):
154 """
155 Function to get the brush for a given scheme and color.
156
157 @paran scheme name of the color scheme
158 @type str
159 @param color ANSI color code
160 @type int
161 """
162 try:
163 return _AnsiColorSchemes[scheme][color]
164 except KeyError:
165 return QBrush()

eric ide

mercurial