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
- Sponsor:
Python Charmers Pty Ltd, Australia, and Python Charmers Pte Ltd, Singapore. http://pythoncharmers.com
- Others:
See docs/credits.rst or http://python-future.org/credits.html
Licensing
Copyright 2013-2018 Python Charmers Pty Ltd, Australia. The software is distributed under an MIT licence. See LICENSE.txt.
Release files for future-nodefix 0.17.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-nodefix-0.17.0.tar.gz | 826.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| future_nodefix-0.17.0-py2.py3-none-any.whl | Python 3, Python 2 | none | any | Details |
Total release size: 1.3 MB
Release files / future-nodefix-0.17.0.tar.gz
| Download URL | future-nodefix-0.17.0.tar.gz |
|---|---|
| Size | 826.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
66404d64aef899cd2e5548b2b52779afec7496905bae0adac78aab26780ed67f
|
|
BLAKE2b-256 checksum How to use checksums |
8212a8ae214840aecb7668e23febffa58c18a4923e64a62c8d33d394ffdfdaba
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.0
|
Release files / future_nodefix-0.17.0-py2.py3-none-any.whl
| Download URL | future_nodefix-0.17.0-py2.py3-none-any.whl |
|---|---|
| Size | 488.7 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
1e7c6fc8b2532e94fdc60bcfbcc765e36b1ba66e399cfa4960665a776a03fc97
|
|
BLAKE2b-256 checksum How to use checksums |
c83efd738d88f5bb5f96cac6fb4e110175549ef9f775604ebdf62f31dce0c086
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.0
|