Обычное правило для приложений, поддерживающих окраску консоли, - это активировать его, когда текущая консоль является TTY.Как обнаружить псевдо-консоль в Python, чтобы активировать раскраску?
Этот метод ломается на серверах непрерывной интеграции (таких как Jenkins, Travis, ...), потому что они не открывают TTY для своей псевдо-консоли.
мне интересно, если можно провести различие между этими двумя случаями:
mycommand
пробег под Дженкинс - мы хотим, чтобы включить красящиеmycommand >> output.log
- мы не хотим, чтобы в конечном итоге с ANSI экранирует файл журнала.
Мой старый ANSI код обнаружения:
import sys
import os
if (hasattr(sys.stderr, "isatty") and sys.stderr.isatty()) or \
('TERM' in os.environ.keys() and os.environ['TERM'] in ['linux']) or \
('PYCHARM_HOSTED' in os.environ.keys()):
coloring = True
Могу ли я улучшить это для того, чтобы решить эту проблему?