ansicolor
Python version support: CPython 2.7, 3.2+.
Introduction
ansicolor
is a library that makes it easy to use ansi color markup in command
line programs.
Installation
$ pip install ansicolor
You can also download tarballs from Github.
Documentation
Read the documentation on Read the Docs!
Going further
Take a look at the demos
to see what's possible.
$ python -m ansicolor.demos --color
$ python -m ansicolor.demos --highlight
$ python -m ansicolor.demos --diff
Maintenance tasks
Setting up a development environment (Ubuntu)
# if you don't have `mkvirtualenv` & `workon` functions in your shell
$ sudo apt install virtualenvwrapper
# creating the virtual env the first time
$ mkvirtualenv ansicolor
(ansicolor) $ pip install -r dev-requirements.txt
# re-activating the virtual env next time
$ workon ansicolor
All the steps below assume you have an activated virtual env (even though the
(ansicolor)
prompt is not shown).
Running unit tests
$ py.test
Measuring code coverage
$ py.test --cov=ansicolor.ansicolor
$ coverage html
# open htmlcov/index.html in the browser
Running all possible tests under tox
We use tox
to run both the unit tests and the demos under several different
Python interpreter versions. Depending on which interpreters you have installed
(this is managed system-wide and not covered in this README) tox
will most
likely give you a partial success.
# to run against all interpreters
$ tox
# to run only against selected interpreters
$ tox -e py27,py38
Checking code style
$ flake8 ansicolor
Re-formatting code
$ black ansicolor tests
Release a new version
- Before starting work on a change/fix/whatever, make sure there is no
unfinished work on
develop
and mergemaster
intodevelop
. - Make all the changes on
develop
.
Quality assurance (see steps above for how to):
- Make sure all tests are passing.
- Make sure test coverage has not declined.
- Make sure
tox
run succeeds on all (installed) interpreters. - Make sure
flake8
checker passes. - Make sure
black
formatter has no changes to make.
Doc updates:
- Update
docs/src/changes.rst
.
Doing a release:
- Bump version in
ansicolor/__init__.py
. - Git tag the new version and push the tag. This allows users/packagers to download an auto-generated zip/tarball of the tagged release from Github.
python setup.py sdist
python setup.py bdist_wheel
twine upload dist/*
Finally:
- Merge
develop
intomaster
.
Post-release verification:
-
pip install -U ansicolor
from PyPI and use a tool that uses it.