|
|
@ -48,13 +48,15 @@ class Logger:
|
|
|
|
if attr:
|
|
|
|
if attr:
|
|
|
|
end = ' {}({}){}'.format(Logger.GRAY, attr, Logger.RESET)
|
|
|
|
end = ' {}({}){}'.format(Logger.GRAY, attr, Logger.RESET)
|
|
|
|
s = '{}{}{}{}:'.format(pre, Logger.UND, Logger.STORAGE, Logger.RESET)
|
|
|
|
s = '{}{}{}{}:'.format(pre, Logger.UND, Logger.STORAGE, Logger.RESET)
|
|
|
|
s += ' {}{}{}{}\n'.format(Logger.PURPLE, name, Logger.RESET, end)
|
|
|
|
s += ' {}{}{}{}\n'.format(Logger.PURPLE,
|
|
|
|
|
|
|
|
_fix_badchars(name),
|
|
|
|
|
|
|
|
Logger.RESET, end)
|
|
|
|
s += ' {}{}{}'.format(Logger.GRAY, args, Logger.RESET)
|
|
|
|
s += ' {}{}{}'.format(Logger.GRAY, args, Logger.RESET)
|
|
|
|
sys.stdout.write('{}\n'.format(s))
|
|
|
|
sys.stdout.write('{}\n'.format(s))
|
|
|
|
|
|
|
|
|
|
|
|
def file(pre, name, attr):
|
|
|
|
def file(pre, name, attr):
|
|
|
|
'''print a file node'''
|
|
|
|
'''print a file node'''
|
|
|
|
s = '{}{}'.format(pre, name)
|
|
|
|
s = '{}{}'.format(pre, _fix_badchars(name))
|
|
|
|
s += ' {}[{}]{}'.format(Logger.GRAY, attr, Logger.RESET)
|
|
|
|
s += ' {}[{}]{}'.format(Logger.GRAY, attr, Logger.RESET)
|
|
|
|
sys.stdout.write('{}\n'.format(s))
|
|
|
|
sys.stdout.write('{}\n'.format(s))
|
|
|
|
|
|
|
|
|
|
|
@ -67,12 +69,14 @@ class Logger:
|
|
|
|
end.append(' '.join(['{}:{}'.format(x, y) for x, y in attr]))
|
|
|
|
end.append(' '.join(['{}:{}'.format(x, y) for x, y in attr]))
|
|
|
|
if end:
|
|
|
|
if end:
|
|
|
|
end = ' [{}]'.format(', '.join(end))
|
|
|
|
end = ' [{}]'.format(', '.join(end))
|
|
|
|
s = '{}{}{}{}'.format(pre, Logger.BLUE, name, Logger.RESET)
|
|
|
|
s = '{}{}{}{}'.format(pre, Logger.BLUE,
|
|
|
|
|
|
|
|
_fix_badchars(name), Logger.RESET)
|
|
|
|
s += '{}{}{}'.format(Logger.GRAY, end, Logger.RESET)
|
|
|
|
s += '{}{}{}'.format(Logger.GRAY, end, Logger.RESET)
|
|
|
|
sys.stdout.write('{}\n'.format(s))
|
|
|
|
sys.stdout.write('{}\n'.format(s))
|
|
|
|
|
|
|
|
|
|
|
|
def arc(pre, name, archive):
|
|
|
|
def arc(pre, name, archive):
|
|
|
|
s = '{}{}{}{}'.format(pre, Logger.YELLOW, name, Logger.RESET)
|
|
|
|
s = '{}{}{}{}'.format(pre, Logger.YELLOW,
|
|
|
|
|
|
|
|
_fix_badchars(name), Logger.RESET)
|
|
|
|
s += ' {}[{}:{}]{}'.format(Logger.GRAY, Logger.ARCHIVE,
|
|
|
|
s += ' {}[{}:{}]{}'.format(Logger.GRAY, Logger.ARCHIVE,
|
|
|
|
archive, Logger.RESET)
|
|
|
|
archive, Logger.RESET)
|
|
|
|
sys.stdout.write('{}\n'.format(s))
|
|
|
|
sys.stdout.write('{}\n'.format(s))
|
|
|
@ -82,34 +86,45 @@ class Logger:
|
|
|
|
######################################################################
|
|
|
|
######################################################################
|
|
|
|
def out(string):
|
|
|
|
def out(string):
|
|
|
|
'''to stdout no color'''
|
|
|
|
'''to stdout no color'''
|
|
|
|
|
|
|
|
string = _fix_badchars(string)
|
|
|
|
sys.stdout.write('{}\n'.format(string))
|
|
|
|
sys.stdout.write('{}\n'.format(string))
|
|
|
|
|
|
|
|
|
|
|
|
def debug(string):
|
|
|
|
def debug(string):
|
|
|
|
'''to stderr no color'''
|
|
|
|
'''to stderr no color'''
|
|
|
|
|
|
|
|
string = _fix_badchars(string)
|
|
|
|
sys.stderr.write('[DBG] {}\n'.format(string))
|
|
|
|
sys.stderr.write('[DBG] {}\n'.format(string))
|
|
|
|
|
|
|
|
|
|
|
|
def info(string):
|
|
|
|
def info(string):
|
|
|
|
'''to stdout in color'''
|
|
|
|
'''to stdout in color'''
|
|
|
|
|
|
|
|
string = _fix_badchars(string)
|
|
|
|
s = '{}{}{}'.format(Logger.MAGENTA, string, Logger.RESET)
|
|
|
|
s = '{}{}{}'.format(Logger.MAGENTA, string, Logger.RESET)
|
|
|
|
sys.stdout.write('{}\n'.format(s))
|
|
|
|
sys.stdout.write('{}\n'.format(s))
|
|
|
|
|
|
|
|
|
|
|
|
def err(string):
|
|
|
|
def err(string):
|
|
|
|
'''to stderr in RED'''
|
|
|
|
'''to stderr in RED'''
|
|
|
|
|
|
|
|
string = _fix_badchars(string)
|
|
|
|
s = '{}{}{}'.format(Logger.RED, string, Logger.RESET)
|
|
|
|
s = '{}{}{}'.format(Logger.RED, string, Logger.RESET)
|
|
|
|
sys.stderr.write('{}\n'.format(s))
|
|
|
|
sys.stderr.write('{}\n'.format(s))
|
|
|
|
|
|
|
|
|
|
|
|
def progr(string):
|
|
|
|
def progr(string):
|
|
|
|
'''print progress'''
|
|
|
|
'''print progress'''
|
|
|
|
|
|
|
|
string = _fix_badchars(string)
|
|
|
|
sys.stderr.write('{}\r'.format(string))
|
|
|
|
sys.stderr.write('{}\r'.format(string))
|
|
|
|
sys.stderr.flush()
|
|
|
|
sys.stderr.flush()
|
|
|
|
|
|
|
|
|
|
|
|
def bold(string):
|
|
|
|
def bold(string):
|
|
|
|
'''make it bold'''
|
|
|
|
'''make it bold'''
|
|
|
|
|
|
|
|
string = _fix_badchars(string)
|
|
|
|
return '{}{}{}'.format(Logger.BOLD, string, Logger.RESET)
|
|
|
|
return '{}{}{}'.format(Logger.BOLD, string, Logger.RESET)
|
|
|
|
|
|
|
|
|
|
|
|
def flog(path, string, append=True):
|
|
|
|
def flog(path, string, append=True):
|
|
|
|
|
|
|
|
string = _fix_badchars(string)
|
|
|
|
mode = 'w'
|
|
|
|
mode = 'w'
|
|
|
|
if append:
|
|
|
|
if append:
|
|
|
|
mode = 'a'
|
|
|
|
mode = 'a'
|
|
|
|
with open(path, mode) as f:
|
|
|
|
with open(path, mode) as f:
|
|
|
|
f.write(string)
|
|
|
|
f.write(string)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def _fix_badchars(line):
|
|
|
|
|
|
|
|
return line.encode('utf-8', 'ignore').decode('utf-8')
|
|
|
|