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(s)
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 demo.py.

https://content.screencast.com/users/jonathaneunice/folders/Jing/media/8db64be2-01cc-4da4-b46a-789c53c63b44/00000569.png

Project details


Download files

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

Source Distribution

ansiwrap-0.8.3.zip (17.1 kB view details)

Uploaded Source

Built Distribution

ansiwrap-0.8.3-py2.py3-none-any.whl (8.5 kB view details)

Uploaded Python 2Python 3

File details

Details for the file ansiwrap-0.8.3.zip.

File metadata

  • Download URL: ansiwrap-0.8.3.zip
  • Upload date:
  • Size: 17.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for ansiwrap-0.8.3.zip
Algorithm Hash digest
SHA256 f56a4af84f7a8200296ae0e7f0c0cd24d54eb3eab9d37f689e1b92eed6b58d7f
MD5 2e7b2fe855c8b224e69a925fd5eb5a9d
BLAKE2b-256 8e0168e0f5040b6fb85944f83963ea1fcf78c67eee50a4b37cbe858514ce6a58

See more details on using hashes here.

File details

Details for the file ansiwrap-0.8.3-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for ansiwrap-0.8.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 df6c85f5e6d40d81c2894337a75fe05fec88b3c6189f3946fad89ec7bff36253
MD5 9f26550a280a0e7437806017b6e1d2fc
BLAKE2b-256 e799aa9e375148c9a03bc7d76eb60993eaf2a04fcaf804f3547c4ca6bdeaef28

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page