Skip to main content

Clean single-source support for Python 3 and 2

Project description

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

See: http://python-future.org

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
future-0.10.2.tar.gz (278.0 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page