blob: ce1b1829a6bec77030bc64784b2690701ae22931 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
from typing import Literal
class ColorCode:
"""A superclass to signal that color codes are strings"""
BLACK: Literal[str]
RED: Literal[str]
GREEN: Literal[str]
YELLOW: Literal[str]
BLUE: Literal[str]
MAGENTA: Literal[str]
CYAN: Literal[str]
WHITE: Literal[str]
RESET: Literal[str]
BLACK_BG: Literal[str]
RED_BG: Literal[str]
GREEN_BG: Literal[str]
YELLOW_BG: Literal[str]
BLUE_BG: Literal[str]
MAGENTA_BG: Literal[str]
CYAN_BG: Literal[str]
WHITE_BG: Literal[str]
BOLD: Literal[str]
UNDERLINE: Literal[str]
BLINK: Literal[str]
class VT100ColorCode(ColorCode):
"""A class containing VT100 color codes"""
# Define the color codes
BLACK = '\033[30m'
RED = '\033[31m'
GREEN = '\033[32m'
YELLOW = '\033[33m'
BLUE = '\033[34m'
MAGENTA = '\033[35m'
CYAN = '\033[36m'
WHITE = '\033[37m'
RESET = '\033[0m'
# Define the background color codes
BLACK_BG = '\033[40m'
RED_BG = '\033[41m'
GREEN_BG = '\033[42m'
YELLOW_BG = '\033[43m'
BLUE_BG = '\033[44m'
MAGENTA_BG = '\033[45m'
CYAN_BG = '\033[46m'
WHITE_BG = '\033[47m'
# Define the bold, underline and blink codes
BOLD = '\033[1m'
UNDERLINE = '\033[4m'
BLINK = '\033[5m'
class NoColorColorCode(ColorCode):
"""A class nullifying color codes to disable color"""
# Define the color codes
BLACK = ''
RED = ''
GREEN = ''
YELLOW = ''
BLUE = ''
MAGENTA = ''
CYAN = ''
WHITE = ''
RESET = ''
# Define the background color codes
BLACK_BG = ''
RED_BG = ''
GREEN_BG = ''
YELLOW_BG = ''
BLUE_BG = ''
MAGENTA_BG = ''
CYAN_BG = ''
WHITE_BG = ''
# Define the bold, underline and blink codes
BOLD = ''
UNDERLINE = ''
BLINK = ''
def get_color_codes(no_color=False) -> ColorCode:
if no_color:
return NoColorColorCode
else:
return VT100ColorCode
|