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.
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.ymlfor 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 standardtextwrapcode 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.