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.
Notable projects that use future for Python 2/3 compatibility are Mezzanine and xlwt-future.
It is designed to be used as follows:
from __future__ import (absolute_import, division,
print_function, unicode_literals)
from future import standard_library
from future.builtins import * # or explicit imports: str, int, bytes,
# open, super, range, zip, input, etc.
followed by predominantly standard, idiomatic Python 3 code that then runs similarly on Python 2.6/2.7 and Python 3.3+.
On Python 3, the import lines have zero effect (and zero namespace pollution).
On Python 2, from future import standard_library installs import hooks to allow renamed and moved standard library modules to be imported from their new Py3 locations. On Python 2, the from future.builtins import * line shadows all builtins with different behaviour in Python 3 versus 2 to provide their Python 3 semantics.
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
Also see the docstrings for each of these modules for more info:
- future.standard_library - future.builtins - future.utils
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-2014 Python Charmers Pty Ltd, Australia. The software is distributed under an MIT licence. See LICENSE.txt.
Metadata
Release files for future 0.10.2
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-0.10.2.tar.gz | 278.0 kB | Details |
Release files / future-0.10.2.tar.gz
| Download URL | future-0.10.2.tar.gz |
|---|---|
| Size | 278.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
36dddb829d358fcb4368e0b73cfcefda3c7a8eceb01323f0f9ef4d83b13f666b
|
|
BLAKE2b-256 checksum How to use checksums |
4b26efbffa48a3ddd910c039b62fdc1b619f1e995eeff46a895ac14f7accafb8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |