future
Clean single-source support for Python 3 and 2
Install
future on PyPI
pip
pip install futureuv
uv add futurepoetry
poetry add futurePackage facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=2.6, !=3.0.*, !=3.1.*, !=3.2.*) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 904 days since the last release |
| Last repo commit | |
| First released | |
| Popularity | one of the top 1,000 most-downloaded packages on PyPI (30-day window, as of 2026-08-13) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-13) |
Evidence: future-1.0.0-py3-none-any.whl
Keywords: future, past, python3, migration, futurize, backport, six, 2to3, modernize, pasteurize, 3to2
About future
from the package's own PyPI description — quoted content, verbatim
future: Easy, safe support for Python 2/3 compatibility
future is the missing compatibility layer between Python 2 and Python
3. It allows you to use a single, clean Python 3.x-compatible codebase to
support both Python 2 and Python 3 with minimal overhead.
It is designed to be used as follows::
from __future__ import (absolute_import, division,
print_function, unicode_literals)
from builtins import (
bytes, dict, int, list, object, range, str,
ascii, chr, hex, input, next, oct, open,
pow, round, super,
filter, map, zip)
followed by predominantly standard, idiomatic Python 3 code that then runs similarly on Python 2.6/2.7 and Python 3.3+.
The imports have no effect on Python 3. On Python 2, they shadow the corresponding builtins, which normally have different semantics on Python 3 versus 2, to provide their Python 3 semantics.
Standard library reorganization ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
future supports the standard library reorganization (PEP 3108) through the
following Py3 interfaces:
>>> # Top-level packages...
Read as markdown · JSON record · Source repository · Homepage
AI interpretation — verify before relying
AI-generated interpretation of the package facts above; every digit, version, license, or vulnerability id it cites is grounded in the facts already shown on this page
Provides Python 3 compatibility shims and backported builtins to write single-source code that runs on both Python 2 and Python 3, plus a conversion tool (futurize) to aid migration.
Low friction: pure Python wheel with no runtime dependencies and active maintenance (last commit 2026-07-24). Mature status reflects stable, widely-adopted codebase.
MIT license (permissive) allows unrestricted use, modification, and distribution in both open-source and proprietary projects with minimal obligations.
Usage
pip install future==1.0.0
from __future__ import absolute_import, division, print_function, unicode_literals
from builtins import bytes, dict, int, list, str, range
# Write Python 3 code that runs on both Python 2.6+ and Python 3.3+
Python 2.6+ or Python 3.3+ required; Python 3.0–3.2 not supported (per requires_python).
Verdict: Stable, actively maintained compatibility layer with zero security vulnerabilities and no install friction. Suitable for projects needing to support both Python 2 and 3 from a single codebase, though Python 2 itself is end-of-life and this package is primarily valuable for legacy codebases or gradual migration scenarios.
Needs verification
- Whether Python 2 support remains practically necessary for new projects (Python 2 EOL was 2020).
- Performance overhead of compatibility shims compared to native Python 3 code.
Similar packages
permissive · top 1,000 on PyPI
argparsepermissive · top 1,000 on PyPI
sixpermissive · top 100 on PyPI
webcolorspermissive · top 1,000 on PyPI
webencodingspermissive · top 1,000 on PyPI
backports.zstdpermissive · top 1,000 on PyPI
backports.tarfilepermissive · top 1,000 on PyPI
isortpermissive · top 1,000 on PyPI
preshedpermissive · top 1,000 on PyPI
sortedcontainerspermissive · top 1,000 on PyPI