Как надежно протестировать цветовые возможности выходного терминала в python3? - PullRequest
0 голосов
/ 01 декабря 2018

Я ищу способ надежно проверить, является ли выходной терминал ( stdout, stderr ) ANSI (или любым) цветным.

Поскольку большинство современных терминалов, даже в Windows, поддерживают по крайней мере цвета ANSI, все ответы, которые я нашел, либо устарели, либо неверны.(Я уже знаю, как просто распечатать цветовые тестовые шаблоны и проверить возможность Unicode / UTF-8 .)

Я видел частичные попытки и варианты этого:

Следует отметить, что это довольно легко сделать для среды на * nix, поскольку почти всегда для переменной TERM установлено значение xterm -типа.Но надеялся также найти некоторую переменную среды Windows для этого.

Q: Как мне получить мой код python3, чтобы проверить, использует ли вывод терминал или консоль с поддержкой цвета?

Ответ должен быть перекрестным-платформа совместима, например, возможность проверить это в Windows.


ОБНОВЛЕНИЕ:

Очевидно, что это не простая проблема!Кажется, это зависит от многих факторов, таких как:

  • Какая у вас версия ОС Windows
  • Какая у вас версия PowersHell
  • Что такое ваш "терминал / консоль"возможности?( poweshell, mintty, cmd все очень разные)
  • Какие шрифты используются в этих "консолях"?
  • Какие наборы символов вы используете?( ASCII, UTF-8/16 и т. Д.)
...