2022-01-24 04:07:52 +00:00
|
|
|
from typing import List, Optional, Tuple
|
2021-04-13 04:02:29 +00:00
|
|
|
|
|
|
|
from .color_triplet import ColorTriplet
|
|
|
|
from .palette import Palette
|
|
|
|
|
|
|
|
_ColorTuple = Tuple[int, int, int]
|
|
|
|
|
|
|
|
|
|
|
|
class TerminalTheme:
|
|
|
|
"""A color theme used when exporting console content.
|
|
|
|
|
|
|
|
Args:
|
|
|
|
background (Tuple[int, int, int]): The background color.
|
|
|
|
foreground (Tuple[int, int, int]): The foreground (text) color.
|
|
|
|
normal (List[Tuple[int, int, int]]): A list of 8 normal intensity colors.
|
|
|
|
bright (List[Tuple[int, int, int]], optional): A list of 8 bright colors, or None
|
|
|
|
to repeat normal intensity. Defaults to None.
|
|
|
|
"""
|
|
|
|
|
|
|
|
def __init__(
|
|
|
|
self,
|
|
|
|
background: _ColorTuple,
|
|
|
|
foreground: _ColorTuple,
|
|
|
|
normal: List[_ColorTuple],
|
2022-01-24 04:07:52 +00:00
|
|
|
bright: Optional[List[_ColorTuple]] = None,
|
2021-04-13 04:02:29 +00:00
|
|
|
) -> None:
|
|
|
|
self.background_color = ColorTriplet(*background)
|
|
|
|
self.foreground_color = ColorTriplet(*foreground)
|
|
|
|
self.ansi_colors = Palette(normal + (bright or normal))
|
|
|
|
|
|
|
|
|
|
|
|
DEFAULT_TERMINAL_THEME = TerminalTheme(
|
|
|
|
(255, 255, 255),
|
|
|
|
(0, 0, 0),
|
|
|
|
[
|
|
|
|
(0, 0, 0),
|
|
|
|
(128, 0, 0),
|
|
|
|
(0, 128, 0),
|
|
|
|
(128, 128, 0),
|
|
|
|
(0, 0, 128),
|
|
|
|
(128, 0, 128),
|
|
|
|
(0, 128, 128),
|
|
|
|
(192, 192, 192),
|
|
|
|
],
|
|
|
|
[
|
|
|
|
(128, 128, 128),
|
|
|
|
(255, 0, 0),
|
|
|
|
(0, 255, 0),
|
|
|
|
(255, 255, 0),
|
|
|
|
(0, 0, 255),
|
|
|
|
(255, 0, 255),
|
|
|
|
(0, 255, 255),
|
|
|
|
(255, 255, 255),
|
|
|
|
],
|
|
|
|
)
|