painter
painter copied to clipboard
Your own expressive painter who colors text in your terminal.
Painter
|Build Status| |Coverage Status| |License| |Latest Version|
.. |Build Status| image:: https://travis-ci.org/fgimian/painter.svg?branch=master :target: https://travis-ci.org/fgimian/painter .. |Coverage Status| image:: https://codecov.io/gh/fgimian/painter/branch/master/graph/badge.svg :target: https://codecov.io/gh/fgimian/painter .. |License| image:: https://img.shields.io/badge/license-MIT-blue.svg :target: https://github.com/fgimian/painter/blob/master/LICENSE .. |Latest Version| image:: https://img.shields.io/pypi/v/painter.svg :target: https://pypi.python.org/pypi/painter/
.. image:: https://raw.githubusercontent.com/fgimian/painter/master/images/painter-logo.png :alt: Painter Logo
Artwork courtesy of Open Clip Art Library <http://openclipart.org/detail/174634/painter-penguin-by-moini-174634>
_
Introduction
Painter is an ANSI coloring library based on the excellent
chalk <https://github.com/sindresorhus/chalk>
_ and
colors.js <https://github.com/marak/colors.js/>
_ libraries for
Node.js. However, painter attempts to provide an even more expressive
API which reads like English.
Painter is fully tested with 100% coverage and also completely Flake8 compliant too!
Quick Start
Install Painter in your virtualenv as follows:
.. code:: bash
pip install painter
And now, go ahead and use it to output colors to your terminal:
.. code:: python
from __future__ import print_function
from painter import paint
# Simple printing of colors
print('Welcome to Painter!', paint.red('I can paint things red'),
paint.blue('and blue'))
# Chaining colors and styles
print(paint.blue.on_red.bold.underline('and far more complex combos too'))
print()
# Using color patterns
print(paint.rainbow('Awww look, a pretty rainbow :)'))
print(paint.zebra('and a scary looking zebra!'))
print()
# Nested painting
print(paint.on_red('I can also use a background color across',
paint.blue('multiple'),
paint.yellow('foreground colors')))
# Custom separator
print(paint('and', 'allow', 'you to use', paint.red('custom separators'),
sep='-'))
print()
# Creating themes
cool_theme = paint.green.on_red.underline.bold
print('Creating', cool_theme('your own theme'), 'is easy')
# Easily disable painting of colors
paint.enabled = False
print('and I allow you to easily', paint.red('disable'), paint.blue('me'))
print()
paint.enabled = True
print('Hope you have a', paint.blue('lovely day!'), paint.green(':)'))
The output of the script above looks something like this:
.. image:: https://raw.githubusercontent.com/fgimian/painter/master/images/painter-demo.png :alt: Painter Demo
Documentation
Please check out the Painter Usage documentation <https://github.com/fgimian/painter/blob/master/USAGE.rst/>
_.
Running Tests
You may run the unit tests as follows:
.. code:: bash
git clone https://github.com/fgimian/painter.git
cd painter
python setup.py test
You may validate Flake8 compatibility as follows:
.. code:: bash
python setup.py flake8
License
Painter is released under the MIT license. Please see the
LICENSE <https://github.com/fgimian/painter/blob/master/LICENSE>
_
file for more details.