python-terminal-color

Drop-in single file library for printing color in terminal

MIT License

Stars
71
Committers
1

Python Terminal Color

.. image:: 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:

.. code:: python

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.