Spaces:
Runtime error
Runtime error
"""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 |