easycolor

Terminal colors made easy!


Keywords
color, colour, terminal, text, ansi
License
BSD-3-Clause
Install
pip install easycolor==0.1

Documentation

Python Easy Color

Color output in python2/3 made easy!

Description

Make python color ouput easy in UNIX terminals that support ANSI sequences.

Installation

pip install easycolor

Documentation

Check the documentation at: (http://easycolor.readthedocs.io/en/latest/) also available at: (https://georgetg.github.io/easycolor/)

Source Code

Check at github: (https://github.com/GeorgeTG/easycolor)

License

Copyright George T. Gougoudis 2016. BSD 3-Clause license; see LICENSE file.

Basic usage

To wrap text, the wrap function must be imported.

from easycolor.style import wrap as _w

The text is then wrapped as easy as

# wrap text, appends a style-reset
print(_w('yellow on red', fg='yellow', bg='red'))
print('normal text')

To compile a style, the make_style function is used:

from easycolor.style import make_style, RESET

Example:

# define some styles
black_on_white = make_style(fg='black', bg='white')
# we have to reset the background here
red_bold = make_style(fg='red', bg='reset', opt='bold')
# An options reset is only possible with a total reset
# we can however negate an option to remove it('!option').
green_bold_underline = make_style(fg='green', opt=('!bold', 'underline'))

print(black_on_white + 'Black on white' + red_bold + 'Red bold' +
      green_bold_underline + 'Green not bold underline' + RESET)

Note: For advanced formatting use the easycolor.parser module.

Advanced usage

First obtain an instance

from easycolor.parser import ColorParser
parser = ColorParser()

Then for printing

cprint = parser.cprint
# Add rainbow colors!
cprint("""<f:red>r<f:yellow>ai<f:green>nb<f:blue>o<f:magenta>w"""
       """</f>o</f>bn</f>ia</f>r</f>""")
# complex foreground - background
cprint("""<f:red,b:yellow>red on yellow</b>just red<b:black>red on black!"""
       """<f:green>green on black</f>again red on black</f,b>normal""")

Parse a format string for a colored logger, for later use

INFO = parser.parse("[<f:cyan>INFO</f>] <o:bold>{}")
print(INFO.format('Some info..'))