You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by po...@apache.org on 2020/06/20 16:53:08 UTC

[airflow] 09/25: Correctly restore colour in logs after format arg (#9222)

This is an automated email from the ASF dual-hosted git repository.

potiuk pushed a commit to branch v1-10-test
in repository https://gitbox.apache.org/repos/asf/airflow.git

commit 879b95f7a74146b5f79df6d2a0a5b9df639ce32f
Author: Ash Berlin-Taylor <as...@firemirror.com>
AuthorDate: Thu Jun 11 11:50:33 2020 +0100

    Correctly restore colour in logs after format arg (#9222)
    
    The "\e[22m" escape sequence has been tested on Konsole, iTerm2 and
    Terminal.app
    
    (cherry picked from commit bfe1d6b1aafc757f821ceb077e6b882ff1363357)
---
 airflow/utils/log/colored_log.py | 13 ++++++++-----
 setup.py                         |  1 -
 2 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/airflow/utils/log/colored_log.py b/airflow/utils/log/colored_log.py
index a89e779..8f92d80 100644
--- a/airflow/utils/log/colored_log.py
+++ b/airflow/utils/log/colored_log.py
@@ -23,9 +23,7 @@ import re
 import sys
 
 from colorlog import TTYColoredFormatter
-from termcolor import colored
-
-ARGS = {"attrs": ["bold"]}
+from colorlog.escape_codes import esc, escape_codes
 
 DEFAULT_COLORS = {
     "DEBUG": "red",
@@ -35,6 +33,9 @@ DEFAULT_COLORS = {
     "CRITICAL": "red",
 }
 
+BOLD_ON = escape_codes['bold']
+BOLD_OFF = esc('22')
+
 
 class CustomTTYColoredFormatter(TTYColoredFormatter):
     """
@@ -52,7 +53,7 @@ class CustomTTYColoredFormatter(TTYColoredFormatter):
         if isinstance(arg, (int, float)):
             # In case of %d or %f formatting
             return arg
-        return colored(str(arg), **ARGS)  # type: ignore
+        return BOLD_ON + str(arg) + BOLD_OFF
 
     @staticmethod
     def _count_number_of_arguments_in_message(record):
@@ -83,7 +84,9 @@ class CustomTTYColoredFormatter(TTYColoredFormatter):
                 record.exc_text = self.formatException(record.exc_info)
 
             if record.exc_text:
-                record.exc_text = colored(record.exc_text, DEFAULT_COLORS["ERROR"])
+                record.exc_text = self.color(self.log_colors, record.levelname) + \
+                    record.exc_text + escape_codes['reset']
+
         return record
 
     def format(self, record):
diff --git a/setup.py b/setup.py
index 9f05da9..61339e7 100644
--- a/setup.py
+++ b/setup.py
@@ -586,7 +586,6 @@ INSTALL_REQUIREMENTS = [
     'sqlalchemy_jsonfield~=0.9;python_version>="3.5"',
     'tabulate>=0.7.5, <0.9',
     'tenacity==4.12.0',
-    'termcolor==1.1.0',
     'thrift>=0.9.2',
     'typing;python_version<"3.5"',
     'typing-extensions>=3.7.4;python_version<"3.8"',