Skip to content
Drop-in single file library for printing color in terminal
Python Makefile
Branch: master
Clone or download
reorx Merge branch 'py3'
* py3:
  add mypy and fix typing errors
  update readme
  remove unicode, use py3 only string/bytes rules
  add color_compat for python 2/3 compatible version
  add tox.ini
  fix test cases
  enhance GRAYSCALE and GRAYSCALE_POINTS definition
  convert print to function call
  add text and bytes helpers
Latest commit ea82b6a Nov 4, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
test fix test cases Nov 4, 2019
.gitignore add mypy and fix typing errors Nov 4, 2019
LICENSE Create LICENSE Nov 4, 2019
Makefile add makefile Aug 29, 2016
README.rst
color.py add mypy and fix typing errors Nov 4, 2019
color_compat.py add color_compat for python 2/3 compatible version Nov 4, 2019
color_simple.py
conftest.py add color_compat for python 2/3 compatible version Nov 4, 2019
dev-requirements.txt add mypy and fix typing errors Nov 4, 2019
screenshot.png
tox.ini

README.rst

Python Terminal Color

screenshot.png

Introduction

  1. This is a drop-in library for print colorized output in terminal.
  2. It has no pypi package, which means you can't install it through pip.
  3. It is recommended to be used as a submodule of your own project, so that no dependency will be involved.
  4. color.py is Python 3 only and recommended to choose; color_compat.py is Python 2/3 compatible, only use it if you still struggle in the Python 2 morass.

Usage

Copy the color.py file to your project, then:

from yourproject import color

# 8 bit color
print(color.red('red') + color.green('green') + color.blue('blue'))
print(color.bold(color.yellow('bold yellow')) + color.underline(color.cyan('underline cyan')))
print(color.magenta_hl('magenta highlight'))

# xterm 256 color
print(color.bg256('A9D5DE', color.fg256('276F86', 'Info!')))
print(color.bg256('E0B4B4', color.fg256('912D2B', 'Warning!')))
print(color.hl256('10a3a3', 'Teal'))

Note:

  1. Every color function receives and returns string, so that the result could be used with any other strings, in any string formatting situation.
  2. If you pass a str type string, the color function will return a str. If you pass a bytes type string, the color function will return a bytes.
  3. Color functions could be composed together, like put red into bold, or put bg256 into fg256. xxx_hl and hl256 are mostly used independently.

API

function <color_function>(s)

Decorate string with specified color.

color_function is one of below function names:

Colors Background Highlight
black black_bg black_hl
red red_bg red_hl
green green_bg green_hl
yellow yellow_bg yellow_hl
blue blue_bg blue_hl
magenta magenta_bg magenta_hl
cyan cyan_bg cyan_hl
white white_bg white_hl

A color function with _bg suffix means it will set color as background. A color function with _hl suffix means it will set color as background, and change the foreground as well to make the word standout.

Parameters:

param str s:The input string
return:The decorated string
rtype:string
raises ValueError:if the message_body exceeds 160 characters

function <style_function>(s)

Decorate string with specified style.

style_function is one of below function names:

  • bold
  • italic
  • underline
  • strike
  • blink

Arguments and return are the same as color_function.

function <256_color_function>(hexrgb, s)

Decorate string with specified hex rgb color

256_color_function is one of below function names:

  • fg256: will set color as foreground.
  • bg256: will set color as background.
  • hl256: will highlight input with the color.

Parameters:

param str hexrgb:The hex rgb color string, accept length 3 and 6. eg: 555, 912D2B
param str s:The input string
return:The decorated string
rtype:string
raises ValueError:If the input string's length not equal to 3 or 6.
You can’t perform that action at this time.