skillfed

future

Clean single-source support for Python 3 and 2

future Permissive license MIT Active 1,189 v1.0.0 released

Install

future on PyPI

pip

pip install future

uv

uv add future

poetry

poetry add future

Package 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

Development Status :: 6 - MatureIntended Audience :: DevelopersLicense :: OSI ApprovedLicense :: OSI Approved :: MIT LicenseProgramming Language :: PythonProgramming Language :: Python :: 2Programming Language :: Python :: 2.6Programming Language :: Python :: 2.7Programming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.3Programming Language :: Python :: 3.4Programming Language :: Python :: 3.5Programming Language :: Python :: 3.6Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9

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.
python 2 3 compatibilitypython 2 to 3 migrationcross-version python codepython 3 backportsfuturize code conversionpython 2 7 support layerunified python codebase

Similar packages