"""Provides functions for validating input from the server and other clients.""" # import re # _color_rgb = re.compile(r"^\d{1,3},\d{1,3},\d{1,3}$") # _color_hex = re.compile(r"^#(?:[0-9a-fA-F]{3}){1,2}$") def is_valid_mood(value: str): """Returns True if an unparsed value (str) is a valid mood index.""" if value in [ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", ]: return True return False def is_valid_rgb_color(value: str): """Returns True if an unparsed value (str) is a valid rgb color as "r,g,b". Yeah you could do this via re but this is faster.""" if not isinstance(value, str): return False if 4 > len(value) > 11: return False components = value.split(",") if len(components) != 3: return False for component in components: if not component.isnumeric(): return False if int(component) > 255: return False return True