class COLORS_DUMMY: HEADER = '' OKBLUE = '' OKGREEN = '' WARNING = '' FAIL = '' ENDC = '' BOLD = '' UNDERLINE = '' class COLORS_ANSI: HEADER = '\033[94m' OKBLUE = '\033[94m' OKGREEN = '\033[92m' WARNING = '\033[93m' FAIL = '\033[91m' ENDC = '\033[0m' BOLD = '\033[1m' UNDERLINE = '\033[4m' VERBOSE = False COLORS = COLORS_DUMMY def supportsColor(): """ Returns True if the running system's terminal supports color, and False otherwise. """ import sys import os plat = sys.platform supported_platform = plat != 'Pocket PC' and (plat != 'win32' or 'ANSICON' in os.environ) # isatty is not always implemented, #6223. is_a_tty = hasattr(sys.stdout, 'isatty') and sys.stdout.isatty() if not supported_platform or not is_a_tty: return False return True def HEADER(*args): print(COLORS.HEADER + COLORS.BOLD, end="") print(*args, end="") print(COLORS.ENDC) def WARNING(*args): print(COLORS.WARNING + COLORS.BOLD, end="") print(*args, end="") print(COLORS.ENDC) def ERROR(*args): print(COLORS.FAIL + COLORS.BOLD, end="") print(*args, end="") print(COLORS.ENDC) def OK(*args): print(COLORS.OKGREEN + COLORS.BOLD, end="") print(*args, end="") print(COLORS.ENDC) def BOLD(*args): print(COLORS.BOLD, end="") print(*args, end="") print(COLORS.ENDC) def INFO(*args): print(*args) def DEBUG(*args): # TODO(sergey): Add check that debug is enabled. if False: print(*args) def FATAL(*args): import sys ERROR(*args) sys.exit(1) def init(): if not VERBOSE and supportsColor(): global COLORS COLORS = COLORS_ANSI