paul hilders
Add new version of demo for IEAI course
0241217
raw
history blame
1.63 kB
"""Utilities for logging"""
import logging
from tqdm import tqdm
from termcolor import colored
def color(string: str, color_name: str = 'yellow') -> str:
"""Returns colored string for output to terminal"""
return colored(string, color_name)
def print_update(message: str, width: int = 140, fillchar: str = ":", color="yellow") -> str:
"""Prints an update message
Args:
message (str): message
width (int): width of new update message
fillchar (str): character to be filled to L and R of message
Returns:
str: print-ready update message
"""
message = message.center(len(message) + 2, " ")
print(colored(message.center(width, fillchar), color))
def set_logger(log_path):
"""Set the logger to log info in terminal and file `log_path`.
Args:
log_path (str): path to the log file
"""
logger = logging.getLogger()
logger.setLevel(logging.INFO)
if not logger.handlers:
# Logging to a file
file_handler = logging.FileHandler(log_path)
file_handler.setFormatter(logging.Formatter('%(asctime)s:%(levelname)s: %(message)s'))
logger.addHandler(file_handler)
# Logging to console
stream_handler = logging.StreamHandler()
stream_handler.setFormatter(logging.Formatter('%(message)s'))
logger.addHandler(stream_handler)
def tqdm_iterator(items, desc=None, bar_format=None, **kwargs):
tqdm._instances.clear()
iterator = tqdm(
items,
desc=desc,
bar_format='{l_bar}{bar:10}{r_bar}{bar:-10b}',
**kwargs,
)
return iterator