Skip to main content

textwrap from Python 3.6 backport (plus a few tweaks)

Project description

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

textwrap3 is a compatibility back-port of Python 3.6’s textwrap module that supports Python 2.6 forward. (Though honestly, if you’re not already using at least 2.7, you’re way behind the times!)

This makes a few new APIs such as shorten and the max_lines parameter available in a compatible way to all Python versions typically in current use.

Import and use it like you would textwrap from the standard library:

from textwrap3 import wrap

text = 'long text here...'
print(wrap(text, 40))

The standard textwrap documentation is the best reference material.

Bias and Tweaks

By design, Python 3 sensibilities and expectations rule. Especially when processing text that includes Unicode characters, textwrap3’s results may differ a bit from those of the textwrap of the underlying Python version (esp. 2.x). In particular, textwrap3 uses the re.UNICODE flag so that non-ASCII characters such as accented letters are considered legitimate word characters.

It also adds one tweak, considering the Unicode em-dash ('\N{EM DASH}' or u'\u2014') identical to the simulated ASCII em-dash '--'.


  • See CHANGES.yml for the Change Log.
  • This module is almost entirely the work of Gregory P. Ward (textwrap’s original author) plus enhancements from the Python community. This separate packaging is just a delivery and compatibility vehicle. It contributes cross-Python version compatibility shims, a few additional tests, and better handling of real em-dashes. The vast majority of functionality still comes from the standard textwrap code base, as of the Python 3.6 release.


To install or upgrade to the latest version:

pip install -U textwrap3

You may need to prefix these with sudo to authorize installation. In environments without super-user privileges, you may want to use pip’s --user option, to install only for a single user, rather than system-wide. Depending on your system configuration, you may also need to use separate pip2 and pip3 programs to install for Python 2 and 3 respectively.

Download files

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

Source Distribution (25.0 kB view hashes)

Uploaded source

Built Distribution

textwrap3-0.9.2-py2.py3-none-any.whl (12.2 kB view hashes)

Uploaded 3 6

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page