Skip to main content

textwrap, but savvy to ANSI colors and styles

Project description

travisci PyPI Package latest release Supported versions Supported implementations Wheel packaging support Test line coverage

ansiwrap wraps text, like the standard textwrap module. But it also correctly wraps text that contains ANSI control sequences that colorize or style text.

Where textwrap is fooled by the raw string length of those control codes, ansiwrap is not; it understands that however much those codes affect color and display style, they have no logical length.

The API mirrors the wrap, fill, and shorten functions of textwrap. For example:

from __future__ import print_function
from colors import *     # ansicolors on PyPI
from ansiwrap import *

s = ' '.join([red('this string'),
              blue('is going on a bit long'),
              green('and may need to be'),
              color('shortened a bit', fg='purple')])

print('-- original string --')
print('-- now filled --')
print(fill(s, 20))
print('-- now shortened / truncated --')
print(shorten(s, 20, placeholder='...'))

It also exports several other functions:

  • ansilen (giving the effective length of a string, ignoring ANSI control codes)
  • ansi_terminate_lines (propogates control codes though a list of strings/lines and terminates each line.)
  • strip_color (removes ANSI control codes from a string)

See also the enclosed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
ansiwrap-0.8.3-py2.py3-none-any.whl (8.5 kB) Copy SHA256 hash SHA256 Wheel 3.6 (17.1 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page