A PyQT GUI application for converting InfoLease report outputs into Excel files. Handles parsing and summarizing. Learns where files are meant to be store and compiles monthly and yearly summaries.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
InfoLeaseExtract/venv/Lib/site-packages/numpy/distutils/log.py

111 lines
2.8 KiB

# Colored log
import sys
from distutils.log import * # noqa: F403
from distutils.log import Log as old_Log
from distutils.log import _global_log
from numpy.distutils.misc_util import (red_text, default_text, cyan_text,
green_text, is_sequence, is_string)
def _fix_args(args,flag=1):
if is_string(args):
return args.replace('%', '%%')
if flag and is_sequence(args):
return tuple([_fix_args(a, flag=0) for a in args])
return args
class Log(old_Log):
def _log(self, level, msg, args):
if level >= self.threshold:
if args:
msg = msg % _fix_args(args)
if 0:
if msg.startswith('copying ') and msg.find(' -> ') != -1:
return
if msg.startswith('byte-compiling '):
return
print(_global_color_map[level](msg))
sys.stdout.flush()
def good(self, msg, *args):
"""
If we log WARN messages, log this message as a 'nice' anti-warn
message.
"""
if WARN >= self.threshold:
if args:
print(green_text(msg % _fix_args(args)))
else:
print(green_text(msg))
sys.stdout.flush()
_global_log.__class__ = Log
good = _global_log.good
def set_threshold(level, force=False):
prev_level = _global_log.threshold
if prev_level > DEBUG or force:
# If we're running at DEBUG, don't change the threshold, as there's
# likely a good reason why we're running at this level.
_global_log.threshold = level
if level <= DEBUG:
info('set_threshold: setting threshold to DEBUG level,'
' it can be changed only with force argument')
else:
info('set_threshold: not changing threshold from DEBUG level'
' %s to %s' % (prev_level, level))
return prev_level
def get_threshold():
return _global_log.threshold
def set_verbosity(v, force=False):
prev_level = _global_log.threshold
if v < 0:
set_threshold(ERROR, force)
elif v == 0:
set_threshold(WARN, force)
elif v == 1:
set_threshold(INFO, force)
elif v >= 2:
set_threshold(DEBUG, force)
return {FATAL:-2,ERROR:-1,WARN:0,INFO:1,DEBUG:2}.get(prev_level, 1)
_global_color_map = {
DEBUG:cyan_text,
INFO:default_text,
WARN:red_text,
ERROR:red_text,
FATAL:red_text
}
# don't use INFO,.. flags in set_verbosity, these flags are for set_threshold.
set_verbosity(0, force=True)
_error = error
_warn = warn
_info = info
_debug = debug
def error(msg, *a, **kw):
_error(f"ERROR: {msg}", *a, **kw)
def warn(msg, *a, **kw):
_warn(f"WARN: {msg}", *a, **kw)
def info(msg, *a, **kw):
_info(f"INFO: {msg}", *a, **kw)
def debug(msg, *a, **kw):
_debug(f"DEBUG: {msg}", *a, **kw)