| """ | |
| future: Easy, safe support for Python 2/3 compatibility | |
| ======================================================= | |
| ``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 | |
| <https://python-future.org/automatic_conversion.html>`_ 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: https://python-future.org | |
| Credits | |
| ------- | |
| :Author: Ed Schofield, Jordan M. Adler, et al | |
| :Sponsor: Python Charmers: https://pythoncharmers.com | |
| :Others: See docs/credits.rst or https://python-future.org/credits.html | |
| Licensing | |
| --------- | |
| Copyright 2013-2024 Python Charmers, Australia. | |
| The software is distributed under an MIT licence. See LICENSE.txt. | |
| """ | |
| __title__ = 'future' | |
| __author__ = 'Ed Schofield' | |
| __license__ = 'MIT' | |
| __copyright__ = 'Copyright 2013-2024 Python Charmers (https://pythoncharmers.com)' | |
| __ver_major__ = 1 | |
| __ver_minor__ = 0 | |
| __ver_patch__ = 0 | |
| __ver_sub__ = '' | |
| __version__ = "%d.%d.%d%s" % (__ver_major__, __ver_minor__, | |
| __ver_patch__, __ver_sub__) | |