From: Ed Bartosh Date: Wed, 2 Apr 2014 12:20:25 +0000 (+0300) Subject: Implement Colorizer class X-Git-Tag: 0.2~20 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=41a6e326950af928f570d5a71aa0c2d373471584;p=tools%2Frepa.git Implement Colorizer class This is going to be used to colorize repa output. Change-Id: I5d9eddc427c80b787b4fd5d05a46e08b624aa4cc Signed-off-by: Ed Bartosh --- diff --git a/repa/common.py b/repa/common.py index 2a21d09..622b47e 100644 --- a/repa/common.py +++ b/repa/common.py @@ -32,7 +32,7 @@ Common functions, classes, exceptions. import sys import time import json -from functools import wraps +from functools import wraps, partial OBS_PROJECT_PREFIX = "home:prerelease:" @@ -149,3 +149,34 @@ def retry(exceptions, tries=10, sleep=1): return wrap return decorator +class Colorizer: + """Colorize text with ANSI colors.""" + colors = {'black': '\033[90m', 'red': '\033[91m', + 'green': '\033[92m', 'yellow': '\033[93m', + 'blue': '\033[94m', 'magenta': '\033[95m', + 'cyan': '\033[96m', 'white': '\033[97m' + } + reset = '\033[0m' + + def __init__(self, enable=True): + self.enabled = enable + + def __getattr__(self, name): + if name in self.colors: + return partial(self.colorize, color=name) + + def disable(self): + """Disable colorizing.""" + self.enabled = False + + def enable(self): + """Enable colorizing.""" + self.enabled = True + + def colorize(self, text, color): + """Colorize text.""" + if self.enabled: + return self.reset + self.colors[color] + text + self.reset + else: + return text +