:orphan: Source: bactoscoop/logging_utils.py =================================== .. raw:: html
 1import logging
    2import os
    3import sys
    4
    5from tqdm import tqdm
    6
    7
    8LOGGER_NAME = "logger"
    9LOG_FORMAT = "%(asctime)s [%(levelname)s] %(message)s"
   10
   11
   12def _resolve_log_level(level_name):
   13    return getattr(logging, str(level_name).upper(), logging.INFO)
   14
   15
   16def get_bactoscoop_logger():
   17    logger = logging.getLogger(LOGGER_NAME)
   18
   19    if not logger.handlers:
   20        handler = logging.StreamHandler(sys.stdout)
   21        handler.setFormatter(logging.Formatter(LOG_FORMAT))
   22        logger.addHandler(handler)
   23        logger.propagate = False
   24
   25    logger.setLevel(_resolve_log_level(os.environ.get("BACTOSCOOP_LOG_LEVEL", "INFO")))
   26    return logger
   27
   28
   29def configure_bactoscoop_logging(level="INFO"):
   30    os.environ["BACTOSCOOP_LOG_LEVEL"] = str(level).upper()
   31    logger = get_bactoscoop_logger()
   32    logger.setLevel(_resolve_log_level(level))
   33    return logger
   34
   35
   36def tqdm_if_verbose(iterable, **kwargs):
   37    kwargs.setdefault(
   38        "disable",
   39        not get_bactoscoop_logger().isEnabledFor(logging.INFO),
   40    )
   41    return tqdm(iterable, **kwargs)