Skip to main content

future: Easy, safe support for Python 2/3 compatibility

future is a comprehensive new 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.

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:
  • The backported super() and range() functions are derived from Ryan Kelly’s magicsuper module and Dan Crosta’s xrange module.

  • The futurize script uses lib2to3 and fixers from Joe Amenta’s lib3to2 and Armin Ronacher’s python-modernize.

  • The python_2_unicode_compatible decorator is from Django. The implements_iterator and with_metaclass decorators are from Jinja2.

  • Documentation is generated using sphinx and styled using sphinx-bootstrap-theme.

Licensing

Copyright 2013 Python Charmers Pty Ltd, Australia. The software is distributed under an MIT licence. See LICENSE.txt.

Metadata

Release files for future 0.9.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for future 0.9.0
File Size Uploaded
future-0.9.0.tar.gz 267.9 kB Details

Release files / future-0.9.0.tar.gz

Download URL future-0.9.0.tar.gz
Size 267.9 kB
Tags Source
SHA-256 checksum
How to use checksums
78d83fd71340d0f443bda0f4ee088dc1aa273154c0a2d9103fb7a1924256ac85
BLAKE2b-256 checksum
How to use checksums
f7190a60b692f34dae382bff5ca243dd5727b0205d8ee7ace62dee8348e5751e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

1.0.0

2 release files

0.18.3

1 release file

0.18.2

1 release file

0.18.1

1 release file

0.18.0

3 release files

0.17.1

1 release file

0.17.0

1 release file

0.16.0

1 release file

0.15.2

1 release file

0.15.1

1 release file

0.15.0

1 release file

0.14.3

1 release file

0.14.2

1 release file

0.14.1

1 release file

0.14.0

1 release file

0.13.1

1 release file

0.13.0

1 release file

0.12.4

1 release file

0.12.3

1 release file

0.12.2

1 release file

0.12.1

1 release file

0.12.0

1 release file

0.11.4

1 release file

0.11.3

1 release file

0.11.2

1 release file

0.11.1

1 release file

0.11.0

1 release file

0.10.2

1 release file

0.10.1

1 release file

0.10.0

1 release file

This release

0.9.0 This release

1 release file

0.8.2

1 release file

0.8.1

1 release file

0.8.0

1 release file

0.7.0

1 release file

0.6.0

1 release file

0.5.2

1 release file

0.5.1

1 release file

0.5.0

1 release file

0.4.1

1 release file

0.4.0

1 release file

0.3.5

1 release file

0.3.4

1 release file

0.3.3

1 release file

0.3.2

1 release file

0.3.1

1 release file

0.3.0

1 release file

0.2.0

1 release file

0.1.0

1 release file

0.0.3

1 release file

0.0.2

1 release file

0.0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page