From d5a2383b75e2ddff926631b98e92145817451143 Mon Sep 17 00:00:00 2001 From: allegroai <> Date: Tue, 9 Jul 2019 03:05:33 +0300 Subject: [PATCH] Removed colorama / coloredlogs, they are now optional packages dynamically loaded --- requirements.txt | 2 -- trains/debugging/log.py | 19 ++++++++++++++----- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/requirements.txt b/requirements.txt index 161f5207..b44af587 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,8 +3,6 @@ attrs>=18.0 backports.functools-lru-cache>=1.0.2 ; python_version < '3' boto3>=1.9 botocore>=1.12 -colorama>=0.4.1 -coloredlogs>=10.0 enum34>=0.9 ; python_version < '3.6' funcsigs>=1.0 furl>=2.0.0 diff --git a/trains/debugging/log.py b/trains/debugging/log.py index 89651dc0..6d83c698 100644 --- a/trains/debugging/log.py +++ b/trains/debugging/log.py @@ -6,9 +6,7 @@ import os import sys from platform import system -import colorama from ..config import config, get_log_redirect_level -from coloredlogs import ColoredFormatter from pathlib2 import Path from six import BytesIO from tqdm import tqdm @@ -34,11 +32,22 @@ class LoggerRoot(object): def _make_stream_handler(cls, level=None, stream=sys.stdout, colored=False): ch = logging.StreamHandler(stream=stream) ch.setLevel(level) + formatter = None + + # if colored, try to import colorama & coloredlogs (by default, not in the requirements) if colored: - colorama.init() - formatter = ColoredFormatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') - else: + try: + import colorama + from coloredlogs import ColoredFormatter + colorama.init() + formatter = ColoredFormatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') + except ImportError: + colored = False + + # if we don't need or failed getting colored formatter + if not colored or not formatter: formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') + ch.setFormatter(formatter) return ch