def println(line): # blank line if re.match(r'\s*$', line): return puts(line) # logfile header mobj = re.match(r'==> (.*) <==$', line) if mobj: return puts(style.bright(fore.black('==> ') + fore.white(mobj.group(1)) + fore.black(' <=='))) # exception line if re.match(EXCEPTION_PREFIX, line): return puts(fore.red(line)) # standard log line basic = r'(.*?\s+)' date = basic*3 time = basic type = basic file = '(\[.*?\s+)\])' mobj = re.match(basic*6 + r'(.*)', line) if not mobj: # non-conventional line return puts(line) else: groups = list(mobj.groups()) groups.insert(0, str(fore.cyan)) groups.insert(4, str(fore.blue)) groups.insert(6, str(style.bright)) groups.insert(8, str(style.reset_all)) groups.insert(9, str(fore.cyan)) groups.insert(11, str(style.reset_all)) for idx, string in enumerate(groups): string = re.sub(r'(STATUS)', fore.white(r'\1'), string) string = re.sub(r'(DEBUG)', fore.white(r'\1'), string) string = re.sub(r'(INFO)', fore.green(r'\1'), string) string = re.sub(r'(WARNING)', fore.yellow(r'\1'), string) string = re.sub(r'(ERROR)', fore.red(r'\1'), string) string = re.sub(r'(EXCEPT)', fore.red(r'\1'), string) groups[idx] = string groups[-1] = re.sub(r'\[', fore.cyan(r'['), groups[-1]) groups[-1] = re.sub(r'\]', fore.cyan(r']'), groups[-1]) groups[-1] = re.sub(r'~>', fore.blue(r'~>'), groups[-1]) groups[-1] = re.sub(r'<~', fore.yellow(r'<~'), groups[-1]) groups[-1] = re.sub(r'\(', fore.cyan(r'('), groups[-1]) groups[-1] = re.sub(r'\)', fore.cyan(r')'), groups[-1]) groups[-1] = re.sub(r"'", fore.cyan(r"'"), groups[-1]) groups[-1] = re.sub(r'"', fore.cyan(r'"'), groups[-1]) return puts(''.join(groups))
def api(modules): # ensure iterable if isinstance(modules, Socket): modules = [modules] # iterate list for module in modules: puts('= ' + fore.green(module.name)) for obj in module.help(): if isinstance(obj, list): # method puts(' * ' + fore.yellow(obj[0]) + ' ' + fore.white(obj[1])) if obj[2]: puts(' ' + fore.blue(obj[2]))
def decorator(base): info = ': ' + arg if type(arg) is str else '' header = fore.green('** ' + fore.cyan(base.__name__) + info) def func(*args, **kwargs): sys.stdout.indent_level += 1 puts(header) base(*args, **kwargs) sys.stdout.indent_level -= 1 params = inspect.formatargspec(*inspect.getargspec(base))[1:-1] specformat = fore.cyan('%s') + ' ' + fore.white('%s') func._task = True func._spec = specformat % (base.__name__, params) func._desc = re.sub('\s+', ' ', inspect.getdoc(base) or '') return func
def println(line): # blank line if re.match(r'\s*$', line): return puts(line) # logfile header mobj = re.match(r'==> (.*) <==$', line) if mobj: return puts( style.bright( fore.black('==> ') + fore.white(mobj.group(1)) + fore.black(' <=='))) # exception line if re.match(EXCEPTION_PREFIX, line): return puts(fore.red(line)) # standard log line basic = r'(.*?\s+)' date = basic * 3 time = basic type = basic file = '(\[.*?\s+)\])' mobj = re.match(basic * 6 + r'(.*)', line) if not mobj: # non-conventional line return puts(line) else: groups = list(mobj.groups()) groups.insert(0, str(fore.cyan)) groups.insert(4, str(fore.blue)) groups.insert(6, str(style.bright)) groups.insert(8, str(style.reset_all)) groups.insert(9, str(fore.cyan)) groups.insert(11, str(style.reset_all)) for idx, string in enumerate(groups): string = re.sub(r'(STATUS)', fore.white(r'\1'), string) string = re.sub(r'(DEBUG)', fore.white(r'\1'), string) string = re.sub(r'(INFO)', fore.green(r'\1'), string) string = re.sub(r'(WARNING)', fore.yellow(r'\1'), string) string = re.sub(r'(ERROR)', fore.red(r'\1'), string) string = re.sub(r'(EXCEPT)', fore.red(r'\1'), string) groups[idx] = string groups[-1] = re.sub(r'\[', fore.cyan(r'['), groups[-1]) groups[-1] = re.sub(r'\]', fore.cyan(r']'), groups[-1]) groups[-1] = re.sub(r'~>', fore.blue(r'~>'), groups[-1]) groups[-1] = re.sub(r'<~', fore.yellow(r'<~'), groups[-1]) groups[-1] = re.sub(r'\(', fore.cyan(r'('), groups[-1]) groups[-1] = re.sub(r'\)', fore.cyan(r')'), groups[-1]) groups[-1] = re.sub(r"'", fore.cyan(r"'"), groups[-1]) groups[-1] = re.sub(r'"', fore.cyan(r'"'), groups[-1]) return puts(''.join(groups))