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.2.zip (16.3 kB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 2Python 3

File details

Details for the file ansiwrap-0.8.2.zip.

File metadata

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

File hashes

Hashes for ansiwrap-0.8.2.zip
Algorithm Hash digest
SHA256 4da29ddc222c3e09d4d7a7f3ef7d77c276bb470096bae116628c2e5d442b95d4
MD5 bed36e9c5936f6fc28b8f30dab3dfc84
BLAKE2b-256 dd57ae2ed3d0270397a049d1bae1032b10da37d8831d844095344cb79acd8f9f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ansiwrap-0.8.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 ee4f2d6e1f9d23f0ebfe66526841cf47ce610fff949d99bcb2d59eb91fef2d65
MD5 36cc72a67940e7c8f78b385781b57e6a
BLAKE2b-256 6a35e4a46fd81abf937866388d98b352e72a52dc988a8f157a9ade54cb6c431e

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