1from typing import Optional 2 3 4class Style(object): 5 """ 6 A formatter style. 7 """ 8 9 def __init__(self, tag=None): # type: (Optional[str]) -> None 10 self._tag = tag 11 self._fg_color = None 12 self._bg_color = None 13 self._bold = False 14 self._underlined = False 15 self._italic = False 16 self._dark = False 17 self._blinking = False 18 self._inverse = False 19 self._hidden = False 20 21 @property 22 def tag(self): # type: () -> Optional[str] 23 return self._tag 24 25 @property 26 def foreground_color(self): # type: () -> str 27 return self._fg_color 28 29 @property 30 def background_color(self): # type: () -> str 31 return self._bg_color 32 33 def fg(self, color): # type: (str) -> Style 34 """ 35 Sets the foreground color. 36 """ 37 self._fg_color = color 38 39 return self 40 41 def bg(self, color): # type: (str) -> Style 42 """ 43 Sets the background color. 44 """ 45 self._bg_color = color 46 47 return self 48 49 def bold(self, bold=True): # type: (bool) -> Style 50 """ 51 Sets or unsets the font weight to bold. 52 """ 53 self._bold = bold 54 55 return self 56 57 def underlined(self, underlined=True): # type: (bool) -> Style 58 """ 59 Enables or disables underlining. 60 """ 61 self._underlined = underlined 62 63 return self 64 65 def italic(self, italic=True): # type: (bool) -> Style 66 """ 67 Enables or disables italic 68 """ 69 self._italic = italic 70 71 return self 72 73 def dark(self, dark=True): # type: (bool) -> Style 74 """ 75 Enables or disables dark 76 """ 77 self._dark = dark 78 79 return self 80 81 def blinking(self, blinking=True): # type: (bool) -> Style 82 """ 83 Enables or disables blinking. 84 """ 85 self._blinking = blinking 86 87 return self 88 89 def inverse(self, inverse=True): # type: (bool) -> Style 90 """ 91 Enables or disables inverse colors. 92 """ 93 self._inverse = inverse 94 95 return self 96 97 def hidden(self, hidden=True): # type: (bool) -> Style 98 """ 99 Hides or shows the text. 100 """ 101 self._hidden = hidden 102 103 return self 104 105 def is_bold(self): # type: () -> bool 106 return self._bold 107 108 def is_underlined(self): # type: () -> bool 109 return self._underlined 110 111 def is_italic(self): # type: () -> bool 112 return self._italic 113 114 def is_dark(self): # type: () -> bool 115 return self._dark 116 117 def is_blinking(self): # type: () -> bool 118 return self._blinking 119 120 def is_inverse(self): # type: () -> bool 121 return self._inverse 122 123 def is_hidden(self): # type: () -> bool 124 return self._hidden 125