/termcolor

ANSII Color formatting for output in terminal

Primary LanguagePythonMIT LicenseMIT

termcolor

PyPI version Supported Python versions PyPI downloads GitHub Actions status Codecov Licence Code style: Black Tidelift

Installation

From PyPI

python3 -m pip install --upgrade termcolor

From source

git clone https://github.com/termcolor/termcolor
cd termcolor
python3 -m pip install .

Demo

To see demo output, run:

python3 -m termcolor

Example

import sys

from termcolor import colored, cprint

text = colored("Hello, World!", "red", attrs=["reverse", "blink"])
print(text)
cprint("Hello, World!", "green", "on_red")

print_red_on_cyan = lambda x: cprint(x, "red", "on_cyan")
print_red_on_cyan("Hello, World!")
print_red_on_cyan("Hello, Universe!")

for i in range(10):
    cprint(i, "magenta", end=" ")

cprint("Attention!", "red", attrs=["bold"], file=sys.stderr)

Text properties

Text colors Text highlights Attributes
black on_black bold
red on_red dark
green on_green underline
yellow on_yellow blink
blue on_blue reverse
magenta on_magenta concealed
cyan on_cyan strike
white on_white
light_grey on_light_grey
dark_grey on_dark_grey
light_red on_light_red
light_green on_light_green
light_yellow on_light_yellow
light_blue on_light_blue
light_magenta on_light_magenta
light_cyan on_light_cyan

Terminal properties

Terminal bold dark underline blink reverse concealed
xterm yes no yes bold yes yes
linux yes yes bold yes yes no
rxvt yes no yes bold/black yes no
dtterm yes yes yes reverse yes yes
teraterm reverse no yes rev/red yes no
aixterm normal no yes no yes yes
PuTTY color no yes no yes no
Windows no no no no yes no
Cygwin SSH yes no color color color yes
Mac Terminal yes no yes yes yes yes

Overrides

Terminal colour detection can be disabled or enabled in several ways.

In order of precedence:

  1. Calling colored or cprint with a truthy no_color disables colour.
  2. Calling colored or cprint with a truthy force_color forces colour.
  3. Setting the ANSI_COLORS_DISABLED environment variable to any value disables colour.
  4. Setting the NO_COLOR environment variable to any value disables colour.
  5. Setting the FORCE_COLOR environment variable to any value forces colour.
  6. Setting the TERM environment variable to dumb, or using such a dumb terminal, disables colour.
  7. Finally, termcolor will attempt to detect whether the terminal supports colour.