import sys
import time
import json
-from functools import wraps
+from functools import wraps, partial
OBS_PROJECT_PREFIX = "home:prerelease:"
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
+