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 with Py3 names provided on Py2: >>> import html.parser >>> import queue >>> import tkinter.dialog >>> import xmlrpc.client >>> # etc.>>> # Aliases provided for extensions to existing Py2 module names: >>> from future.standard_library import install_aliases >>> install_aliases()>>> from collections import Counter, OrderedDict # backported to Py2.6 >>> from collections import UserDict, UserList, UserString >>> import urllib.request >>> from itertools import filterfalse, zip_longest >>> from subprocess import getoutput, getstatusoutput
Automatic conversion
An included script called futurize aids in converting code (from either Python 2 or Python 3) to code compatible with both platforms. It is similar to python-modernize but goes further in providing Python 3 compatibility through the use of the backported types and builtin functions in future.
Documentation
Credits
- Author:
Ed Schofield, Jordan M. Adler, et al
- Sponsor:
Python Charmers: https://pythoncharmers.com
- Others:
See docs/credits.rst or https://python-future.org/credits.html
Licensing
Copyright 2013-2024 Python Charmers, Australia. The software is distributed under an MIT licence. See LICENSE.txt.
Release files for future 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| future-1.0.0.tar.gz | 1.2 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| future-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.7 MB
Release files / future-1.0.0.tar.gz
| Download URL | future-1.0.0.tar.gz |
|---|---|
| Size | 1.2 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
bd2968309307861edae1458a4f8a4f3598c03be43b97521076aebf5d94c07b05
|
|
BLAKE2b-256 checksum How to use checksums |
a7b24140c69c6a66432916b26158687e821ba631a4c9273c474343badf84d3ba
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.11.7
|
Release files / future-1.0.0-py3-none-any.whl
| Download URL | future-1.0.0-py3-none-any.whl |
|---|---|
| Size | 491.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
929292d34f5872e70396626ef385ec22355a1fae8ad29e1a734c3e43f9fbc216
|
|
BLAKE2b-256 checksum How to use checksums |
da71ae30dadffc90b9006d77af76b393cb9dfbfc9629f339fc1574a1c52e6806
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.11.7
|