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, Jordan M. Adler, et al

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-2019 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-0.18.0.tar.gz (830.0 kB view details)

Uploaded Source

Built Distributions

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

future-0.18.0-cp36-none-any.whl (490.4 kB view details)

Uploaded CPython 3.6

future-0.18.0-cp27-none-any.whl (501.9 kB view details)

Uploaded CPython 2.7

File details

Details for the file future-0.18.0.tar.gz.

File metadata

  • Download URL: future-0.18.0.tar.gz
  • Upload date:
  • Size: 830.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4

File hashes

Hashes for future-0.18.0.tar.gz
Algorithm Hash digest
SHA256 6142ef79e2416e432931d527452a1cab3aa4a754a0a53d25b2589f79e1106f34
MD5 75ff140f2f609c8c0cb32e0c8f4ef78d
BLAKE2b-256 f685c273089eb6efa5644c0a1382ea553554bc0d40e00a46d989ec67f123f8b5

See more details on using hashes here.

File details

Details for the file future-0.18.0-cp36-none-any.whl.

File metadata

  • Download URL: future-0.18.0-cp36-none-any.whl
  • Upload date:
  • Size: 490.4 kB
  • Tags: CPython 3.6
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/47.1.1 requests-toolbelt/0.9.1 tqdm/4.53.0 CPython/3.6.9

File hashes

Hashes for future-0.18.0-cp36-none-any.whl
Algorithm Hash digest
SHA256 3f9c52f6c3f4e287bdd9b13de6cfd72373fb694aa391b5e511deef3db15d6a62
MD5 761b0be48357048a4130de44d7617a09
BLAKE2b-256 9ecf95b17d4430942dbf291fa5411d8189374a2e6dba91d9ef077e7fb8e869bc

See more details on using hashes here.

File details

Details for the file future-0.18.0-cp27-none-any.whl.

File metadata

  • Download URL: future-0.18.0-cp27-none-any.whl
  • Upload date:
  • Size: 501.9 kB
  • Tags: CPython 2.7
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/47.1.1 requests-toolbelt/0.9.1 tqdm/4.53.0 CPython/3.6.9

File hashes

Hashes for future-0.18.0-cp27-none-any.whl
Algorithm Hash digest
SHA256 2bc7f66fcde8d42e956143fadda385bd022d81940adf3be2085cdbd5fc42d833
MD5 d92a6bcb37404ca2d87b17059333e31c
BLAKE2b-256 f71bf7b288e12c7233323e0d0662031a5f7870b06e46c566aa0fbc8b0904391f

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