Source code for rog_rl.colors

from rog_rl.agent_state import AgentState
import colorama


[docs]class Colors: """ Reference : https://materialuicolors.co/ # Level : 600 Can potentially use : https://github.com/secretBiology/SecretColors/ """ WHITE = (255, 255, 255) RED = (229, 57, 53) PINK = (216, 27, 96) PURPLE = (142, 36, 170) DEEP_PURPLE = (94, 53, 177) INDIGO = (57, 73, 171) BLUE = (30, 136, 229) LIGHT_BLUE = (3, 155, 229) CYAN = (0, 172, 193) TEAL = (0, 137, 123) GREEN = (67, 160, 71) LIGHT_GREEN = (124, 179, 66) LIME = (192, 202, 51) YELLOW = (253, 216, 53) AMBER = (255, 179, 0) ORANGE = (251, 140, 0) DEEP_ORANGE = (244, 81, 30) BROWN = (109, 76, 65) GREY = (117, 117, 117) LIGHT_GREY = (234, 237, 237) BLUE_GREY = (84, 110, 122)
[docs]class ANSI_COLOR_MAP: FORE_BLACK = colorama.Fore.BLACK FORE_RED = colorama.Fore.RED FORE_GREEN = colorama.Fore.GREEN FORE_YELLOW = colorama.Fore.YELLOW FORE_BLUE = colorama.Fore.BLUE FORE_MAGENTA = colorama.Fore.MAGENTA FORE_CYAN = colorama.Fore.CYAN FORE_WHITE = colorama.Fore.WHITE FORE_RESET = colorama.Fore.RESET BACK_BLACK = colorama.Back.BLACK BACK_RED = colorama.Back.RED BACK_GREEN = colorama.Back.GREEN BACK_YELLOW = colorama.Back.YELLOW BACK_BLUE = colorama.Back.BLUE BACK_MAGENTA = colorama.Back.MAGENTA BACK_CYAN = colorama.Back.CYAN BACK_WHITE = colorama.Back.WHITE BACK_RESET = colorama.Back.RESET
[docs]class ColorMap: def __init__(self, mode="rgb"): """ Params: mode : "rgb" or "ansi" """ assert mode in ["rgb", "ansi"] if mode == "rgb": self.COLORS = Colors() elif mode == "ansi": self.ANSI_COLORS = ANSI_COLOR_MAP() self.COLOR_MAP = {} # AgentState Colors for _state in AgentState: if mode == "rgb": """ Prepare the RGB ColorMap """ if _state == AgentState.SUSCEPTIBLE: self.COLOR_MAP[_state] = self.COLORS.GREEN elif _state == AgentState.EXPOSED: self.COLOR_MAP[_state] = self.COLORS.PURPLE elif _state == AgentState.INFECTIOUS: self.COLOR_MAP[_state] = self.COLORS.BROWN elif _state == AgentState.SYMPTOMATIC: self.COLOR_MAP[_state] = self.COLORS.RED elif _state == AgentState.RECOVERED: self.COLOR_MAP[_state] = self.COLORS.BLUE elif _state == AgentState.VACCINATED: self.COLOR_MAP[_state] = self.COLORS.YELLOW self.COLOR_MAP["R0/10"] = self.COLORS.BLUE_GREY self.COLOR_MAP["BACKGROUND_COLOR"] = self.COLORS.WHITE self.COLOR_MAP["AGENT_STATE_TEXT_COLOR"] = self.COLORS.GREY elif mode == "ansi": """ Prepare the Colorama Colormap """ if _state == AgentState.SUSCEPTIBLE: self.COLOR_MAP[_state] = self.ANSI_COLORS.FORE_GREEN elif _state == AgentState.EXPOSED: self.COLOR_MAP[_state] = self.ANSI_COLORS.FORE_CYAN elif _state == AgentState.INFECTIOUS: self.COLOR_MAP[_state] = self.ANSI_COLORS.FORE_MAGENTA # noqa elif _state == AgentState.SYMPTOMATIC: self.COLOR_MAP[_state] = self.ANSI_COLORS.FORE_RED elif _state == AgentState.RECOVERED: self.COLOR_MAP[_state] = self.ANSI_COLORS.FORE_BLUE elif _state == AgentState.VACCINATED: self.COLOR_MAP[_state] = self.ANSI_COLORS.FORE_YELLOW self.COLOR_MAP["R0/10"] = self.ANSI_COLORS.BACK_CYAN self.COLOR_MAP["BACKGROUND_COLOR"] = self.ANSI_COLORS.FORE_WHITE # noqa self.COLOR_MAP["AGENT_STATE_TEXT_COLOR"] = self.ANSI_COLORS.FORE_WHITE # noqa self.COLOR_MAP["BACK_RESET"] = self.ANSI_COLORS.BACK_RESET self.COLOR_MAP["FORE_RESET"] = self.ANSI_COLORS.FORE_RESET
[docs] def get_color(self, d): try: return self.COLOR_MAP[d] except KeyError: raise NotImplementedError( "Unknown key in ColorMap. Was it initialized ?")
if __name__ == "__main__": colors = Colors() # TODO setup a small pygame setup to display all the colors in the palette