summaryrefslogtreecommitdiffstats
path: root/FOSS/Python/Dependencies/future-0.18.2/docs/quickstart.rst
diff options
context:
space:
mode:
Diffstat (limited to 'FOSS/Python/Dependencies/future-0.18.2/docs/quickstart.rst')
-rw-r--r--FOSS/Python/Dependencies/future-0.18.2/docs/quickstart.rst153
1 files changed, 153 insertions, 0 deletions
diff --git a/FOSS/Python/Dependencies/future-0.18.2/docs/quickstart.rst b/FOSS/Python/Dependencies/future-0.18.2/docs/quickstart.rst
new file mode 100644
index 0000000..6042e05
--- /dev/null
+++ b/FOSS/Python/Dependencies/future-0.18.2/docs/quickstart.rst
@@ -0,0 +1,153 @@
+.. _quickstart-guide:
+
+Quick-start guide
+=================
+
+You can use ``future`` to help to port your code from Python 2 to Python 3
+today -- and still have it run on Python 2.
+
+If you already have Python 3 code, you can instead use ``future`` to
+offer Python 2 compatibility with almost no extra work.
+
+Installation
+------------
+
+To install the latest stable version, type::
+
+ pip install future
+
+If you would prefer the latest development version, it is available `here
+<https://github.com/PythonCharmers/python-future>`_.
+
+
+If you are writing code from scratch
+------------------------------------
+
+The easiest way is to start each new module with these lines::
+
+ from __future__ import (absolute_import, division,
+ print_function, unicode_literals)
+ from builtins import *
+
+Then write standard Python 3 code. The :mod:`future` package will
+provide support for running your code on Python 2.7, and 3.4+ mostly
+unchanged.
+
+- For explicit import forms, see :ref:`explicit-imports`.
+- For more details, see :ref:`what-else`.
+- For a cheat sheet, see :ref:`compatible-idioms`.
+
+
+To convert existing Python 3 code
+---------------------------------
+
+To offer backward compatibility with Python 2 from your Python 3 code,
+you can use the ``pasteurize`` script. This adds these lines at the top of each
+module::
+
+ from __future__ import absolute_import
+ from __future__ import division
+ from __future__ import print_function
+ from __future__ import unicode_literals
+
+ from builtins import open
+ from builtins import str
+ # etc., as needed
+
+ from future import standard_library
+ standard_library.install_aliases()
+
+and converts several Python 3-only constructs (like keyword-only arguments) to a
+form compatible with both Py3 and Py2. Most remaining Python 3 code should
+simply work on Python 2.
+
+See :ref:`backwards-conversion` for more details.
+
+
+To convert existing Python 2 code
+---------------------------------
+
+.. include:: futurize_overview.rst
+
+See :ref:`forwards-conversion-stage1` and :ref:`forwards-conversion-stage2` for more details.
+
+.. If you already know Python 3, start with the :ref:`automatic-conversion` page.
+.. If you don't know Python 3 yet, start with :ref:`python3-essentials`.
+
+
+.. _standard-library:
+
+Standard library reorganization
+-------------------------------
+
+:mod:`future` supports the standard library reorganization (PEP 3108) via
+one of several mechanisms, allowing most moved standard library modules
+to be accessed under their Python 3 names and locations in Python 2::
+
+ from future import standard_library
+ standard_library.install_aliases()
+
+ # Then these Py3-style imports work on both Python 2 and Python 3:
+ import socketserver
+ import queue
+ from collections import UserDict, UserList, UserString
+ from collections import ChainMap # even on Py2.7
+ from itertools import filterfalse, zip_longest
+
+ import html
+ import html.entities
+ import html.parser
+
+ import http
+ import http.client
+ import http.server
+ import http.cookies
+ import http.cookiejar
+
+ import urllib.request
+ import urllib.parse
+ import urllib.response
+ import urllib.error
+ import urllib.robotparser
+
+ import xmlrpc.client
+ import xmlrpc.server
+
+and others. For a complete list, see :ref:`direct-imports`.
+
+.. _py2-dependencies:
+
+Python 2-only dependencies
+--------------------------
+
+If you have dependencies that support only Python 2, you may be able to use the
+``past`` module to automatically translate these Python 2 modules to Python 3
+upon import. First, install the Python 2-only package into your Python 3
+environment::
+
+ $ pip3 install mypackagename --no-compile # to ignore SyntaxErrors
+
+(or use ``pip`` if this points to your Py3 environment.)
+
+Then add the following code at the top of your (Py3 or Py2/3-compatible)
+code::
+
+ from past.translation import autotranslate
+ autotranslate(['mypackagename'])
+ import mypackagename
+
+This feature is experimental, and we would appreciate your feedback on
+how well this works or doesn't work for you. Please file an issue `here
+<https://github.com/PythonCharmers/python-future>`_ or post to the
+`python-porting <https://mail.python.org/mailman/listinfo/python-porting>`_
+mailing list.
+
+For more information on the automatic translation feature, see :ref:`translation`.
+
+
+Next steps
+----------
+For more information about writing Py2/3-compatible code, see:
+
+- :ref:`compatible-idioms`
+- :ref:`what-else`.