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 (propagates 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.4.zip (17.7 kB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 2 Python 3

File details

Details for the file ansiwrap-0.8.4.zip.

File metadata

  • Download URL: ansiwrap-0.8.4.zip
  • Upload date:
  • Size: 17.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Python-urllib/3.6

File hashes

Hashes for ansiwrap-0.8.4.zip
Algorithm Hash digest
SHA256 ca0c740734cde59bf919f8ff2c386f74f9a369818cdc60efe94893d01ea8d9b7
MD5 0e24741bda593b7bd2162c3e3bd3b8ba
BLAKE2b-256 7c452616341cfcace37d4619d5106a85fcc24f2170d1a161bc5f7fdb81772fbc

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ansiwrap-0.8.4-py2.py3-none-any.whl
  • Upload date:
  • Size: 8.5 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Python-urllib/3.6

File hashes

Hashes for ansiwrap-0.8.4-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 7b053567c88e1ad9eed030d3ac41b722125e4c1271c8a99ade797faff1f49fb1
MD5 3b2aabe86f0810057147c2f7f5deb1db
BLAKE2b-256 035043e775a63e0d632d9be3b3fa1c9b2cbaf3b7870d203655710a3426f47c26

See more details on using hashes here.

Supported by

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