textwrap3
textwrap from Python 3.6 backport (plus a few tweaks)
Decision gist · record as of 2026-08-14
No. The package is abandoned (last release January 2019) and targets Python versions (2.6–3.7) that are end-of-life and no longer receive security updates. Modern Python projects should use the standard library textwrap directly. Only consider this if you are maintaining legacy code on unsupported Python versions and cannot upgrade—in that case, the low install friction and permissive license make it technically viable, but the lack of maintenance is a significant risk.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Low install friction with no runtime dependencies.
- However, the package is abandoned—last commit was 2019-01-23 and no releases in 2760 days.
- It targets Python versions (2.6, 2.7, 3.3–3.7) that are now end-of-life, making it unsuitable for modern projects.
License · maintenance · safety
permissive license (permissive) — Licensed under the Python Software Foundation License (permissive), which poses no restrictions on use or redistribution in most contexts.
last release 2019-01-23 (2760 days) · last repo commit 2019-01-23 · 5 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 1,313,048 downloads/mo, #4,071 on PyPI
Alternatives
Verify before relying
pip install textwrap3
from textwrap3 import wrap
text = 'long text here...'
print(wrap(text, 40))- Whether textwrap3's Unicode and em-dash handling differs meaningfully from modern Python's textwrap in current use.
- Whether any of the target Python versions (2.6–3.7) remain in active use in the reader's environment.
What it is and what it does
textwrap3 is a backport of Python 3.6's textwrap module designed to run on older Python versions, from 2.6 forward. It exposes newer APIs like shorten() and the max_lines parameter to codebases stuck on Python 2 or early Python 3 releases. The module is a near-direct copy of the standard library implementation, with one notable tweak: it treats Unicode em-dashes (U+2014) the same as ASCII em-dashes (--) when wrapping text, and it applies the re.UNICODE flag so that accented and non-ASCII characters are recognized as legitimate word characters.
Because the package is a compatibility shim for end-of-life Python versions, it is only relevant if you maintain legacy code that cannot upgrade to modern Python. The package itself is abandoned—no releases since January 2019—and the Python versions it targets are no longer supported by the Python community.
Use it for
- Wrap and fill text in Python 2.7 codebases using the same API as Python 3.6's textwrap.
- Handle Unicode text with accented characters and em-dashes correctly across Python 2 and early Python 3.
- Use the shorten() function in projects locked to Python 2.6–3.5 where the standard library lacks it.
- Maintain consistent text-wrapping behavior across a codebase that must support both Python 2 and Python 3.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
No.
The package is abandoned (last release January 2019) and targets Python versions (2.6–3.7) that are end-of-life and no longer receive security updates. Modern Python projects should use the standard library textwrap directly. Only consider this if you are maintaining legacy code on unsupported Python versions and cannot upgrade—in that case, the low install friction and permissive license make it technically viable, but the lack of maintenance is a significant risk.
Install
textwrap3 on PyPI
Before you install
Low install friction with no runtime dependencies. However, the package is abandoned—last commit was 2019-01-23 and no releases in 2760 days. It targets Python versions (2.6, 2.7, 3.3–3.7) that are now end-of-life, making it unsuitable for modern projects.
License in practice
Licensed under the Python Software Foundation License (permissive), which poses no restrictions on use or redistribution in most contexts.
Quickstart
pip install textwrap3
from textwrap3 import wrap
text = 'long text here...'
print(wrap(text, 40))
Verify before relying
- Whether textwrap3's Unicode and em-dash handling differs meaningfully from modern Python's textwrap in current use.
- Whether any of the target Python versions (2.6–3.7) remain in active use in the reader's environment.
Package facts
| License | permissive license permissive |
| Python support | Not specified |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Abandoned 2,760 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,313,048 / month, #4,071 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 4 - BetaIntended Audience :: DevelopersLicense :: OSI Approved :: Python Software Foundation LicenseOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 2Programming Language :: Python :: 2.6Programming Language :: Python :: 2.7Programming Language :: Python :: 3Programming Language :: Python :: 3.3Programming Language :: Python :: 3.4Programming Language :: Python :: 3.5Programming Language :: Python :: 3.6Programming Language :: Python :: 3.7Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPyTopic :: Software Development :: Libraries :: Python ModulesTopic :: Text ProcessingTopic :: Text Processing :: Filters |
Evidence: textwrap3-0.9.2-py2.py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “text wrapping python 2”
- textwrap3Backports Python 3.6's textwrap module to earlier Python versions,…
- ansiwrapWraps and formats text while correctly handling ANSI color and style…
- unicode-segmentation-rsProvides Unicode text segmentation (graphemes, words, sentences, line…
Give your agent the search over MCP, or paste the wish link into any chat.
More Python Modules packages
Converts domain names between Unicode and ASCII-compatible encoding (Punycode) according to IDNA 2008 and Unicode Technical Standard 46, with security validation and broader script coverage than the standard library.
Install it if you work with internationalized domain names, need to validate domains, or use HTTP clients that depend on it transitively.
Setuptools is a Python build backend and package management tool that handles building, distributing, and installing Python packages, including support for C/C++ extension modules.
PyYAML parses and emits YAML 1.1 data format, enabling serialization and deserialization of configuration files and Python objects to and from human-readable YAML text.
Pydantic validates Python data structures against type hints, coercing and checking input at runtime to ensure it matches a declared schema.
Provides reusable metadata objects for use with PEP-593 `typing.Annotated` to express common constraints like bounds, collection sizes, and predicates on types.
Install it if you use or build libraries that need to express type constraints in a standardized, inspectable way—or if you want to annotate your own types with…
Provides runtime tools to inspect and introspect Python type annotations, enabling programmatic examination of type hints at execution time.
See also ansiwrap · backports.csv · traceback2 · configparser2 · unicodedata2 · contextlib2 · HTMLParser · backports.shutil_get_terminal_size · zipfile36 · pickle5