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.1.zip (16.0 kB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 2Python 3

File details

Details for the file ansiwrap-0.8.1.zip.

File metadata

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

File hashes

Hashes for ansiwrap-0.8.1.zip
Algorithm Hash digest
SHA256 0960bcdcca0eaf892cfbd1a395d6726ad2905620817f98f0d3e84becb1303253
MD5 f79979e8cb9d2a5a9e73ce87fb7c770e
BLAKE2b-256 2e2a91107bff43039054232cc3809ed0a69ae973a7c81a5cf34fb27bdc0166ba

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ansiwrap-0.8.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 3884bff160664b6419d81aec536e3735e520703e11863d2ce04d8a7e1d980039
MD5 3b4ce0d545a3c335648da0db4eda4b1b
BLAKE2b-256 373f99af02f67caeb7d63fb1c941c420af8f203d965c3cb1d824fc2c8f61c9e6

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