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.

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

See: http://python-future.org

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.

Project details


Download files

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

Source Distribution

future-nodefix-0.17.0.tar.gz (826.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

future_nodefix-0.17.0-py2.py3-none-any.whl (488.7 kB view details)

Uploaded Python 2Python 3

File details

Details for the file future-nodefix-0.17.0.tar.gz.

File metadata

  • Download URL: future-nodefix-0.17.0.tar.gz
  • Upload date:
  • Size: 826.8 kB
  • Tags: Source
  • Uploaded using 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

File hashes

Hashes for future-nodefix-0.17.0.tar.gz
Algorithm Hash digest
SHA256 66404d64aef899cd2e5548b2b52779afec7496905bae0adac78aab26780ed67f
MD5 d49bc2d121d3d03ead7655d2cdfadc51
BLAKE2b-256 8212a8ae214840aecb7668e23febffa58c18a4923e64a62c8d33d394ffdfdaba

See more details on using hashes here.

File details

Details for the file future_nodefix-0.17.0-py2.py3-none-any.whl.

File metadata

  • Download URL: future_nodefix-0.17.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 488.7 kB
  • Tags: Python 2, Python 3
  • Uploaded using 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

File hashes

Hashes for future_nodefix-0.17.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 1e7c6fc8b2532e94fdc60bcfbcc765e36b1ba66e399cfa4960665a776a03fc97
MD5 34453d90cee48f212764d00177e74da5
BLAKE2b-256 c83efd738d88f5bb5f96cac6fb4e110175549ef9f775604ebdf62f31dce0c086

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page