merge with 3.5

This commit is contained in:
Georg Brandl 2016-02-26 19:37:52 +01:00
commit 3902d62c4e
69 changed files with 252 additions and 262 deletions

View file

@ -35,7 +35,7 @@ Key terms
repository of open source licensed packages made available for use by repository of open source licensed packages made available for use by
other Python users other Python users
* the `Python Packaging Authority * the `Python Packaging Authority
<https://packaging.python.org/en/latest/future.html>`__ are the group of <https://www.pypa.io/>`__ are the group of
developers and documentation authors responsible for the maintenance and developers and documentation authors responsible for the maintenance and
evolution of the standard packaging tools and the associated metadata and evolution of the standard packaging tools and the associated metadata and
file format standards. They maintain a variety of tools, documentation file format standards. They maintain a variety of tools, documentation
@ -62,7 +62,7 @@ Key terms
locally. locally.
.. _setuptools: https://setuptools.pypa.io/en/latest/setuptools.html .. _setuptools: https://setuptools.pypa.io/en/latest/setuptools.html
.. _wheel: http://wheel.readthedocs.org .. _wheel: https://wheel.readthedocs.org
Open source licensing and collaboration Open source licensing and collaboration
======================================= =======================================
@ -111,7 +111,7 @@ by invoking the ``pip`` module at the command line::
The Python Packaging User Guide includes more details on the `currently The Python Packaging User Guide includes more details on the `currently
recommended tools`_. recommended tools`_.
.. _currently recommended tools: https://packaging.python.org/en/latest/current.html#packaging-tool-recommendations .. _currently recommended tools: https://packaging.python.org/en/latest/current/#packaging-tool-recommendations
Reading the guide Reading the guide
================= =================
@ -124,11 +124,11 @@ involved in creating a project:
* `Uploading the project to the Python Packaging Index`_ * `Uploading the project to the Python Packaging Index`_
.. _Project structure: \ .. _Project structure: \
https://packaging.python.org/en/latest/distributing.html#creating-your-own-project https://packaging.python.org/en/latest/distributing/
.. _Building and packaging the project: \ .. _Building and packaging the project: \
https://packaging.python.org/en/latest/distributing.html#packaging-your-project https://packaging.python.org/en/latest/distributing/#packaging-your-project
.. _Uploading the project to the Python Packaging Index: \ .. _Uploading the project to the Python Packaging Index: \
https://packaging.python.org/en/latest/distributing.html#uploading-your-project-to-pypi https://packaging.python.org/en/latest/distributing/#uploading-your-project-to-pypi
How do I...? How do I...?
@ -160,11 +160,11 @@ Python Packaging User Guide for more information and recommendations.
.. seealso:: .. seealso::
`Python Packaging User Guide: Binary Extensions `Python Packaging User Guide: Binary Extensions
<https://packaging.python.org/en/latest/extensions.html>`__ <https://packaging.python.org/en/latest/extensions>`__
.. other topics: .. other topics:
Once the Development & Deployment part of PPUG is fleshed out, some of Once the Development & Deployment part of PPUG is fleshed out, some of
those sections should be linked from new questions here (most notably, those sections should be linked from new questions here (most notably,
we should have a question about avoiding depending on PyPI that links to we should have a question about avoiding depending on PyPI that links to
https://packaging.python.org/en/latest/deployment.html#pypi-mirrors-and-caches) https://packaging.python.org/en/latest/mirrors/)

View file

@ -1822,7 +1822,7 @@ Subclasses of :class:`Command` must define the following methods.
Builds a `Windows Installer`_ (.msi) binary package. Builds a `Windows Installer`_ (.msi) binary package.
.. _Windows Installer: http://msdn.microsoft.com/en-us/library/cc185688(VS.85).aspx .. _Windows Installer: https://msdn.microsoft.com/en-us/library/cc185688(VS.85).aspx
In most cases, the ``bdist_msi`` installer is a better choice than the In most cases, the ``bdist_msi`` installer is a better choice than the
``bdist_wininst`` installer, because it provides better support for ``bdist_wininst`` installer, because it provides better support for

View file

@ -27,7 +27,7 @@ your system setup; details are given in later chapters.
avoid writing C extensions and preserve portability to other implementations. avoid writing C extensions and preserve portability to other implementations.
For example, if your use case is calling C library functions or system calls, For example, if your use case is calling C library functions or system calls,
you should consider using the :mod:`ctypes` module or the `cffi you should consider using the :mod:`ctypes` module or the `cffi
<http://cffi.readthedocs.org>`_ library rather than writing custom C code. <https://cffi.readthedocs.org>`_ library rather than writing custom C code.
These modules let you write Python code to interface with C code and are more These modules let you write Python code to interface with C code and are more
portable between implementations of Python than writing and compiling a C portable between implementations of Python than writing and compiling a C
extension module. extension module.

View file

@ -32,7 +32,7 @@ approaches to creating C and C++ extensions for Python.
.. seealso:: .. seealso::
`Python Packaging User Guide: Binary Extensions <https://packaging.python.org/en/latest/extensions.html>`_ `Python Packaging User Guide: Binary Extensions <https://packaging.python.org/en/latest/extensions/>`_
The Python Packaging User Guide not only covers several available The Python Packaging User Guide not only covers several available
tools that simplify the creation of binary extensions, but also tools that simplify the creation of binary extensions, but also
discusses the various reasons why creating an extension module may be discusses the various reasons why creating an extension module may be

View file

@ -370,7 +370,7 @@ Practical answer:
`Cython <http://cython.org/>`_ and `Pyrex <http://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/>`_ `Cython <http://cython.org/>`_ and `Pyrex <http://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/>`_
compile a modified version of Python with optional annotations into C compile a modified version of Python with optional annotations into C
extensions. `Weave <http://docs.scipy.org/doc/scipy-dev/reference/tutorial/weave.html>`_ makes it easy to extensions. `Weave <https://scipy.github.io/devdocs/tutorial/weave.html>`_ makes it easy to
intermingle Python and C code in various ways to increase performance. intermingle Python and C code in various ways to increase performance.
`Nuitka <http://www.nuitka.net/>`_ is an up-and-coming compiler of Python `Nuitka <http://www.nuitka.net/>`_ is an up-and-coming compiler of Python
into C++ code, aiming to support the full Python language. into C++ code, aiming to support the full Python language.

View file

@ -50,10 +50,10 @@ to learn Python's C API.
If you need to interface to some C or C++ library for which no Python extension If you need to interface to some C or C++ library for which no Python extension
currently exists, you can try wrapping the library's data types and functions currently exists, you can try wrapping the library's data types and functions
with a tool such as `SWIG <http://www.swig.org>`_. `SIP with a tool such as `SWIG <http://www.swig.org>`_. `SIP
<http://www.riverbankcomputing.co.uk/software/sip/intro>`__, `CXX <https://riverbankcomputing.com/software/sip/intro>`__, `CXX
<http://cxx.sourceforge.net/>`_ `Boost <http://cxx.sourceforge.net/>`_ `Boost
<http://www.boost.org/libs/python/doc/index.html>`_, or `Weave <http://www.boost.org/libs/python/doc/index.html>`_, or `Weave
<http://docs.scipy.org/doc/scipy-dev/reference/tutorial/weave.html>`_ are also <https://scipy.github.io/devdocs/tutorial/weave.html>`_ are also
alternatives for wrapping C++ libraries. alternatives for wrapping C++ libraries.

View file

@ -159,7 +159,7 @@ How do I obtain a copy of the Python source?
-------------------------------------------- --------------------------------------------
The latest Python source distribution is always available from python.org, at The latest Python source distribution is always available from python.org, at
https://www.python.org/download/. The latest development sources can be obtained https://www.python.org/downloads/. The latest development sources can be obtained
via anonymous Mercurial access at https://hg.python.org/cpython. via anonymous Mercurial access at https://hg.python.org/cpython.
The source distribution is a gzipped tar file containing the complete C source, The source distribution is a gzipped tar file containing the complete C source,
@ -218,7 +218,7 @@ can be found at https://www.python.org/community/lists/.
How do I get a beta test version of Python? How do I get a beta test version of Python?
------------------------------------------- -------------------------------------------
Alpha and beta releases are available from https://www.python.org/download/. All Alpha and beta releases are available from https://www.python.org/downloads/. All
releases are announced on the comp.lang.python and comp.lang.python.announce releases are announced on the comp.lang.python and comp.lang.python.announce
newsgroups and on the Python home page at https://www.python.org/; an RSS feed of newsgroups and on the Python home page at https://www.python.org/; an RSS feed of
news is available. news is available.
@ -273,7 +273,7 @@ The Python project's infrastructure is located all over the world.
`www.python.org <https://www.python.org>`_ is graciously hosted by `Rackspace `www.python.org <https://www.python.org>`_ is graciously hosted by `Rackspace
<http://www.rackspace.com>`_, with CDN caching provided by `Fastly <http://www.rackspace.com>`_, with CDN caching provided by `Fastly
<https://www.fastly.com>`_. `Upfront Systems <https://www.fastly.com>`_. `Upfront Systems
<http://www.upfrontsystems.co.za>`_ hosts `bugs.python.org <http://www.upfrontsystems.co.za/>`_ hosts `bugs.python.org
<https://bugs.python.org>`_. Many other Python services like `the Wiki <https://bugs.python.org>`_. Many other Python services like `the Wiki
<https://wiki.python.org>`_ are hosted by `Oregon State <https://wiki.python.org>`_ are hosted by `Oregon State
University Open Source Lab <https://osuosl.org>`_. University Open Source Lab <https://osuosl.org>`_.
@ -284,7 +284,7 @@ Why is it called Python?
When he began implementing Python, Guido van Rossum was also reading the When he began implementing Python, Guido van Rossum was also reading the
published scripts from `"Monty Python's Flying Circus" published scripts from `"Monty Python's Flying Circus"
<http://en.wikipedia.org/wiki/Monty_Python>`__, a BBC comedy series from the 1970s. Van Rossum <https://en.wikipedia.org/wiki/Monty_Python>`__, a BBC comedy series from the 1970s. Van Rossum
thought he needed a name that was short, unique, and slightly mysterious, so he thought he needed a name that was short, unique, and slightly mysterious, so he
decided to call the language Python. decided to call the language Python.
@ -313,7 +313,7 @@ guaranteed that interfaces will remain the same throughout a series of bugfix
releases. releases.
The latest stable releases can always be found on the `Python download page The latest stable releases can always be found on the `Python download page
<https://www.python.org/download/>`_. There are two recommended production-ready <https://www.python.org/downloads/>`_. There are two recommended production-ready
versions at this point in time, because at the moment there are two branches of versions at this point in time, because at the moment there are two branches of
stable releases: 2.x and 3.x. Python 3.x may be less useful than 2.x, since stable releases: 2.x and 3.x. Python 3.x may be less useful than 2.x, since
currently there is more third party software available for Python 2 than for currently there is more third party software available for Python 2 than for
@ -345,7 +345,7 @@ different companies and organizations.
High-profile Python projects include `the Mailman mailing list manager High-profile Python projects include `the Mailman mailing list manager
<http://www.list.org>`_ and `the Zope application server <http://www.list.org>`_ and `the Zope application server
<http://www.zope.org>`_. Several Linux distributions, most notably `Red Hat <http://www.zope.org>`_. Several Linux distributions, most notably `Red Hat
<http://www.redhat.com>`_, have written part or all of their installer and <https://www.redhat.com>`_, have written part or all of their installer and
system administration software in Python. Companies that use Python internally system administration software in Python. Companies that use Python internally
include Google, Yahoo, and Lucasfilm Ltd. include Google, Yahoo, and Lucasfilm Ltd.

View file

@ -29,7 +29,7 @@ Tkinter
Standard builds of Python include an object-oriented interface to the Tcl/Tk Standard builds of Python include an object-oriented interface to the Tcl/Tk
widget set, called :ref:`tkinter <Tkinter>`. This is probably the easiest to widget set, called :ref:`tkinter <Tkinter>`. This is probably the easiest to
install (since it comes included with most install (since it comes included with most
`binary distributions <https://www.python.org/download/>`_ of Python) and use. `binary distributions <https://www.python.org/downloads/>`_ of Python) and use.
For more info about Tk, including pointers to the source, see the For more info about Tk, including pointers to the source, see the
`Tcl/Tk home page <http://www.tcl.tk>`_. Tcl/Tk is fully portable to the `Tcl/Tk home page <http://www.tcl.tk>`_. Tcl/Tk is fully portable to the
Mac OS X, Windows, and Unix platforms. Mac OS X, Windows, and Unix platforms.
@ -58,19 +58,19 @@ Qt
--- ---
There are bindings available for the Qt toolkit (using either `PyQt There are bindings available for the Qt toolkit (using either `PyQt
<http://www.riverbankcomputing.co.uk/software/pyqt/intro>`_ or `PySide <https://riverbankcomputing.com/software/pyqt/intro>`_ or `PySide
<http://www.pyside.org/>`_) and for KDE (`PyKDE <https://techbase.kde.org/Development/Languages/Python>`__). <https://wiki.qt.io/PySide>`_) and for KDE (`PyKDE <https://techbase.kde.org/Development/Languages/Python>`__).
PyQt is currently more mature than PySide, but you must buy a PyQt license from PyQt is currently more mature than PySide, but you must buy a PyQt license from
`Riverbank Computing <http://www.riverbankcomputing.co.uk/software/pyqt/license>`_ `Riverbank Computing <https://www.riverbankcomputing.com/commercial/license-faq>`_
if you want to write proprietary applications. PySide is free for all applications. if you want to write proprietary applications. PySide is free for all applications.
Qt 4.5 upwards is licensed under the LGPL license; also, commercial licenses Qt 4.5 upwards is licensed under the LGPL license; also, commercial licenses
are available from `The Qt Company <http://www.qt.io/licensing/>`_. are available from `The Qt Company <https://www.qt.io/licensing/>`_.
Gtk+ Gtk+
---- ----
The `GObject introspection bindings <https://live.gnome.org/PyGObject>`_ The `GObject introspection bindings <https://wiki.gnome.org/Projects/PyGObject>`_
for Python allow you to write GTK+ 3 applications. There is also a for Python allow you to write GTK+ 3 applications. There is also a
`Python GTK+ 3 Tutorial <http://python-gtk-3-tutorial.readthedocs.org/en/latest/>`_. `Python GTK+ 3 Tutorial <http://python-gtk-3-tutorial.readthedocs.org/en/latest/>`_.

View file

@ -619,7 +619,7 @@ For Win32, POSIX (Linux, BSD, etc.), Jython:
For Unix, see a Usenet post by Mitch Chapman: For Unix, see a Usenet post by Mitch Chapman:
http://groups.google.com/groups?selm=34A04430.CF9@ohioee.com https://groups.google.com/groups?selm=34A04430.CF9@ohioee.com
Why doesn't closing sys.stdout (stdin, stderr) really close it? Why doesn't closing sys.stdout (stdin, stderr) really close it?

View file

@ -63,7 +63,7 @@ PyChecker is a static analysis tool that finds bugs in Python source code and
warns about code complexity and style. You can get PyChecker from warns about code complexity and style. You can get PyChecker from
http://pychecker.sourceforge.net/. http://pychecker.sourceforge.net/.
`Pylint <http://www.logilab.org/projects/pylint>`_ is another tool that checks `Pylint <http://www.pylint.org/>`_ is another tool that checks
if a module satisfies a coding standard, and also makes it possible to write if a module satisfies a coding standard, and also makes it possible to write
plug-ins to add a custom feature. In addition to the bug checking that plug-ins to add a custom feature. In addition to the bug checking that
PyChecker performs, Pylint offers some additional features such as checking line PyChecker performs, Pylint offers some additional features such as checking line

View file

@ -545,7 +545,7 @@ learn more about submitting patches to Python.
a lengthy tutorial for C programmers. a lengthy tutorial for C programmers.
* `The ncurses man page <http://linux.die.net/man/3/ncurses>`_ * `The ncurses man page <http://linux.die.net/man/3/ncurses>`_
* `The ncurses FAQ <http://invisible-island.net/ncurses/ncurses.faq.html>`_ * `The ncurses FAQ <http://invisible-island.net/ncurses/ncurses.faq.html>`_
* `"Use curses... don't swear" <http://www.youtube.com/watch?v=eN1eZtjLEnU>`_: * `"Use curses... don't swear" <https://www.youtube.com/watch?v=eN1eZtjLEnU>`_:
video of a PyCon 2013 talk on controlling terminals using curses or Urwid. video of a PyCon 2013 talk on controlling terminals using curses or Urwid.
* `"Console Applications with Urwid" <http://www.pyvideo.org/video/1568/console-applications-with-urwid>`_: * `"Console Applications with Urwid" <http://www.pyvideo.org/video/1568/console-applications-with-urwid>`_:
video of a PyCon CA 2012 talk demonstrating some applications written using video of a PyCon CA 2012 talk demonstrating some applications written using

View file

@ -332,7 +332,7 @@ substring.
List comprehensions and generator expressions (short form: "listcomps" and List comprehensions and generator expressions (short form: "listcomps" and
"genexps") are a concise notation for such operations, borrowed from the "genexps") are a concise notation for such operations, borrowed from the
functional programming language Haskell (http://www.haskell.org/). You can strip functional programming language Haskell (https://www.haskell.org/). You can strip
all the whitespace from a stream of strings with the following code:: all the whitespace from a stream of strings with the following code::
line_list = [' line 1\n', 'line 2 \n', ...] line_list = [' line 1\n', 'line 2 \n', ...]
@ -716,7 +716,7 @@ returns them in a tuple::
It doesn't construct an in-memory list and exhaust all the input iterators It doesn't construct an in-memory list and exhaust all the input iterators
before returning; instead tuples are constructed and returned only if they're before returning; instead tuples are constructed and returned only if they're
requested. (The technical term for this behaviour is `lazy evaluation requested. (The technical term for this behaviour is `lazy evaluation
<http://en.wikipedia.org/wiki/Lazy_evaluation>`__.) <https://en.wikipedia.org/wiki/Lazy_evaluation>`__.)
This iterator is intended to be used with iterables that are all of the same This iterator is intended to be used with iterables that are all of the same
length. If the iterables are of different lengths, the resulting stream will be length. If the iterables are of different lengths, the resulting stream will be
@ -1199,7 +1199,7 @@ General
**Structure and Interpretation of Computer Programs**, by Harold Abelson and **Structure and Interpretation of Computer Programs**, by Harold Abelson and
Gerald Jay Sussman with Julie Sussman. Full text at Gerald Jay Sussman with Julie Sussman. Full text at
http://mitpress.mit.edu/sicp/. In this classic textbook of computer science, https://mitpress.mit.edu/sicp/. In this classic textbook of computer science,
chapters 2 and 3 discuss the use of sequences and streams to organize the data chapters 2 and 3 discuss the use of sequences and streams to organize the data
flow inside a program. The book uses Scheme for its examples, but many of the flow inside a program. The book uses Scheme for its examples, but many of the
design approaches described in these chapters are applicable to functional-style design approaches described in these chapters are applicable to functional-style
@ -1208,12 +1208,12 @@ Python code.
http://www.defmacro.org/ramblings/fp.html: A general introduction to functional http://www.defmacro.org/ramblings/fp.html: A general introduction to functional
programming that uses Java examples and has a lengthy historical introduction. programming that uses Java examples and has a lengthy historical introduction.
http://en.wikipedia.org/wiki/Functional_programming: General Wikipedia entry https://en.wikipedia.org/wiki/Functional_programming: General Wikipedia entry
describing functional programming. describing functional programming.
http://en.wikipedia.org/wiki/Coroutine: Entry for coroutines. https://en.wikipedia.org/wiki/Coroutine: Entry for coroutines.
http://en.wikipedia.org/wiki/Currying: Entry for the concept of currying. https://en.wikipedia.org/wiki/Currying: Entry for the concept of currying.
Python-specific Python-specific
--------------- ---------------

View file

@ -1316,7 +1316,7 @@ An example dictionary-based configuration
----------------------------------------- -----------------------------------------
Below is an example of a logging configuration dictionary - it's taken from Below is an example of a logging configuration dictionary - it's taken from
the `documentation on the Django project <https://docs.djangoproject.com/en/1.3/topics/logging/#configuring-logging>`_. the `documentation on the Django project <https://docs.djangoproject.com/en/1.4/topics/logging/#configuring-logging>`_.
This dictionary is passed to :func:`~config.dictConfig` to put the configuration into effect:: This dictionary is passed to :func:`~config.dictConfig` to put the configuration into effect::
LOGGING = { LOGGING = {

View file

@ -310,7 +310,7 @@ favourite beverage and carry on.
If your logging needs are simple, then use the above examples to incorporate If your logging needs are simple, then use the above examples to incorporate
logging into your own scripts, and if you run into problems or don't logging into your own scripts, and if you run into problems or don't
understand something, please post a question on the comp.lang.python Usenet understand something, please post a question on the comp.lang.python Usenet
group (available at http://groups.google.com/group/comp.lang.python) and you group (available at https://groups.google.com/group/comp.lang.python) and you
should receive help before too long. should receive help before too long.
Still here? You can carry on reading the next few sections, which provide a Still here? You can carry on reading the next few sections, which provide a

View file

@ -127,7 +127,7 @@ Sort Stability and Complex Sorts
================================ ================================
Sorts are guaranteed to be `stable Sorts are guaranteed to be `stable
<http://en.wikipedia.org/wiki/Sorting_algorithm#Stability>`_\. That means that <https://en.wikipedia.org/wiki/Sorting_algorithm#Stability>`_\. That means that
when multiple records have the same key, their original order is preserved. when multiple records have the same key, their original order is preserved.
>>> data = [('red', 1), ('blue', 1), ('red', 2), ('blue', 2)] >>> data = [('red', 1), ('blue', 1), ('red', 2), ('blue', 2)]
@ -145,7 +145,7 @@ ascending *age*, do the *age* sort first and then sort again using *grade*:
>>> sorted(s, key=attrgetter('grade'), reverse=True) # now sort on primary key, descending >>> sorted(s, key=attrgetter('grade'), reverse=True) # now sort on primary key, descending
[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)] [('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
The `Timsort <http://en.wikipedia.org/wiki/Timsort>`_ algorithm used in Python The `Timsort <https://en.wikipedia.org/wiki/Timsort>`_ algorithm used in Python
does multiple sorts efficiently because it can take advantage of any ordering does multiple sorts efficiently because it can take advantage of any ordering
already present in a dataset. already present in a dataset.
@ -184,7 +184,7 @@ decorated list, but including it gives two benefits:
directly. directly.
Another name for this idiom is Another name for this idiom is
`Schwartzian transform <http://en.wikipedia.org/wiki/Schwartzian_transform>`_\, `Schwartzian transform <https://en.wikipedia.org/wiki/Schwartzian_transform>`_\,
after Randal L. Schwartz, who popularized it among Perl programmers. after Randal L. Schwartz, who popularized it among Perl programmers.
Now that Python sorting provides key-functions, this technique is not often needed. Now that Python sorting provides key-functions, this technique is not often needed.

View file

@ -73,7 +73,7 @@ revision of Unicode.
precise historical details aren't necessary for understanding how to precise historical details aren't necessary for understanding how to
use Unicode effectively, but if you're curious, consult the Unicode use Unicode effectively, but if you're curious, consult the Unicode
consortium site listed in the References or consortium site listed in the References or
the `Wikipedia entry for Unicode <http://en.wikipedia.org/wiki/Unicode#History>`_ the `Wikipedia entry for Unicode <https://en.wikipedia.org/wiki/Unicode#History>`_
for more information.) for more information.)
@ -223,8 +223,8 @@ If this introduction didn't make things clear to you, you should try
reading this alternate article before continuing. reading this alternate article before continuing.
Wikipedia entries are often helpful; see the entries for "`character encoding Wikipedia entries are often helpful; see the entries for "`character encoding
<http://en.wikipedia.org/wiki/Character_encoding>`_" and `UTF-8 <https://en.wikipedia.org/wiki/Character_encoding>`_" and `UTF-8
<http://en.wikipedia.org/wiki/UTF-8>`_, for example. <https://en.wikipedia.org/wiki/UTF-8>`_, for example.
Python's Unicode Support Python's Unicode Support

View file

@ -267,7 +267,7 @@ Setting up FastCGI
Each web server requires a specific module. Each web server requires a specific module.
* Apache has both `mod_fastcgi <http://www.fastcgi.com/drupal/>`_ and `mod_fcgid * Apache has both `mod_fastcgi <http://www.fastcgi.com/drupal/>`_ and `mod_fcgid
<http://httpd.apache.org/mod_fcgid/>`_. ``mod_fastcgi`` is the original one, but it <https://httpd.apache.org/mod_fcgid/>`_. ``mod_fastcgi`` is the original one, but it
has some licensing issues, which is why it is sometimes considered non-free. has some licensing issues, which is why it is sometimes considered non-free.
``mod_fcgid`` is a smaller, compatible alternative. One of these modules needs ``mod_fcgid`` is a smaller, compatible alternative. One of these modules needs
to be loaded by Apache. to be loaded by Apache.
@ -277,7 +277,7 @@ Each web server requires a specific module.
`SCGI module <http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_ModSCGI>`_. `SCGI module <http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_ModSCGI>`_.
* `nginx <http://nginx.org/>`_ also supports `FastCGI * `nginx <http://nginx.org/>`_ also supports `FastCGI
<http://wiki.nginx.org/NginxSimplePythonFCGI>`_. <https://www.nginx.com/resources/wiki/start/topics/examples/simplepythonfcgi/>`_.
Once you have installed and configured the module, you can test it with the Once you have installed and configured the module, you can test it with the
following WSGI-application:: following WSGI-application::
@ -307,8 +307,8 @@ FastCGI access.
.. seealso:: .. seealso::
There is some documentation on `setting up Django with FastCGI There is some documentation on `setting up Django with WSGI
<https://docs.djangoproject.com/en/dev/howto/deployment/fastcgi/>`_, most of <https://docs.djangoproject.com/en/dev/howto/deployment/wsgi/>`_, most of
which can be reused for other WSGI-compliant frameworks and libraries. which can be reused for other WSGI-compliant frameworks and libraries.
Only the ``manage.py`` part has to be changed, the example used here can be Only the ``manage.py`` part has to be changed, the example used here can be
used instead. Django does more or less the exact same thing. used instead. Django does more or less the exact same thing.
@ -358,7 +358,7 @@ testing.
A really great WSGI feature is middleware. Middleware is a layer around your A really great WSGI feature is middleware. Middleware is a layer around your
program which can add various functionality to it. There is quite a bit of program which can add various functionality to it. There is quite a bit of
`middleware <http://www.wsgi.org/en/latest/libraries.html>`_ already `middleware <https://wsgi.readthedocs.org/en/latest/libraries.html>`_ already
available. For example, instead of writing your own session management (HTTP available. For example, instead of writing your own session management (HTTP
is a stateless protocol, so to associate multiple HTTP requests with a single is a stateless protocol, so to associate multiple HTTP requests with a single
user your application must create and manage such state via a session), you can user your application must create and manage such state via a session), you can
@ -379,7 +379,7 @@ WSGI Servers
The code that is used to connect to various low level gateways like CGI or The code that is used to connect to various low level gateways like CGI or
mod_python is called a *WSGI server*. One of these servers is ``flup``, which mod_python is called a *WSGI server*. One of these servers is ``flup``, which
supports FastCGI and SCGI, as well as `AJP supports FastCGI and SCGI, as well as `AJP
<http://en.wikipedia.org/wiki/Apache_JServ_Protocol>`_. Some of these servers <https://en.wikipedia.org/wiki/Apache_JServ_Protocol>`_. Some of these servers
are written in Python, as ``flup`` is, but there also exist others which are are written in Python, as ``flup`` is, but there also exist others which are
written in C and can be used as drop-in replacements. written in C and can be used as drop-in replacements.
@ -390,8 +390,8 @@ compared with other web technologies.
.. seealso:: .. seealso::
A good overview of WSGI-related code can be found in the `WSGI homepage A good overview of WSGI-related code can be found in the `WSGI homepage
<http://www.wsgi.org/en/latest/index.html>`_, which contains an extensive list of `WSGI servers <https://wsgi.readthedocs.org/>`_, which contains an extensive list of `WSGI servers
<http://www.wsgi.org/en/latest/servers.html>`_ which can be used by *any* application <https://wsgi.readthedocs.org/en/latest/servers.html>`_ which can be used by *any* application
supporting WSGI. supporting WSGI.
You might be interested in some WSGI-supporting modules already contained in You might be interested in some WSGI-supporting modules already contained in
@ -408,7 +408,7 @@ an application that's been around for a while, which was written in
Python without using WSGI. Python without using WSGI.
One of the most widely used wiki software packages is `MoinMoin One of the most widely used wiki software packages is `MoinMoin
<http://moinmo.in/>`_. It was created in 2000, so it predates WSGI by about <https://moinmo.in/>`_. It was created in 2000, so it predates WSGI by about
three years. Older versions needed separate code to run on CGI, mod_python, three years. Older versions needed separate code to run on CGI, mod_python,
FastCGI and standalone. FastCGI and standalone.
@ -460,7 +460,7 @@ maintainable web sites.
.. seealso:: .. seealso::
The English Wikipedia has an article about the `Model-View-Controller pattern The English Wikipedia has an article about the `Model-View-Controller pattern
<http://en.wikipedia.org/wiki/Model-view-controller>`_. It includes a long <https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller>`_. It includes a long
list of web frameworks for various programming languages. list of web frameworks for various programming languages.
@ -543,10 +543,10 @@ module, and which uses only one file. It has no other dependencies. For
smaller sites SQLite is just enough. smaller sites SQLite is just enough.
Relational databases are *queried* using a language called `SQL Relational databases are *queried* using a language called `SQL
<http://en.wikipedia.org/wiki/SQL>`_. Python programmers in general do not <https://en.wikipedia.org/wiki/SQL>`_. Python programmers in general do not
like SQL too much, as they prefer to work with objects. It is possible to save like SQL too much, as they prefer to work with objects. It is possible to save
Python objects into a database using a technology called `ORM Python objects into a database using a technology called `ORM
<http://en.wikipedia.org/wiki/Object-relational_mapping>`_ (Object Relational <https://en.wikipedia.org/wiki/Object-relational_mapping>`_ (Object Relational
Mapping). ORM translates all object-oriented access into SQL code under the Mapping). ORM translates all object-oriented access into SQL code under the
hood, so the developer does not need to think about it. Most `frameworks`_ use hood, so the developer does not need to think about it. Most `frameworks`_ use
ORMs, and it works quite well. ORMs, and it works quite well.
@ -579,13 +579,13 @@ alternate storage mechanism.
helps with choosing a method for saving data helps with choosing a method for saving data
* `SQLAlchemy <http://www.sqlalchemy.org/>`_, the most powerful OR-Mapper * `SQLAlchemy <http://www.sqlalchemy.org/>`_, the most powerful OR-Mapper
for Python, and `Elixir <http://elixir.ematia.de/>`_, which makes for Python, and `Elixir <https://pypi.python.org/pypi/Elixir>`_, which makes
SQLAlchemy easier to use SQLAlchemy easier to use
* `SQLObject <http://www.sqlobject.org/>`_, another popular OR-Mapper * `SQLObject <http://www.sqlobject.org/>`_, another popular OR-Mapper
* `ZODB <https://launchpad.net/zodb>`_ and `Durus * `ZODB <https://launchpad.net/zodb>`_ and `Durus
<http://www.mems-exchange.org/software/durus/>`_, two object oriented <https://www.mems-exchange.org/software/>`_, two object oriented
databases databases
@ -671,10 +671,10 @@ experience. TurboGears gives the user flexibility in choosing components. For
example the ORM and template engine can be changed to use packages different example the ORM and template engine can be changed to use packages different
from those used by default. from those used by default.
The documentation can be found in the `TurboGears wiki The documentation can be found in the `TurboGears documentation
<http://docs.turbogears.org/>`_, where links to screencasts can be found. <https://turbogears.readthedocs.org/>`_, where links to screencasts can be found.
TurboGears has also an active user community which can respond to most related TurboGears has also an active user community which can respond to most related
questions. There is also a `TurboGears book <http://turbogearsbook.com/>`_ questions. There is also a `TurboGears book <http://turbogears.org/1.0/docs/TGBooks.html>`_
published, which is a good starting point. published, which is a good starting point.
The newest version of TurboGears, version 2.0, moves even further in direction The newest version of TurboGears, version 2.0, moves even further in direction

View file

@ -48,7 +48,7 @@ Key terms
repository of open source licensed packages made available for use by repository of open source licensed packages made available for use by
other Python users other Python users
* the `Python Packaging Authority * the `Python Packaging Authority
<https://packaging.python.org/en/latest/future.html>`__ are the group of <https://www.pypa.io/en/latest/>`__ are the group of
developers and documentation authors responsible for the maintenance and developers and documentation authors responsible for the maintenance and
evolution of the standard packaging tools and the associated metadata and evolution of the standard packaging tools and the associated metadata and
file format standards. They maintain a variety of tools, documentation file format standards. They maintain a variety of tools, documentation
@ -106,7 +106,7 @@ into an active virtual environment uses the commands shown above.
.. seealso:: .. seealso::
`Python Packaging User Guide: Installing Python Distribution Packages `Python Packaging User Guide: Installing Python Distribution Packages
<https://packaging.python.org/en/latest/installing.html#installing-python-distribution-packages>`__ <https://packaging.python.org/en/latest/installing/>`__
How do I ...? How do I ...?
@ -123,8 +123,8 @@ User Guide.
.. seealso:: .. seealso::
`Python Packaging User Guide: Setup for Installing Distribution Packages `Python Packaging User Guide: Requirements for Installing Packages
<https://packaging.python.org/en/latest/installing.html#setup-for-installing-distribution-packages>`__ <https://packaging.python.org/en/latest/installing/#requirements-for-installing-packages>`__
.. installing-per-user-installation: .. installing-per-user-installation:
@ -143,13 +143,13 @@ A number of scientific Python packages have complex binary dependencies, and
aren't currently easy to install using ``pip`` directly. At this point in aren't currently easy to install using ``pip`` directly. At this point in
time, it will often be easier for users to install these packages by time, it will often be easier for users to install these packages by
`other means `other means
<https://packaging.python.org/en/latest/science.html>`__ <https://packaging.python.org/en/latest/science/>`__
rather than attempting to install them with ``pip``. rather than attempting to install them with ``pip``.
.. seealso:: .. seealso::
`Python Packaging User Guide: Installing Scientific Packages `Python Packaging User Guide: Installing Scientific Packages
<https://packaging.python.org/en/latest/science.html>`__ <https://packaging.python.org/en/latest/science/>`__
... work with multiple versions of Python installed in parallel? ... work with multiple versions of Python installed in parallel?
@ -179,7 +179,7 @@ switch::
Once the Development & Deployment part of PPUG is fleshed out, some of Once the Development & Deployment part of PPUG is fleshed out, some of
those sections should be linked from new questions here (most notably, those sections should be linked from new questions here (most notably,
we should have a question about avoiding depending on PyPI that links to we should have a question about avoiding depending on PyPI that links to
https://packaging.python.org/en/latest/deployment.html#pypi-mirrors-and-caches) https://packaging.python.org/en/latest/mirrors/)
Common installation issues Common installation issues
@ -212,11 +212,11 @@ as users are more regularly able to install pre-built extensions rather
than needing to build them themselves. than needing to build them themselves.
Some of the solutions for installing `scientific software Some of the solutions for installing `scientific software
<https://packaging.python.org/en/latest/science.html>`__ <https://packaging.python.org/en/latest/science/>`__
that is not yet available as pre-built ``wheel`` files may also help with that is not yet available as pre-built ``wheel`` files may also help with
obtaining other binary extensions without needing to build them locally. obtaining other binary extensions without needing to build them locally.
.. seealso:: .. seealso::
`Python Packaging User Guide: Binary Extensions `Python Packaging User Guide: Binary Extensions
<https://packaging.python.org/en/latest/extensions.html>`__ <https://packaging.python.org/en/latest/extensions/>`__

View file

@ -41,7 +41,7 @@ asyncio currently provides two implementations of event loops:
On Windows, only sockets are supported (ex: pipes are not supported): On Windows, only sockets are supported (ex: pipes are not supported):
see the `MSDN documentation of select see the `MSDN documentation of select
<http://msdn.microsoft.com/en-us/library/windows/desktop/ms740141%28v=vs.85%29.aspx>`_. <https://msdn.microsoft.com/en-us/library/windows/desktop/ms740141%28v=vs.85%29.aspx>`_.
.. class:: ProactorEventLoop .. class:: ProactorEventLoop
@ -53,7 +53,7 @@ asyncio currently provides two implementations of event loops:
.. seealso:: .. seealso::
`MSDN documentation on I/O Completion Ports `MSDN documentation on I/O Completion Ports
<http://msdn.microsoft.com/en-us/library/windows/desktop/aa365198%28v=vs.85%29.aspx>`_. <https://msdn.microsoft.com/en-us/library/windows/desktop/aa365198%28v=vs.85%29.aspx>`_.
Example to use a :class:`ProactorEventLoop` on Windows:: Example to use a :class:`ProactorEventLoop` on Windows::
@ -107,7 +107,7 @@ Common limits of Windows event loops:
The resolution of the monotonic clock on Windows is usually around 15.6 msec. The resolution of the monotonic clock on Windows is usually around 15.6 msec.
The best resolution is 0.5 msec. The resolution depends on the hardware The best resolution is 0.5 msec. The resolution depends on the hardware
(availability of `HPET (availability of `HPET
<http://en.wikipedia.org/wiki/High_Precision_Event_Timer>`_) and on the Windows <https://en.wikipedia.org/wiki/High_Precision_Event_Timer>`_) and on the Windows
configuration. See :ref:`asyncio delayed calls <asyncio-delayed-calls>`. configuration. See :ref:`asyncio delayed calls <asyncio-delayed-calls>`.
.. versionchanged:: 3.5 .. versionchanged:: 3.5

View file

@ -51,7 +51,7 @@ Create a subprocess: high-level API using Process
It is the application's responsibility to ensure that all whitespace and It is the application's responsibility to ensure that all whitespace and
metacharacters are quoted appropriately to avoid `shell injection metacharacters are quoted appropriately to avoid `shell injection
<http://en.wikipedia.org/wiki/Shell_injection#Shell_injection>`_ <https://en.wikipedia.org/wiki/Shell_injection#Shell_injection>`_
vulnerabilities. The :func:`shlex.quote` function can be used to properly vulnerabilities. The :func:`shlex.quote` function can be used to properly
escape whitespace and shell metacharacters in strings that are going to be escape whitespace and shell metacharacters in strings that are going to be
used to construct shell commands. used to construct shell commands.
@ -134,7 +134,7 @@ Run subprocesses asynchronously using the :mod:`subprocess` module.
It is the application's responsibility to ensure that all whitespace and It is the application's responsibility to ensure that all whitespace and
metacharacters are quoted appropriately to avoid `shell injection metacharacters are quoted appropriately to avoid `shell injection
<http://en.wikipedia.org/wiki/Shell_injection#Shell_injection>`_ <https://en.wikipedia.org/wiki/Shell_injection#Shell_injection>`_
vulnerabilities. The :func:`shlex.quote` function can be used to properly vulnerabilities. The :func:`shlex.quote` function can be used to properly
escape whitespace and shell metacharacters in strings that are going to be escape whitespace and shell metacharacters in strings that are going to be
used to construct shell commands. used to construct shell commands.

View file

@ -374,12 +374,12 @@ or subtracting from an empty counter.
.. seealso:: .. seealso::
* `Bag class <http://www.gnu.org/software/smalltalk/manual-base/html_node/Bag.html>`_ * `Bag class <https://www.gnu.org/software/smalltalk/manual-base/html_node/Bag.html>`_
in Smalltalk. in Smalltalk.
* Wikipedia entry for `Multisets <http://en.wikipedia.org/wiki/Multiset>`_. * Wikipedia entry for `Multisets <https://en.wikipedia.org/wiki/Multiset>`_.
* `C++ multisets <http://www.demo2s.com/Tutorial/Cpp/0380__set-multiset/Catalog0380__set-multiset.htm>`_ * `C++ multisets <http://www.java2s.com/Tutorial/Cpp/0380__set-multiset/Catalog0380__set-multiset.htm>`_
tutorial with examples. tutorial with examples.
* For mathematical operations on multisets and their use cases, see * For mathematical operations on multisets and their use cases, see

View file

@ -7,7 +7,7 @@
:mod:`dbm` is a generic interface to variants of the DBM database --- :mod:`dbm` is a generic interface to variants of the DBM database ---
:mod:`dbm.gnu` or :mod:`dbm.ndbm`. If none of these modules is installed, the :mod:`dbm.gnu` or :mod:`dbm.ndbm`. If none of these modules is installed, the
slow-but-simple implementation in module :mod:`dbm.dumb` will be used. There slow-but-simple implementation in module :mod:`dbm.dumb` will be used. There
is a `third party interface <http://www.jcea.es/programacion/pybsddb.htm>`_ to is a `third party interface <https://www.jcea.es/programacion/pybsddb.htm>`_ to
the Oracle Berkeley DB. the Oracle Berkeley DB.

View file

@ -109,9 +109,6 @@ reset them before monitoring a calculation.
* IBM's General Decimal Arithmetic Specification, `The General Decimal Arithmetic * IBM's General Decimal Arithmetic Specification, `The General Decimal Arithmetic
Specification <http://speleotrove.com/decimal/decarith.html>`_. Specification <http://speleotrove.com/decimal/decarith.html>`_.
* IEEE standard 854-1987, `Unofficial IEEE 854 Text
<http://754r.ucbtest.org/standards/854.pdf>`_.
.. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% .. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

View file

@ -43,7 +43,7 @@ Here are the public methods of the :class:`Generator` class, imported from the
followed by a space at the beginning of the line. This is the only guaranteed followed by a space at the beginning of the line. This is the only guaranteed
portable way to avoid having such lines be mistaken for a Unix mailbox format portable way to avoid having such lines be mistaken for a Unix mailbox format
envelope header separator (see `WHY THE CONTENT-LENGTH FORMAT IS BAD envelope header separator (see `WHY THE CONTENT-LENGTH FORMAT IS BAD
<http://www.jwz.org/doc/content-length.html>`_ for details). *mangle_from_* <https://www.jwz.org/doc/content-length.html>`_ for details). *mangle_from_*
defaults to ``True``, but you might want to set this to ``False`` if you are not defaults to ``True``, but you might want to set this to ``False`` if you are not
writing Unix mailbox format files. writing Unix mailbox format files.
@ -123,7 +123,7 @@ formatted string representation of a message object. For more detail, see
i.e. ``From`` followed by a space at the beginning of the line. This is the i.e. ``From`` followed by a space at the beginning of the line. This is the
only guaranteed portable way to avoid having such lines be mistaken for a only guaranteed portable way to avoid having such lines be mistaken for a
Unix mailbox format envelope header separator (see `WHY THE CONTENT-LENGTH Unix mailbox format envelope header separator (see `WHY THE CONTENT-LENGTH
FORMAT IS BAD <http://www.jwz.org/doc/content-length.html>`_ for details). FORMAT IS BAD <https://www.jwz.org/doc/content-length.html>`_ for details).
*mangle_from_* defaults to ``True``, but you might want to set this to *mangle_from_* defaults to ``True``, but you might want to set this to
``False`` if you are not writing Unix mailbox format files. ``False`` if you are not writing Unix mailbox format files.

View file

@ -1418,7 +1418,7 @@ are always available. They are listed here in alphabetical order.
For practical suggestions on how to design cooperative classes using For practical suggestions on how to design cooperative classes using
:func:`super`, see `guide to using super() :func:`super`, see `guide to using super()
<http://rhettinger.wordpress.com/2011/05/26/super-considered-super/>`_. <https://rhettinger.wordpress.com/2011/05/26/super-considered-super/>`_.
.. _func-tuple: .. _func-tuple:

View file

@ -73,7 +73,7 @@ The :mod:`functools` module defines the following functions:
bypassing the cache, or for rewrapping the function with a different cache. bypassing the cache, or for rewrapping the function with a different cache.
An `LRU (least recently used) cache An `LRU (least recently used) cache
<http://en.wikipedia.org/wiki/Cache_algorithms#Examples>`_ works <https://en.wikipedia.org/wiki/Cache_algorithms#Examples>`_ works
best when the most recent calls are the best predictors of upcoming calls (for best when the most recent calls are the best predictors of upcoming calls (for
example, the most popular articles on a news server tend to change each day). example, the most popular articles on a news server tend to change each day).
The cache's size limit assures that the cache does not grow without bound on The cache's size limit assures that the cache does not grow without bound on
@ -99,9 +99,9 @@ The :mod:`functools` module defines the following functions:
CacheInfo(hits=3, misses=8, maxsize=32, currsize=8) CacheInfo(hits=3, misses=8, maxsize=32, currsize=8)
Example of efficiently computing Example of efficiently computing
`Fibonacci numbers <http://en.wikipedia.org/wiki/Fibonacci_number>`_ `Fibonacci numbers <https://en.wikipedia.org/wiki/Fibonacci_number>`_
using a cache to implement a using a cache to implement a
`dynamic programming <http://en.wikipedia.org/wiki/Dynamic_programming>`_ `dynamic programming <https://en.wikipedia.org/wiki/Dynamic_programming>`_
technique:: technique::
@lru_cache(maxsize=None) @lru_cache(maxsize=None)

View file

@ -132,7 +132,7 @@ the iterable into an actual heap.
Basic Examples Basic Examples
-------------- --------------
A `heapsort <http://en.wikipedia.org/wiki/Heapsort>`_ can be implemented by A `heapsort <https://en.wikipedia.org/wiki/Heapsort>`_ can be implemented by
pushing all values onto a heap and then popping off the smallest values one at a pushing all values onto a heap and then popping off the smallest values one at a
time:: time::
@ -163,7 +163,7 @@ Heap elements can be tuples. This is useful for assigning comparison values
Priority Queue Implementation Notes Priority Queue Implementation Notes
----------------------------------- -----------------------------------
A `priority queue <http://en.wikipedia.org/wiki/Priority_queue>`_ is common use A `priority queue <https://en.wikipedia.org/wiki/Priority_queue>`_ is common use
for a heap, and it presents several implementation challenges: for a heap, and it presents several implementation challenges:
* Sort stability: how do you get two tasks with equal priorities to be returned * Sort stability: how do you get two tasks with equal priorities to be returned

View file

@ -21,7 +21,7 @@ HTTPS protocols. It is normally not used directly --- the module
.. seealso:: .. seealso::
The `Requests package <http://requests.readthedocs.org/>`_ The `Requests package <https://requests.readthedocs.org/>`_
is recommended for a higher-level http client interface. is recommended for a higher-level http client interface.
.. note:: .. note::

View file

@ -117,7 +117,7 @@ loops that truncate the stream.
:func:`min` for a running minimum, :func:`max` for a running maximum, or :func:`min` for a running minimum, :func:`max` for a running maximum, or
:func:`operator.mul` for a running product. Amortization tables can be :func:`operator.mul` for a running product. Amortization tables can be
built by accumulating interest and applying payments. First-order built by accumulating interest and applying payments. First-order
`recurrence relations <http://en.wikipedia.org/wiki/Recurrence_relation>`_ `recurrence relations <https://en.wikipedia.org/wiki/Recurrence_relation>`_
can be modeled by supplying the initial value in the iterable and using only can be modeled by supplying the initial value in the iterable and using only
the accumulated total in *func* argument:: the accumulated total in *func* argument::
@ -132,7 +132,7 @@ loops that truncate the stream.
>>> list(accumulate(cashflows, lambda bal, pmt: bal*1.05 + pmt)) >>> list(accumulate(cashflows, lambda bal, pmt: bal*1.05 + pmt))
[1000, 960.0, 918.0, 873.9000000000001, 827.5950000000001] [1000, 960.0, 918.0, 873.9000000000001, 827.5950000000001]
# Chaotic recurrence relation http://en.wikipedia.org/wiki/Logistic_map # Chaotic recurrence relation https://en.wikipedia.org/wiki/Logistic_map
>>> logistic_map = lambda x, _: r * x * (1 - x) >>> logistic_map = lambda x, _: r * x * (1 - x)
>>> r = 3.8 >>> r = 3.8
>>> x0 = 0.4 >>> x0 = 0.4

View file

@ -10,7 +10,7 @@
:rfc:`7159` (which obsoletes :rfc:`4627`) and by :rfc:`7159` (which obsoletes :rfc:`4627`) and by
`ECMA-404 <http://www.ecma-international.org/publications/standards/Ecma-404.htm>`_, `ECMA-404 <http://www.ecma-international.org/publications/standards/Ecma-404.htm>`_,
is a lightweight data interchange format inspired by is a lightweight data interchange format inspired by
`JavaScript <http://en.wikipedia.org/wiki/JavaScript>`_ object literal syntax `JavaScript <https://en.wikipedia.org/wiki/JavaScript>`_ object literal syntax
(although it is not a strict subset of JavaScript [#rfc-errata]_ ). (although it is not a strict subset of JavaScript [#rfc-errata]_ ).
:mod:`json` exposes an API familiar to users of the standard library :mod:`json` exposes an API familiar to users of the standard library

View file

@ -1246,7 +1246,7 @@ with the :mod:`warnings` module.
The proposal which described this feature for inclusion in the Python standard The proposal which described this feature for inclusion in the Python standard
library. library.
`Original Python logging package <http://www.red-dove.com/python_logging.html>`_ `Original Python logging package <https://www.red-dove.com/python_logging.html>`_
This is the original source for the :mod:`logging` package. The version of the This is the original source for the :mod:`logging` package. The version of the
package available from this site is suitable for use with Python 1.5.2, 2.1.x package available from this site is suitable for use with Python 1.5.2, 2.1.x
and 2.2.x, which do not include the :mod:`logging` package in the standard and 2.2.x, which do not include the :mod:`logging` package in the standard

View file

@ -484,7 +484,7 @@ Supported mailbox formats are Maildir, mbox, MH, Babyl, and MMDF.
`mbox man page from tin <http://www.tin.org/bin/man.cgi?section=5&topic=mbox>`_ `mbox man page from tin <http://www.tin.org/bin/man.cgi?section=5&topic=mbox>`_
Another specification of the format, with details on locking. Another specification of the format, with details on locking.
`Configuring Netscape Mail on Unix: Why The Content-Length Format is Bad <http://www.jwz.org/doc/content-length.html>`_ `Configuring Netscape Mail on Unix: Why The Content-Length Format is Bad <https://www.jwz.org/doc/content-length.html>`_
An argument for using the original mbox format rather than a variation. An argument for using the original mbox format rather than a variation.
`"mbox" is a family of several mutually incompatible mailbox formats <http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/mail-mbox-formats.html>`_ `"mbox" is a family of several mutually incompatible mailbox formats <http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/mail-mbox-formats.html>`_
@ -744,7 +744,7 @@ Supported mailbox formats are Maildir, mbox, MH, Babyl, and MMDF.
`mmdf man page from tin <http://www.tin.org/bin/man.cgi?section=5&topic=mmdf>`_ `mmdf man page from tin <http://www.tin.org/bin/man.cgi?section=5&topic=mmdf>`_
A specification of MMDF format from the documentation of tin, a newsreader. A specification of MMDF format from the documentation of tin, a newsreader.
`MMDF <http://en.wikipedia.org/wiki/MMDF>`_ `MMDF <https://en.wikipedia.org/wiki/MMDF>`_
A Wikipedia article describing the Multichannel Memorandum Distribution A Wikipedia article describing the Multichannel Memorandum Distribution
Facility. Facility.

View file

@ -97,7 +97,7 @@ Number-theoretic and representation functions
For further discussion and two alternative approaches, see the `ASPN cookbook For further discussion and two alternative approaches, see the `ASPN cookbook
recipes for accurate floating point summation recipes for accurate floating point summation
<http://code.activestate.com/recipes/393090/>`_\. <https://code.activestate.com/recipes/393090/>`_\.
.. function:: gcd(a, b) .. function:: gcd(a, b)
@ -204,7 +204,7 @@ Power and logarithmic functions
Return ``e**x - 1``. For small floats *x*, the subtraction in ``exp(x) - 1`` Return ``e**x - 1``. For small floats *x*, the subtraction in ``exp(x) - 1``
can result in a `significant loss of precision can result in a `significant loss of precision
<http://en.wikipedia.org/wiki/Loss_of_significance>`_\; the :func:`expm1` <https://en.wikipedia.org/wiki/Loss_of_significance>`_\; the :func:`expm1`
function provides a way to compute this quantity to full precision:: function provides a way to compute this quantity to full precision::
>>> from math import exp, expm1 >>> from math import exp, expm1
@ -332,7 +332,7 @@ Angular conversion
Hyperbolic functions Hyperbolic functions
-------------------- --------------------
`Hyperbolic functions <http://en.wikipedia.org/wiki/Hyperbolic_function>`_ `Hyperbolic functions <https://en.wikipedia.org/wiki/Hyperbolic_function>`_
are analogs of trigonometric functions that are based on hyperbolas are analogs of trigonometric functions that are based on hyperbolas
instead of circles. instead of circles.
@ -371,12 +371,12 @@ Special functions
.. function:: erf(x) .. function:: erf(x)
Return the `error function <http://en.wikipedia.org/wiki/Error_function>`_ at Return the `error function <https://en.wikipedia.org/wiki/Error_function>`_ at
*x*. *x*.
The :func:`erf` function can be used to compute traditional statistical The :func:`erf` function can be used to compute traditional statistical
functions such as the `cumulative standard normal distribution functions such as the `cumulative standard normal distribution
<http://en.wikipedia.org/wiki/Normal_distribution#Cumulative_distribution_function>`_:: <https://en.wikipedia.org/wiki/Normal_distribution#Cumulative_distribution_function>`_::
def phi(x): def phi(x):
'Cumulative distribution function for the standard normal distribution' 'Cumulative distribution function for the standard normal distribution'
@ -388,17 +388,17 @@ Special functions
.. function:: erfc(x) .. function:: erfc(x)
Return the complementary error function at *x*. The `complementary error Return the complementary error function at *x*. The `complementary error
function <http://en.wikipedia.org/wiki/Error_function>`_ is defined as function <https://en.wikipedia.org/wiki/Error_function>`_ is defined as
``1.0 - erf(x)``. It is used for large values of *x* where a subtraction ``1.0 - erf(x)``. It is used for large values of *x* where a subtraction
from one would cause a `loss of significance from one would cause a `loss of significance
<http://en.wikipedia.org/wiki/Loss_of_significance>`_\. <https://en.wikipedia.org/wiki/Loss_of_significance>`_\.
.. versionadded:: 3.2 .. versionadded:: 3.2
.. function:: gamma(x) .. function:: gamma(x)
Return the `Gamma function <http://en.wikipedia.org/wiki/Gamma_function>`_ at Return the `Gamma function <https://en.wikipedia.org/wiki/Gamma_function>`_ at
*x*. *x*.
.. versionadded:: 3.2 .. versionadded:: 3.2

View file

@ -120,9 +120,9 @@ structures.
.. seealso:: .. seealso::
`FCICreateFile <http://msdn.microsoft.com/library?url=/library/en-us/devnotes/winprog/fcicreate.asp>`_ `FCICreateFile <https://msdn.microsoft.com/library?url=/library/en-us/devnotes/winprog/fcicreate.asp>`_
`UuidCreate <http://msdn.microsoft.com/library?url=/library/en-us/rpc/rpc/uuidcreate.asp>`_ `UuidCreate <https://msdn.microsoft.com/library?url=/library/en-us/rpc/rpc/uuidcreate.asp>`_
`UuidToString <http://msdn.microsoft.com/library?url=/library/en-us/rpc/rpc/uuidtostring.asp>`_ `UuidToString <https://msdn.microsoft.com/library?url=/library/en-us/rpc/rpc/uuidtostring.asp>`_
.. _database-objects: .. _database-objects:
@ -151,9 +151,9 @@ Database Objects
.. seealso:: .. seealso::
`MSIDatabaseOpenView <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msidatabaseopenview.asp>`_ `MSIDatabaseOpenView <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msidatabaseopenview.asp>`_
`MSIDatabaseCommit <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msidatabasecommit.asp>`_ `MSIDatabaseCommit <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msidatabasecommit.asp>`_
`MSIGetSummaryInformation <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msigetsummaryinformation.asp>`_ `MSIGetSummaryInformation <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msigetsummaryinformation.asp>`_
.. _view-objects: .. _view-objects:
@ -199,11 +199,11 @@ View Objects
.. seealso:: .. seealso::
`MsiViewExecute <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msiviewexecute.asp>`_ `MsiViewExecute <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msiviewexecute.asp>`_
`MSIViewGetColumnInfo <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msiviewgetcolumninfo.asp>`_ `MSIViewGetColumnInfo <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msiviewgetcolumninfo.asp>`_
`MsiViewFetch <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msiviewfetch.asp>`_ `MsiViewFetch <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msiviewfetch.asp>`_
`MsiViewModify <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msiviewmodify.asp>`_ `MsiViewModify <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msiviewmodify.asp>`_
`MsiViewClose <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msiviewclose.asp>`_ `MsiViewClose <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msiviewclose.asp>`_
.. _summary-objects: .. _summary-objects:
@ -243,10 +243,10 @@ Summary Information Objects
.. seealso:: .. seealso::
`MsiSummaryInfoGetProperty <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msisummaryinfogetproperty.asp>`_ `MsiSummaryInfoGetProperty <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msisummaryinfogetproperty.asp>`_
`MsiSummaryInfoGetPropertyCount <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msisummaryinfogetpropertycount.asp>`_ `MsiSummaryInfoGetPropertyCount <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msisummaryinfogetpropertycount.asp>`_
`MsiSummaryInfoSetProperty <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msisummaryinfosetproperty.asp>`_ `MsiSummaryInfoSetProperty <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msisummaryinfosetproperty.asp>`_
`MsiSummaryInfoPersist <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msisummaryinfopersist.asp>`_ `MsiSummaryInfoPersist <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msisummaryinfopersist.asp>`_
.. _record-objects: .. _record-objects:
@ -297,11 +297,11 @@ Record Objects
.. seealso:: .. seealso::
`MsiRecordGetFieldCount <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msirecordgetfieldcount.asp>`_ `MsiRecordGetFieldCount <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msirecordgetfieldcount.asp>`_
`MsiRecordSetString <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msirecordsetstring.asp>`_ `MsiRecordSetString <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msirecordsetstring.asp>`_
`MsiRecordSetStream <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msirecordsetstream.asp>`_ `MsiRecordSetStream <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msirecordsetstream.asp>`_
`MsiRecordSetInteger <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msirecordsetinteger.asp>`_ `MsiRecordSetInteger <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msirecordsetinteger.asp>`_
`MsiRecordClear <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msirecordclear.asp>`_ `MsiRecordClear <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msirecordclear.asp>`_
.. _msi-errors: .. _msi-errors:
@ -393,10 +393,10 @@ Directory Objects
.. seealso:: .. seealso::
`Directory Table <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/directory_table.asp>`_ `Directory Table <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/directory_table.asp>`_
`File Table <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/file_table.asp>`_ `File Table <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/file_table.asp>`_
`Component Table <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/component_table.asp>`_ `Component Table <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/component_table.asp>`_
`FeatureComponents Table <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/featurecomponents_table.asp>`_ `FeatureComponents Table <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/featurecomponents_table.asp>`_
.. _features: .. _features:
@ -421,7 +421,7 @@ Features
.. seealso:: .. seealso::
`Feature Table <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/feature_table.asp>`_ `Feature Table <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/feature_table.asp>`_
.. _msi-gui: .. _msi-gui:
@ -516,13 +516,13 @@ for installing Python packages.
.. seealso:: .. seealso::
`Dialog Table <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/dialog_table.asp>`_ `Dialog Table <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/dialog_table.asp>`_
`Control Table <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/control_table.asp>`_ `Control Table <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/control_table.asp>`_
`Control Types <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/controls.asp>`_ `Control Types <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/controls.asp>`_
`ControlCondition Table <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/controlcondition_table.asp>`_ `ControlCondition Table <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/controlcondition_table.asp>`_
`ControlEvent Table <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/controlevent_table.asp>`_ `ControlEvent Table <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/controlevent_table.asp>`_
`EventMapping Table <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/eventmapping_table.asp>`_ `EventMapping Table <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/eventmapping_table.asp>`_
`RadioButton Table <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/radiobutton_table.asp>`_ `RadioButton Table <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/radiobutton_table.asp>`_
.. _msi-tables: .. _msi-tables:

View file

@ -894,7 +894,7 @@ The following constants are options for the *flags* parameter to the
:func:`~os.open` function. They can be combined using the bitwise OR operator :func:`~os.open` function. They can be combined using the bitwise OR operator
``|``. Some of them are not available on all platforms. For descriptions of ``|``. Some of them are not available on all platforms. For descriptions of
their availability and use, consult the :manpage:`open(2)` manual page on Unix their availability and use, consult the :manpage:`open(2)` manual page on Unix
or `the MSDN <http://msdn.microsoft.com/en-us/library/z0kc8e3z.aspx>`_ on Windows. or `the MSDN <https://msdn.microsoft.com/en-us/library/z0kc8e3z.aspx>`_ on Windows.
.. data:: O_RDONLY .. data:: O_RDONLY
@ -1922,9 +1922,9 @@ features:
and and
`readdir() <http://pubs.opengroup.org/onlinepubs/009695399/functions/readdir_r.html>`_ `readdir() <http://pubs.opengroup.org/onlinepubs/009695399/functions/readdir_r.html>`_
functions. On Windows, it uses the Win32 functions. On Windows, it uses the Win32
`FindFirstFileW <http://msdn.microsoft.com/en-us/library/windows/desktop/aa364418(v=vs.85).aspx>`_ `FindFirstFileW <https://msdn.microsoft.com/en-us/library/windows/desktop/aa364418(v=vs.85).aspx>`_
and and
`FindNextFileW <http://msdn.microsoft.com/en-us/library/windows/desktop/aa364428(v=vs.85).aspx>`_ `FindNextFileW <https://msdn.microsoft.com/en-us/library/windows/desktop/aa364428(v=vs.85).aspx>`_
functions. functions.
.. versionadded:: 3.5 .. versionadded:: 3.5

View file

@ -8,33 +8,33 @@ available for Python:
.. seealso:: .. seealso::
`PyGObject <https://live.gnome.org/PyGObject>`_ `PyGObject <https://wiki.gnome.org/Projects/PyGObject>`_
provides introspection bindings for C libraries using provides introspection bindings for C libraries using
`GObject <https://developer.gnome.org/gobject/stable/>`_. One of `GObject <https://developer.gnome.org/gobject/stable/>`_. One of
these libraries is the `GTK+ 3 <http://www.gtk.org/>`_ widget set. these libraries is the `GTK+ 3 <http://www.gtk.org/>`_ widget set.
GTK+ comes with many more widgets than Tkinter provides. An online GTK+ comes with many more widgets than Tkinter provides. An online
`Python GTK+ 3 Tutorial <http://python-gtk-3-tutorial.readthedocs.org/en/latest/>`_ `Python GTK+ 3 Tutorial <https://python-gtk-3-tutorial.readthedocs.org/en/latest/>`_
is available. is available.
`PyGTK <http://www.pygtk.org/>`_ provides bindings for an older version `PyGTK <http://www.pygtk.org/>`_ provides bindings for an older version
of the library, GTK+ 2. It provides an object oriented interface that of the library, GTK+ 2. It provides an object oriented interface that
is slightly higher level than the C one. There are also bindings to is slightly higher level than the C one. There are also bindings to
`GNOME <http://www.gnome.org>`_. An online `tutorial `GNOME <https://www.gnome.org/>`_. An online `tutorial
<http://www.pygtk.org/pygtk2tutorial/index.html>`_ is available. <http://www.pygtk.org/pygtk2tutorial/index.html>`_ is available.
`PyQt <http://www.riverbankcomputing.co.uk/software/pyqt/intro>`_ `PyQt <https://riverbankcomputing.com/software/pyqt/intro>`_
PyQt is a :program:`sip`\ -wrapped binding to the Qt toolkit. Qt is an PyQt is a :program:`sip`\ -wrapped binding to the Qt toolkit. Qt is an
extensive C++ GUI application development framework that is extensive C++ GUI application development framework that is
available for Unix, Windows and Mac OS X. :program:`sip` is a tool available for Unix, Windows and Mac OS X. :program:`sip` is a tool
for generating bindings for C++ libraries as Python classes, and for generating bindings for C++ libraries as Python classes, and
is specifically designed for Python. The *PyQt3* bindings have a is specifically designed for Python. The *PyQt3* bindings have a
book, `GUI Programming with Python: QT Edition book, `GUI Programming with Python: QT Edition
<http://www.commandprompt.com/community/pyqt/>`_ by Boudewijn <https://www.commandprompt.com/community/pyqt/>`_ by Boudewijn
Rempt. The *PyQt4* bindings also have a book, `Rapid GUI Programming Rempt. The *PyQt4* bindings also have a book, `Rapid GUI Programming
with Python and Qt <http://www.qtrac.eu/pyqtbook.html>`_, by Mark with Python and Qt <http://www.qtrac.eu/pyqtbook.html>`_, by Mark
Summerfield. Summerfield.
`PySide <http://qt-project.org/wiki/PySide>`_ `PySide <https://wiki.qt.io/PySide>`_
is a newer binding to the Qt toolkit, provided by Nokia. is a newer binding to the Qt toolkit, provided by Nokia.
Compared to PyQt, its licensing scheme is friendlier to non-open source Compared to PyQt, its licensing scheme is friendlier to non-open source
applications. applications.
@ -50,7 +50,7 @@ available for Python:
low-level device context drawing, drag and drop, system clipboard access, low-level device context drawing, drag and drop, system clipboard access,
an XML-based resource format and more, including an ever growing library an XML-based resource format and more, including an ever growing library
of user-contributed modules. wxPython has a book, `wxPython in Action of user-contributed modules. wxPython has a book, `wxPython in Action
<http://www.manning.com/rappin/>`_, by Noel Rappin and <https://www.manning.com/books/wxpython-in-action>`_, by Noel Rappin and
Robin Dunn. Robin Dunn.
PyGTK, PyQt, and wxPython, all have a modern look and feel and more PyGTK, PyQt, and wxPython, all have a modern look and feel and more

View file

@ -267,7 +267,7 @@ Alternative Generator:
`Complementary-Multiply-with-Carry recipe `Complementary-Multiply-with-Carry recipe
<http://code.activestate.com/recipes/576707/>`_ for a compatible alternative <https://code.activestate.com/recipes/576707/>`_ for a compatible alternative
random number generator with a long period and comparatively simple update random number generator with a long period and comparatively simple update
operations. operations.

View file

@ -1389,7 +1389,7 @@ functionally identical:
Writing a Tokenizer Writing a Tokenizer
^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^
A `tokenizer or scanner <http://en.wikipedia.org/wiki/Lexical_analysis>`_ A `tokenizer or scanner <https://en.wikipedia.org/wiki/Lexical_analysis>`_
analyzes a string to categorize groups of characters. This is a useful first analyzes a string to categorize groups of characters. This is a useful first
step in writing a compiler or interpreter. step in writing a compiler or interpreter.

View file

@ -76,7 +76,7 @@ Two additional methods are supported:
.. seealso:: .. seealso::
`Persistent dictionary recipe <http://code.activestate.com/recipes/576642/>`_ `Persistent dictionary recipe <https://code.activestate.com/recipes/576642/>`_
with widely supported storage formats and having the speed of native with widely supported storage formats and having the speed of native
dictionaries. dictionaries.
@ -137,7 +137,7 @@ Restrictions
A subclass of :class:`Shelf` which exposes :meth:`first`, :meth:`!next`, A subclass of :class:`Shelf` which exposes :meth:`first`, :meth:`!next`,
:meth:`previous`, :meth:`last` and :meth:`set_location` which are available :meth:`previous`, :meth:`last` and :meth:`set_location` which are available
in the third-party :mod:`bsddb` module from `pybsddb in the third-party :mod:`bsddb` module from `pybsddb
<http://www.jcea.es/programacion/pybsddb.htm>`_ but not in other database <https://www.jcea.es/programacion/pybsddb.htm>`_ but not in other database
modules. The *dict* object passed to the constructor must support those modules. The *dict* object passed to the constructor must support those
methods. This is generally accomplished by calling one of methods. This is generally accomplished by calling one of
:func:`bsddb.hashopen`, :func:`bsddb.btopen` or :func:`bsddb.rnopen`. The :func:`bsddb.hashopen`, :func:`bsddb.btopen` or :func:`bsddb.rnopen`. The

View file

@ -983,7 +983,7 @@ to sockets.
The :meth:`ioctl` method is a limited interface to the WSAIoctl system The :meth:`ioctl` method is a limited interface to the WSAIoctl system
interface. Please refer to the `Win32 documentation interface. Please refer to the `Win32 documentation
<http://msdn.microsoft.com/en-us/library/ms741621%28VS.85%29.aspx>`_ for more <https://msdn.microsoft.com/en-us/library/ms741621%28VS.85%29.aspx>`_ for more
information. information.
On other platforms, the generic :func:`fcntl.fcntl` and :func:`fcntl.ioctl` On other platforms, the generic :func:`fcntl.fcntl` and :func:`fcntl.ioctl`

View file

@ -206,7 +206,7 @@ instead.
The *ciphers* parameter sets the available ciphers for this SSL object. The *ciphers* parameter sets the available ciphers for this SSL object.
It should be a string in the `OpenSSL cipher list format It should be a string in the `OpenSSL cipher list format
<http://www.openssl.org/docs/apps/ciphers.html#CIPHER_LIST_FORMAT>`_. <http://www.openssl.org/docs/apps/ciphers.html#CIPHER-LIST-FORMAT>`_.
The parameter ``do_handshake_on_connect`` specifies whether to do the SSL The parameter ``do_handshake_on_connect`` specifies whether to do the SSL
handshake automatically after doing a :meth:`socket.connect`, or whether the handshake automatically after doing a :meth:`socket.connect`, or whether the
@ -296,7 +296,7 @@ Random generation
Read the Wikipedia article, `Cryptographically secure pseudorandom number Read the Wikipedia article, `Cryptographically secure pseudorandom number
generator (CSPRNG) generator (CSPRNG)
<http://en.wikipedia.org/wiki/Cryptographically_secure_pseudorandom_number_generator>`_, <https://en.wikipedia.org/wiki/Cryptographically_secure_pseudorandom_number_generator>`_,
to get the requirements of a cryptographically generator. to get the requirements of a cryptographically generator.
.. versionadded:: 3.3 .. versionadded:: 3.3
@ -721,7 +721,7 @@ Constants
Whether the OpenSSL library has built-in support for *Next Protocol Whether the OpenSSL library has built-in support for *Next Protocol
Negotiation* as described in the `NPN draft specification Negotiation* as described in the `NPN draft specification
<http://tools.ietf.org/html/draft-agl-tls-nextprotoneg>`_. When true, <https://tools.ietf.org/html/draft-agl-tls-nextprotoneg>`_. When true,
you can use the :meth:`SSLContext.set_npn_protocols` method to advertise you can use the :meth:`SSLContext.set_npn_protocols` method to advertise
which protocols you want to support. which protocols you want to support.
@ -1212,7 +1212,7 @@ to speed up repeated connections from the same clients.
Set the available ciphers for sockets created with this context. Set the available ciphers for sockets created with this context.
It should be a string in the `OpenSSL cipher list format It should be a string in the `OpenSSL cipher list format
<http://www.openssl.org/docs/apps/ciphers.html#CIPHER_LIST_FORMAT>`_. <http://www.openssl.org/docs/apps/ciphers.html#CIPHER-LIST-FORMAT>`_.
If no cipher can be selected (because compile-time options or other If no cipher can be selected (because compile-time options or other
configuration forbids use of all the specified ciphers), an configuration forbids use of all the specified ciphers), an
:class:`SSLError` will be raised. :class:`SSLError` will be raised.
@ -1241,7 +1241,7 @@ to speed up repeated connections from the same clients.
handshake. It should be a list of strings, like ``['http/1.1', 'spdy/2']``, handshake. It should be a list of strings, like ``['http/1.1', 'spdy/2']``,
ordered by preference. The selection of a protocol will happen during the ordered by preference. The selection of a protocol will happen during the
handshake, and will play out according to the `NPN draft specification handshake, and will play out according to the `NPN draft specification
<http://tools.ietf.org/html/draft-agl-tls-nextprotoneg>`_. After a <https://tools.ietf.org/html/draft-agl-tls-nextprotoneg>`_. After a
successful handshake, the :meth:`SSLSocket.selected_npn_protocol` method will successful handshake, the :meth:`SSLSocket.selected_npn_protocol` method will
return the agreed-upon protocol. return the agreed-upon protocol.
@ -2019,7 +2019,7 @@ enabled when negotiating a SSL session is possible through the
:meth:`SSLContext.set_ciphers` method. Starting from Python 3.2.3, the :meth:`SSLContext.set_ciphers` method. Starting from Python 3.2.3, the
ssl module disables certain weak ciphers by default, but you may want ssl module disables certain weak ciphers by default, but you may want
to further restrict the cipher choice. Be sure to read OpenSSL's documentation to further restrict the cipher choice. Be sure to read OpenSSL's documentation
about the `cipher list format <http://www.openssl.org/docs/apps/ciphers.html#CIPHER_LIST_FORMAT>`_. about the `cipher list format <http://www.openssl.org/docs/apps/ciphers.html#CIPHER-LIST-FORMAT>`_.
If you want to check which ciphers are enabled by a given cipher list, use the If you want to check which ciphers are enabled by a given cipher list, use the
``openssl ciphers`` command on your system. ``openssl ciphers`` command on your system.
@ -2040,25 +2040,25 @@ successful call of :func:`~ssl.RAND_add`, :func:`~ssl.RAND_bytes` or
Class :class:`socket.socket` Class :class:`socket.socket`
Documentation of underlying :mod:`socket` class Documentation of underlying :mod:`socket` class
`SSL/TLS Strong Encryption: An Introduction <http://httpd.apache.org/docs/trunk/en/ssl/ssl_intro.html>`_ `SSL/TLS Strong Encryption: An Introduction <https://httpd.apache.org/docs/trunk/en/ssl/ssl_intro.html>`_
Intro from the Apache webserver documentation Intro from the Apache webserver documentation
`RFC 1422: Privacy Enhancement for Internet Electronic Mail: Part II: Certificate-Based Key Management <http://www.ietf.org/rfc/rfc1422>`_ `RFC 1422: Privacy Enhancement for Internet Electronic Mail: Part II: Certificate-Based Key Management <https://www.ietf.org/rfc/rfc1422>`_
Steve Kent Steve Kent
`RFC 1750: Randomness Recommendations for Security <http://www.ietf.org/rfc/rfc1750>`_ `RFC 1750: Randomness Recommendations for Security <https://www.ietf.org/rfc/rfc1750>`_
D. Eastlake et. al. D. Eastlake et. al.
`RFC 3280: Internet X.509 Public Key Infrastructure Certificate and CRL Profile <http://www.ietf.org/rfc/rfc3280>`_ `RFC 3280: Internet X.509 Public Key Infrastructure Certificate and CRL Profile <https://www.ietf.org/rfc/rfc3280>`_
Housley et. al. Housley et. al.
`RFC 4366: Transport Layer Security (TLS) Extensions <http://www.ietf.org/rfc/rfc4366>`_ `RFC 4366: Transport Layer Security (TLS) Extensions <https://www.ietf.org/rfc/rfc4366>`_
Blake-Wilson et. al. Blake-Wilson et. al.
`RFC 5246: The Transport Layer Security (TLS) Protocol Version 1.2 <http://tools.ietf.org/html/rfc5246>`_ `RFC 5246: The Transport Layer Security (TLS) Protocol Version 1.2 <https://tools.ietf.org/html/rfc5246>`_
T. Dierks et. al. T. Dierks et. al.
`RFC 6066: Transport Layer Security (TLS) Extensions <http://tools.ietf.org/html/rfc6066>`_ `RFC 6066: Transport Layer Security (TLS) Extensions <https://tools.ietf.org/html/rfc6066>`_
D. Eastlake D. Eastlake
`IANA TLS: Transport Layer Security (TLS) Parameters <http://www.iana.org/assignments/tls-parameters/tls-parameters.xml>`_ `IANA TLS: Transport Layer Security (TLS) Parameters <http://www.iana.org/assignments/tls-parameters/tls-parameters.xml>`_

View file

@ -403,7 +403,7 @@ See the \*BSD or Mac OS systems man page :manpage:`chflags(2)` for more informat
On Windows, the following file attribute constants are available for use when On Windows, the following file attribute constants are available for use when
testing bits in the ``st_file_attributes`` member returned by :func:`os.stat`. testing bits in the ``st_file_attributes`` member returned by :func:`os.stat`.
See the `Windows API documentation See the `Windows API documentation
<http://msdn.microsoft.com/en-us/library/windows/desktop/gg258117.aspx>`_ <https://msdn.microsoft.com/en-us/library/windows/desktop/gg258117.aspx>`_
for more detail on the meaning of these constants. for more detail on the meaning of these constants.
.. data:: FILE_ATTRIBUTE_ARCHIVE .. data:: FILE_ATTRIBUTE_ARCHIVE

View file

@ -475,7 +475,7 @@ functions.
execute. On Windows, in order to run a `side-by-side assembly`_ the execute. On Windows, in order to run a `side-by-side assembly`_ the
specified *env* **must** include a valid :envvar:`SystemRoot`. specified *env* **must** include a valid :envvar:`SystemRoot`.
.. _side-by-side assembly: http://en.wikipedia.org/wiki/Side-by-Side_Assembly .. _side-by-side assembly: https://en.wikipedia.org/wiki/Side-by-Side_Assembly
If *universal_newlines* is ``True``, the file objects *stdin*, *stdout* If *universal_newlines* is ``True``, the file objects *stdin*, *stdout*
and *stderr* are opened as text streams in universal newlines mode, as and *stderr* are opened as text streams in universal newlines mode, as
@ -536,7 +536,7 @@ including shell metacharacters, can safely be passed to child processes.
If the shell is invoked explicitly, via ``shell=True``, it is the application's If the shell is invoked explicitly, via ``shell=True``, it is the application's
responsibility to ensure that all whitespace and metacharacters are responsibility to ensure that all whitespace and metacharacters are
quoted appropriately to avoid quoted appropriately to avoid
`shell injection <http://en.wikipedia.org/wiki/Shell_injection#Shell_injection>`_ `shell injection <https://en.wikipedia.org/wiki/Shell_injection#Shell_injection>`_
vulnerabilities. vulnerabilities.
When using ``shell=True``, the :func:`shlex.quote` function can be When using ``shell=True``, the :func:`shlex.quote` function can be
@ -721,7 +721,7 @@ on Windows.
.. class:: STARTUPINFO() .. class:: STARTUPINFO()
Partial support of the Windows Partial support of the Windows
`STARTUPINFO <http://msdn.microsoft.com/en-us/library/ms686331(v=vs.85).aspx>`__ `STARTUPINFO <https://msdn.microsoft.com/en-us/library/ms686331(v=vs.85).aspx>`__
structure is used for :class:`Popen` creation. structure is used for :class:`Popen` creation.
.. attribute:: dwFlags .. attribute:: dwFlags
@ -757,7 +757,7 @@ on Windows.
If :attr:`dwFlags` specifies :data:`STARTF_USESHOWWINDOW`, this attribute If :attr:`dwFlags` specifies :data:`STARTF_USESHOWWINDOW`, this attribute
can be any of the values that can be specified in the ``nCmdShow`` can be any of the values that can be specified in the ``nCmdShow``
parameter for the parameter for the
`ShowWindow <http://msdn.microsoft.com/en-us/library/ms633548(v=vs.85).aspx>`__ `ShowWindow <https://msdn.microsoft.com/en-us/library/ms633548(v=vs.85).aspx>`__
function, except for ``SW_SHOWDEFAULT``. Otherwise, this attribute is function, except for ``SW_SHOWDEFAULT``. Otherwise, this attribute is
ignored. ignored.

View file

@ -661,7 +661,7 @@ The :mod:`test.support` module defines the following classes:
are expected to crash a subprocess. are expected to crash a subprocess.
On Windows, it disables Windows Error Reporting dialogs using On Windows, it disables Windows Error Reporting dialogs using
`SetErrorMode <http://msdn.microsoft.com/en-us/library/windows/desktop/ms680621.aspx>`_. `SetErrorMode <https://msdn.microsoft.com/en-us/library/windows/desktop/ms680621.aspx>`_.
On UNIX, :func:`resource.setrlimit` is used to set On UNIX, :func:`resource.setrlimit` is used to set
:attr:`resource.RLIMIT_CORE`'s soft limit to 0 to prevent coredump file :attr:`resource.RLIMIT_CORE`'s soft limit to 0 to prevent coredump file

View file

@ -31,13 +31,13 @@ this should open a window demonstrating a simple Tk interface.
`Tcl/Tk manual <http://www.tcl.tk/man/tcl8.5/>`_ `Tcl/Tk manual <http://www.tcl.tk/man/tcl8.5/>`_
Official manual for the latest tcl/tk version. Official manual for the latest tcl/tk version.
`Programming Python <http://www.rmi.net/~lutz/about-pp4e.html>`_ `Programming Python <http://learning-python.com/books/about-pp4e.html>`_
Book by Mark Lutz, has excellent coverage of Tkinter. Book by Mark Lutz, has excellent coverage of Tkinter.
`Modern Tkinter for Busy Python Developers <http://www.amazon.com/Modern-Tkinter-Python-Developers-ebook/dp/B0071QDNLO/>`_ `Modern Tkinter for Busy Python Developers <http://www.amazon.com/Modern-Tkinter-Python-Developers-ebook/dp/B0071QDNLO/>`_
Book by Mark Rozerman about building attractive and modern graphical user interfaces with Python and Tkinter. Book by Mark Rozerman about building attractive and modern graphical user interfaces with Python and Tkinter.
`Python and Tkinter Programming <http://www.manning.com/grayson/>`_ `Python and Tkinter Programming <https://www.manning.com/books/python-and-tkinter-programming>`_
The book by John Grayson (ISBN 1-884777-81-3). The book by John Grayson (ISBN 1-884777-81-3).

View file

@ -549,7 +549,7 @@ Calls to the date constructor are recorded in the ``mock_date`` attributes
An alternative way of dealing with mocking dates, or other builtin classes, An alternative way of dealing with mocking dates, or other builtin classes,
is discussed in `this blog entry is discussed in `this blog entry
<http://www.williamjohnbert.com/2011/07/how-to-unit-testing-in-django-with-mocking-and-patching/>`_. <http://williambert.online/2011/07/how-to-unit-testing-in-django-with-mocking-and-patching/>`_.
Mocking a Generator Method Mocking a Generator Method
@ -1251,7 +1251,7 @@ With a bit of tweaking you could have the comparison function raise the
:exc:`AssertionError` directly and provide a more useful failure message. :exc:`AssertionError` directly and provide a more useful failure message.
As of version 1.5, the Python testing library `PyHamcrest As of version 1.5, the Python testing library `PyHamcrest
<https://pypi.python.org/pypi/PyHamcrest>`_ provides similar functionality, <https://pyhamcrest.readthedocs.org/>`_ provides similar functionality,
that may be useful here, in the form of its equality matcher that may be useful here, in the form of its equality matcher
(`hamcrest.library.integration.match_equality (`hamcrest.library.integration.match_equality
<http://pyhamcrest.readthedocs.org/en/stable/integration/#module-hamcrest.library.integration.match_equality>`_). <https://pyhamcrest.readthedocs.org/en/release-1.8/integration/#module-hamcrest.library.integration.match_equality>`_).

View file

@ -14,7 +14,7 @@ authentication, redirections, cookies and more.
.. seealso:: .. seealso::
The `Requests package <http://requests.readthedocs.org/>`_ The `Requests package <https://requests.readthedocs.org/>`_
is recommended for a higher-level http client interface. is recommended for a higher-level http client interface.

View file

@ -134,7 +134,7 @@ This module offers the following functions:
The :func:`DeleteKeyEx` function is implemented with the RegDeleteKeyEx The :func:`DeleteKeyEx` function is implemented with the RegDeleteKeyEx
Windows API function, which is specific to 64-bit versions of Windows. Windows API function, which is specific to 64-bit versions of Windows.
See the `RegDeleteKeyEx documentation See the `RegDeleteKeyEx documentation
<http://msdn.microsoft.com/en-us/library/ms724847%28VS.85%29.aspx>`__. <https://msdn.microsoft.com/en-us/library/ms724847%28VS.85%29.aspx>`__.
*key* is an already open key, or one of the predefined *key* is an already open key, or one of the predefined
:ref:`HKEY_* constants <hkey-constants>`. :ref:`HKEY_* constants <hkey-constants>`.
@ -268,7 +268,7 @@ This module offers the following functions:
A call to :func:`LoadKey` fails if the calling process does not have the A call to :func:`LoadKey` fails if the calling process does not have the
:const:`SE_RESTORE_PRIVILEGE` privilege. Note that privileges are different :const:`SE_RESTORE_PRIVILEGE` privilege. Note that privileges are different
from permissions -- see the `RegLoadKey documentation from permissions -- see the `RegLoadKey documentation
<http://msdn.microsoft.com/en-us/library/ms724889%28v=VS.85%29.aspx>`__ for <https://msdn.microsoft.com/en-us/library/ms724889%28v=VS.85%29.aspx>`__ for
more details. more details.
If *key* is a handle returned by :func:`ConnectRegistry`, then the path If *key* is a handle returned by :func:`ConnectRegistry`, then the path
@ -383,7 +383,7 @@ This module offers the following functions:
possess the :const:`SeBackupPrivilege` security privilege. Note that possess the :const:`SeBackupPrivilege` security privilege. Note that
privileges are different than permissions -- see the privileges are different than permissions -- see the
`Conflicts Between User Rights and Permissions documentation `Conflicts Between User Rights and Permissions documentation
<http://msdn.microsoft.com/en-us/library/ms724878%28v=VS.85%29.aspx>`__ <https://msdn.microsoft.com/en-us/library/ms724878%28v=VS.85%29.aspx>`__
for more details. for more details.
This function passes NULL for *security_attributes* to the API. This function passes NULL for *security_attributes* to the API.
@ -547,7 +547,7 @@ Access Rights
+++++++++++++ +++++++++++++
For more information, see `Registry Key Security and Access For more information, see `Registry Key Security and Access
<http://msdn.microsoft.com/en-us/library/ms724878%28v=VS.85%29.aspx>`__. <https://msdn.microsoft.com/en-us/library/ms724878%28v=VS.85%29.aspx>`__.
.. data:: KEY_ALL_ACCESS .. data:: KEY_ALL_ACCESS
@ -602,7 +602,7 @@ For more information, see `Registry Key Security and Access
*************** ***************
For more information, see `Accessing an Alternate Registry View For more information, see `Accessing an Alternate Registry View
<http://msdn.microsoft.com/en-us/library/aa384129(v=VS.85).aspx>`__. <https://msdn.microsoft.com/en-us/library/aa384129(v=VS.85).aspx>`__.
.. data:: KEY_WOW64_64KEY .. data:: KEY_WOW64_64KEY
@ -621,7 +621,7 @@ Value Types
+++++++++++ +++++++++++
For more information, see `Registry Value Types For more information, see `Registry Value Types
<http://msdn.microsoft.com/en-us/library/ms724884%28v=VS.85%29.aspx>`__. <https://msdn.microsoft.com/en-us/library/ms724884%28v=VS.85%29.aspx>`__.
.. data:: REG_BINARY .. data:: REG_BINARY

View file

@ -24,8 +24,8 @@ for implementing WSGI servers, a demo HTTP server that serves WSGI applications,
and a validation tool that checks WSGI servers and applications for conformance and a validation tool that checks WSGI servers and applications for conformance
to the WSGI specification (:pep:`3333`). to the WSGI specification (:pep:`3333`).
See http://www.wsgi.org for more information about WSGI, and links to tutorials See https://wsgi.readthedocs.org/ for more information about WSGI, and links to
and other resources. tutorials and other resources.
.. XXX If you're just trying to write a web application... .. XXX If you're just trying to write a web application...

View file

@ -62,7 +62,7 @@ kind sax etree minidom pulldom xmlrpc
billion laughs **Yes** **Yes** **Yes** **Yes** **Yes** billion laughs **Yes** **Yes** **Yes** **Yes** **Yes**
quadratic blowup **Yes** **Yes** **Yes** **Yes** **Yes** quadratic blowup **Yes** **Yes** **Yes** **Yes** **Yes**
external entity expansion **Yes** No (1) No (2) **Yes** No (3) external entity expansion **Yes** No (1) No (2) **Yes** No (3)
DTD retrieval **Yes** No No **Yes** No `DTD`_ retrieval **Yes** No No **Yes** No
decompression bomb No No No No **Yes** decompression bomb No No No No **Yes**
========================= ======== ========= ========= ======== ========= ========================= ======== ========= ========= ======== =========
@ -92,7 +92,7 @@ external entity expansion
also point to external resources or local files. The XML also point to external resources or local files. The XML
parser accesses the resource and embeds the content into the XML document. parser accesses the resource and embeds the content into the XML document.
DTD retrieval `DTD`_ retrieval
Some XML libraries like Python's :mod:`xml.dom.pulldom` retrieve document type Some XML libraries like Python's :mod:`xml.dom.pulldom` retrieve document type
definitions from remote or local locations. The feature has similar definitions from remote or local locations. The feature has similar
implications as the external entity expansion issue. implications as the external entity expansion issue.
@ -128,6 +128,6 @@ Python because they break backward compatibility.
.. _defusedxml: https://pypi.python.org/pypi/defusedxml/ .. _defusedxml: https://pypi.python.org/pypi/defusedxml/
.. _defusedexpat: https://pypi.python.org/pypi/defusedexpat/ .. _defusedexpat: https://pypi.python.org/pypi/defusedexpat/
.. _Billion Laughs: http://en.wikipedia.org/wiki/Billion_laughs .. _Billion Laughs: https://en.wikipedia.org/wiki/Billion_laughs
.. _ZIP bomb: http://en.wikipedia.org/wiki/Zip_bomb .. _ZIP bomb: https://en.wikipedia.org/wiki/Zip_bomb
.. _DTD: http://en.wikipedia.org/wiki/Document_Type_Definition .. _DTD: https://en.wikipedia.org/wiki/Document_type_definition

View file

@ -142,7 +142,7 @@ between conformable Python objects and XML on the wire.
`XML-RPC Introspection <http://xmlrpc-c.sourceforge.net/introspection.html>`_ `XML-RPC Introspection <http://xmlrpc-c.sourceforge.net/introspection.html>`_
Describes the XML-RPC protocol extension for introspection. Describes the XML-RPC protocol extension for introspection.
`XML-RPC Specification <http://www.xmlrpc.com/spec>`_ `XML-RPC Specification <http://xmlrpc.scripting.com/spec.html>`_
The official specification. The official specification.
`Unofficial XML-RPC Errata <http://effbot.org/zone/xmlrpc-errata.htm>`_ `Unofficial XML-RPC Errata <http://effbot.org/zone/xmlrpc-errata.htm>`_

View file

@ -13,8 +13,7 @@
The ZIP file format is a common archive and compression standard. This module The ZIP file format is a common archive and compression standard. This module
provides tools to create, read, write, append, and list a ZIP file. Any provides tools to create, read, write, append, and list a ZIP file. Any
advanced use of this module will require an understanding of the format, as advanced use of this module will require an understanding of the format, as
defined in `PKZIP Application Note defined in `PKZIP Application Note`_.
<http://www.pkware.com/documents/casestudies/APPNOTE.TXT>`_.
This module does not currently handle multi-disk ZIP files. This module does not currently handle multi-disk ZIP files.
It can handle ZIP files that use the ZIP64 extensions It can handle ZIP files that use the ZIP64 extensions
@ -115,7 +114,7 @@ The module defines the following items:
.. seealso:: .. seealso::
`PKZIP Application Note <http://www.pkware.com/documents/casestudies/APPNOTE.TXT>`_ `PKZIP Application Note`_
Documentation on the ZIP file format by Phil Katz, the creator of the format and Documentation on the ZIP file format by Phil Katz, the creator of the format and
algorithms used. algorithms used.
@ -527,8 +526,7 @@ Instances have the following attributes:
.. attribute:: ZipInfo.extra .. attribute:: ZipInfo.extra
Expansion field data. The `PKZIP Application Note Expansion field data. The `PKZIP Application Note`_ contains
<http://www.pkware.com/documents/casestudies/APPNOTE.TXT>`_ contains
some comments on the internal structure of the data contained in this string. some comments on the internal structure of the data contained in this string.
@ -591,10 +589,5 @@ Instances have the following attributes:
Size of the uncompressed file. Size of the uncompressed file.
There is one method:
.. method:: ZipInfo.is_dir() .. _PKZIP Application Note: https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT
Return ``True`` if the ZipInfo represents a directory.
.. versionadded:: 3.6

View file

@ -30,7 +30,7 @@ ZIP archives with an archive comment are currently not supported.
.. seealso:: .. seealso::
`PKZIP Application Note <http://www.pkware.com/documents/casestudies/APPNOTE.TXT>`_ `PKZIP Application Note <https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT>`_
Documentation on the ZIP file format by Phil Katz, the creator of the format and Documentation on the ZIP file format by Phil Katz, the creator of the format and
algorithms used. algorithms used.

View file

@ -153,7 +153,7 @@ Mac OS X. Packages and documentation are available from http://www.wxpython.org.
*PyQt* is another popular cross-platform GUI toolkit that runs natively on Mac *PyQt* is another popular cross-platform GUI toolkit that runs natively on Mac
OS X. More information can be found at OS X. More information can be found at
http://www.riverbankcomputing.co.uk/software/pyqt/intro. https://riverbankcomputing.com/software/pyqt/intro.
Distributing Python Applications on the Mac Distributing Python Applications on the Mac

View file

@ -26,11 +26,11 @@ following links:
.. seealso:: .. seealso::
http://www.debian.org/doc/manuals/maint-guide/first.en.html https://www.debian.org/doc/manuals/maint-guide/first.en.html
for Debian users for Debian users
http://en.opensuse.org/Portal:Packaging https://en.opensuse.org/Portal:Packaging
for OpenSuse users for OpenSuse users
http://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch-creating-rpms.html https://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch-creating-rpms.html
for Fedora users for Fedora users
http://www.slackbook.org/html/package-management-making-packages.html http://www.slackbook.org/html/package-management-making-packages.html
for Slackware users for Slackware users
@ -65,7 +65,7 @@ Building Python
=============== ===============
If you want to compile CPython yourself, first thing you should do is get the If you want to compile CPython yourself, first thing you should do is get the
`source <https://www.python.org/download/source/>`_. You can download either the `source <https://www.python.org/downloads/source/>`_. You can download either the
latest release's source or just grab a fresh `clone latest release's source or just grab a fresh `clone
<https://docs.python.org/devguide/setup.html#getting-the-source-code>`_. (If you want <https://docs.python.org/devguide/setup.html#getting-the-source-code>`_. (If you want
to contribute patches, you will need a clone.) to contribute patches, you will need a clone.)

View file

@ -251,12 +251,12 @@ Check :pep:`11` for details on all unsupported platforms.
release/python>`_, `Maintainer releases release/python>`_, `Maintainer releases
<http://www.tishler.net/jason/software/python/>`_) <http://www.tishler.net/jason/software/python/>`_)
See `Python for Windows <https://www.python.org/download/windows/>`_ See `Python for Windows <https://www.python.org/downloads/windows/>`_
for detailed information about platforms with pre-compiled installers. for detailed information about platforms with pre-compiled installers.
.. seealso:: .. seealso::
`Python on XP <http://www.richarddooling.com/index.php/2006/03/14/python-on-xp-7-minutes-to-hello-world/>`_ `Python on XP <http://dooling.com/index.php/2006/03/14/python-on-xp-7-minutes-to-hello-world/>`_
"7 Minutes to "Hello World!"" "7 Minutes to "Hello World!""
by Richard Dooling, 2006 by Richard Dooling, 2006
@ -279,10 +279,10 @@ Besides the standard CPython distribution, there are modified packages including
additional functionality. The following is a list of popular versions and their additional functionality. The following is a list of popular versions and their
key features: key features:
`ActivePython <http://www.activestate.com/activepython/>`_ `ActivePython <https://www.activestate.com/activepython/>`_
Installer with multi-platform compatibility, documentation, PyWin32 Installer with multi-platform compatibility, documentation, PyWin32
`Anaconda <http://www.continuum.io/downloads/>`_ `Anaconda <https://www.continuum.io/downloads/>`_
Popular scientific modules (such as numpy, scipy and pandas) and the Popular scientific modules (such as numpy, scipy and pandas) and the
``conda`` package manager. ``conda`` package manager.
@ -352,16 +352,16 @@ System variables, you need non-restricted access to your machine
.. seealso:: .. seealso::
http://support.microsoft.com/kb/100843 https://support.microsoft.com/kb/100843
Environment variables in Windows NT Environment variables in Windows NT
http://technet.microsoft.com/en-us/library/cc754250.aspx https://technet.microsoft.com/en-us/library/cc754250.aspx
The SET command, for temporarily modifying environment variables The SET command, for temporarily modifying environment variables
http://technet.microsoft.com/en-us/library/cc755104.aspx https://technet.microsoft.com/en-us/library/cc755104.aspx
The SETX command, for permanently modifying environment variables The SETX command, for permanently modifying environment variables
http://support.microsoft.com/kb/310519 https://support.microsoft.com/kb/310519
How To Manage Environment Variables in Windows XP How To Manage Environment Variables in Windows XP
http://www.chem.gla.ac.uk/~louis/software/faq/q1.html http://www.chem.gla.ac.uk/~louis/software/faq/q1.html
@ -781,18 +781,18 @@ The Windows-specific standard modules are documented in
PyWin32 PyWin32
------- -------
The `PyWin32 <http://python.net/crew/mhammond/win32/>`_ module by Mark Hammond The `PyWin32 <https://pypi.python.org/pypi/pywin32>`_ module by Mark Hammond
is a collection of modules for advanced Windows-specific support. This includes is a collection of modules for advanced Windows-specific support. This includes
utilities for: utilities for:
* `Component Object Model <http://www.microsoft.com/com/>`_ (COM) * `Component Object Model <https://www.microsoft.com/com/>`_ (COM)
* Win32 API calls * Win32 API calls
* Registry * Registry
* Event log * Event log
* `Microsoft Foundation Classes <http://msdn.microsoft.com/en-us/library/fe1cf721%28VS.80%29.aspx>`_ (MFC) * `Microsoft Foundation Classes <https://msdn.microsoft.com/en-us/library/fe1cf721%28VS.80%29.aspx>`_ (MFC)
user interfaces user interfaces
`PythonWin <http://web.archive.org/web/20060524042422/ `PythonWin <https://web.archive.org/web/20060524042422/
https://www.python.org/windows/pythonwin/>`_ is a sample MFC application https://www.python.org/windows/pythonwin/>`_ is a sample MFC application
shipped with PyWin32. It is an embeddable IDE with a built-in debugger. shipped with PyWin32. It is an embeddable IDE with a built-in debugger.
@ -831,7 +831,7 @@ Compiling Python on Windows
=========================== ===========================
If you want to compile CPython yourself, first thing you should do is get the If you want to compile CPython yourself, first thing you should do is get the
`source <https://www.python.org/download/source/>`_. You can download either the `source <https://www.python.org/downloads/source/>`_. You can download either the
latest release's source or just grab a fresh `checkout latest release's source or just grab a fresh `checkout
<https://docs.python.org/devguide/setup.html#getting-the-source-code>`_. <https://docs.python.org/devguide/setup.html#getting-the-source-code>`_.
@ -874,7 +874,7 @@ dependants, such as Idle), pip and the Python documentation are not included.
.. note:: .. note::
The embedded distribution does not include the `Microsoft C Runtime The embedded distribution does not include the `Microsoft C Runtime
<http://www.microsoft.com/en-us/download/details.aspx?id=48145>`_ and it is <https://www.microsoft.com/en-us/download/details.aspx?id=48145>`_ and it is
the responsibility of the application installer to provide this. The the responsibility of the application installer to provide this. The
runtime may have already been installed on a user's system previously or runtime may have already been installed on a user's system previously or
automatically via Windows Update, and can be detected by finding automatically via Windows Update, and can be detected by finding

View file

@ -130,7 +130,7 @@ Guidelines":
Read the rest of PEP 1 for the details of the PEP editorial process, style, and Read the rest of PEP 1 for the details of the PEP editorial process, style, and
format. PEPs are kept in the Python CVS tree on SourceForge, though they're not format. PEPs are kept in the Python CVS tree on SourceForge, though they're not
part of the Python 2.0 distribution, and are also available in HTML form from part of the Python 2.0 distribution, and are also available in HTML form from
https://www.python.org/peps/. As of September 2000, there are 25 PEPS, ranging https://www.python.org/dev/peps/. As of September 2000, there are 25 PEPS, ranging
from PEP 201, "Lockstep Iteration", to PEP 225, "Elementwise/Objectwise from PEP 201, "Lockstep Iteration", to PEP 225, "Elementwise/Objectwise
Operators". Operators".
@ -337,7 +337,7 @@ comprehension below is a syntax error, while the second one is correct::
[ (x,y) for x in seq1 for y in seq2] [ (x,y) for x in seq1 for y in seq2]
The idea of list comprehensions originally comes from the functional programming The idea of list comprehensions originally comes from the functional programming
language Haskell (http://www.haskell.org). Greg Ewing argued most effectively language Haskell (https://www.haskell.org). Greg Ewing argued most effectively
for adding them to Python and wrote the initial list comprehension patch, which for adding them to Python and wrote the initial list comprehension patch, which
was then discussed for a seemingly endless time on the python-dev mailing list was then discussed for a seemingly endless time on the python-dev mailing list
and kept up-to-date by Skip Montanaro. and kept up-to-date by Skip Montanaro.

View file

@ -562,7 +562,7 @@ You can start creating packages containing :file:`PKG-INFO` even if you're not
using Python 2.1, since a new release of the Distutils will be made for users of using Python 2.1, since a new release of the Distutils will be made for users of
earlier Python versions. Version 1.0.2 of the Distutils includes the changes earlier Python versions. Version 1.0.2 of the Distutils includes the changes
described in PEP 241, as well as various bugfixes and enhancements. It will be described in PEP 241, as well as various bugfixes and enhancements. It will be
available from the Distutils SIG at https://www.python.org/sigs/distutils-sig/. available from the Distutils SIG at https://www.python.org/community/sigs/current/distutils-sig/.
.. seealso:: .. seealso::

View file

@ -1080,9 +1080,9 @@ Here are all of the changes that Python 2.3 makes to the core Python language.
hierarchy. Classic classes are unaffected by this change. Python 2.2 hierarchy. Classic classes are unaffected by this change. Python 2.2
originally used a topological sort of a class's ancestors, but 2.3 now uses the originally used a topological sort of a class's ancestors, but 2.3 now uses the
C3 algorithm as described in the paper `"A Monotonic Superclass Linearization C3 algorithm as described in the paper `"A Monotonic Superclass Linearization
for Dylan" <http://www.webcom.com/haahr/dylan/linearization-oopsla96.html>`_. To for Dylan" <http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.19.3910>`_. To
understand the motivation for this change, read Michele Simionato's article understand the motivation for this change, read Michele Simionato's article
`"Python 2.3 Method Resolution Order" <https://www.python.org/2.3/mro.html>`_, or `"Python 2.3 Method Resolution Order" <http://www.phyast.pitt.edu/~micheles/mro.html>`_, or
read the thread on python-dev starting with the message at read the thread on python-dev starting with the message at
https://mail.python.org/pipermail/python-dev/2002-October/029035.html. Samuele https://mail.python.org/pipermail/python-dev/2002-October/029035.html. Samuele
Pedroni first pointed out the problem and also implemented the fix by coding the Pedroni first pointed out the problem and also implemented the fix by coding the
@ -1306,7 +1306,7 @@ complete list of changes, or look through the CVS logs for all the details.
partially sorted order such that, for every index *k*, ``heap[k] <= partially sorted order such that, for every index *k*, ``heap[k] <=
heap[2*k+1]`` and ``heap[k] <= heap[2*k+2]``. This makes it quick to remove the heap[2*k+1]`` and ``heap[k] <= heap[2*k+2]``. This makes it quick to remove the
smallest item, and inserting a new item while maintaining the heap property is smallest item, and inserting a new item while maintaining the heap property is
O(lg n). (See http://www.nist.gov/dads/HTML/priorityque.html for more O(lg n). (See https://xlinux.nist.gov/dads//HTML/priorityque.html for more
information about the priority queue data structure.) information about the priority queue data structure.)
The :mod:`heapq` module provides :func:`heappush` and :func:`heappop` functions The :mod:`heapq` module provides :func:`heappush` and :func:`heappop` functions
@ -1949,7 +1949,7 @@ The RPM spec files, found in the :file:`Misc/RPM/` directory in the Python
source distribution, were updated for 2.3. (Contributed by Sean Reifschneider.) source distribution, were updated for 2.3. (Contributed by Sean Reifschneider.)
Other new platforms now supported by Python include AtheOS Other new platforms now supported by Python include AtheOS
(http://www.atheos.cx/), GNU/Hurd, and OpenVMS. (http://atheos.cx/), GNU/Hurd, and OpenVMS.
.. ====================================================================== .. ======================================================================

View file

@ -337,7 +337,7 @@ returned.
wrote patches implementing function decorators, but the one that was actually wrote patches implementing function decorators, but the one that was actually
checked in was patch #979728, written by Mark Russell. checked in was patch #979728, written by Mark Russell.
https://www.python.org/moin/PythonDecoratorLibrary https://wiki.python.org/moin/PythonDecoratorLibrary
This Wiki page contains several examples of decorators. This Wiki page contains several examples of decorators.
.. ====================================================================== .. ======================================================================
@ -687,7 +687,7 @@ includes a quick-start tutorial and a reference.
The article uses Fortran code to illustrate many of the problems that floating- The article uses Fortran code to illustrate many of the problems that floating-
point inaccuracy can cause. point inaccuracy can cause.
http://www2.hursley.ibm.com/decimal/ http://speleotrove.com/decimal/
A description of a decimal-based representation. This representation is being A description of a decimal-based representation. This representation is being
proposed as a standard, and underlies the new Python decimal type. Much of this proposed as a standard, and underlies the new Python decimal type. Much of this
material was written by Mike Cowlishaw, designer of the Rexx language. material was written by Mike Cowlishaw, designer of the Rexx language.
@ -756,7 +756,7 @@ API that perform ASCII-only conversions, ignoring the locale setting:
:c:type:`double` to an ASCII string. :c:type:`double` to an ASCII string.
The code for these functions came from the GLib library The code for these functions came from the GLib library
(http://library.gnome.org/devel/glib/stable/), whose developers kindly (https://developer.gnome.org/glib/stable/), whose developers kindly
relicensed the relevant functions and donated them to the Python Software relicensed the relevant functions and donated them to the Python Software
Foundation. The :mod:`locale` module can now change the numeric locale, Foundation. The :mod:`locale` module can now change the numeric locale,
letting extensions such as GTK+ produce the correct results. letting extensions such as GTK+ produce the correct results.

View file

@ -330,7 +330,7 @@ statement, only the ``from ... import`` form.
:pep:`328` - Imports: Multi-Line and Absolute/Relative :pep:`328` - Imports: Multi-Line and Absolute/Relative
PEP written by Aahz; implemented by Thomas Wouters. PEP written by Aahz; implemented by Thomas Wouters.
http://codespeak.net/py/current/doc/index.html https://pylib.readthedocs.org/
The py library by Holger Krekel, which contains the :mod:`py.std` package. The py library by Holger Krekel, which contains the :mod:`py.std` package.
.. ====================================================================== .. ======================================================================
@ -547,7 +547,7 @@ exhausted.
Earlier versions of these features were proposed in :pep:`288` by Raymond Earlier versions of these features were proposed in :pep:`288` by Raymond
Hettinger and :pep:`325` by Samuele Pedroni. Hettinger and :pep:`325` by Samuele Pedroni.
http://en.wikipedia.org/wiki/Coroutine https://en.wikipedia.org/wiki/Coroutine
The Wikipedia entry for coroutines. The Wikipedia entry for coroutines.
http://www.sidhe.org/~dan/blog/archives/000178.html http://www.sidhe.org/~dan/blog/archives/000178.html
@ -2088,7 +2088,7 @@ Changes to Python's build process and to the C API include:
provided the results of their examination of the Python source code. The provided the results of their examination of the Python source code. The
analysis found about 60 bugs that were quickly fixed. Many of the bugs were analysis found about 60 bugs that were quickly fixed. Many of the bugs were
refcounting problems, often occurring in error-handling code. See refcounting problems, often occurring in error-handling code. See
http://scan.coverity.com for the statistics. https://scan.coverity.com for the statistics.
* The largest change to the C API came from :pep:`353`, which modifies the * The largest change to the C API came from :pep:`353`, which modifies the
interpreter to use a :c:type:`Py_ssize_t` type definition instead of interpreter to use a :c:type:`Py_ssize_t` type definition instead of

View file

@ -153,8 +153,8 @@ The infrastructure committee of the Python Software Foundation
therefore posted a call for issue trackers, asking volunteers to set therefore posted a call for issue trackers, asking volunteers to set
up different products and import some of the bugs and patches from up different products and import some of the bugs and patches from
SourceForge. Four different trackers were examined: `Jira SourceForge. Four different trackers were examined: `Jira
<http://www.atlassian.com/software/jira/>`__, <https://www.atlassian.com/software/jira/>`__,
`Launchpad <http://www.launchpad.net>`__, `Launchpad <https://www.launchpad.net>`__,
`Roundup <http://roundup.sourceforge.net/>`__, and `Roundup <http://roundup.sourceforge.net/>`__, and
`Trac <http://trac.edgewall.org/>`__. `Trac <http://trac.edgewall.org/>`__.
The committee eventually settled on Jira The committee eventually settled on Jira
@ -217,7 +217,7 @@ the time required to finish the job.
During the 2.6 development cycle, Georg Brandl put a lot of effort During the 2.6 development cycle, Georg Brandl put a lot of effort
into building a new toolchain for processing the documentation. The into building a new toolchain for processing the documentation. The
resulting package is called Sphinx, and is available from resulting package is called Sphinx, and is available from
http://sphinx.pocoo.org/. http://sphinx-doc.org/.
Sphinx concentrates on HTML output, producing attractively styled and Sphinx concentrates on HTML output, producing attractively styled and
modern HTML; printed output is still supported through conversion to modern HTML; printed output is still supported through conversion to
@ -1796,7 +1796,7 @@ changes, or look through the Subversion logs for all the details.
* The :mod:`bsddb` module also has a new maintainer, Jesús Cea Avión, and the package * The :mod:`bsddb` module also has a new maintainer, Jesús Cea Avión, and the package
is now available as a standalone package. The web page for the package is is now available as a standalone package. The web page for the package is
`www.jcea.es/programacion/pybsddb.htm `www.jcea.es/programacion/pybsddb.htm
<http://www.jcea.es/programacion/pybsddb.htm>`__. <https://www.jcea.es/programacion/pybsddb.htm>`__.
The plan is to remove the package from the standard library The plan is to remove the package from the standard library
in Python 3.0, because its pace of releases is much more frequent than in Python 3.0, because its pace of releases is much more frequent than
Python's. Python's.
@ -1926,7 +1926,7 @@ changes, or look through the Subversion logs for all the details.
the left to six places. (Contributed by Skip Montanaro; :issue:`1158`.) the left to six places. (Contributed by Skip Montanaro; :issue:`1158`.)
* The :mod:`decimal` module was updated to version 1.66 of * The :mod:`decimal` module was updated to version 1.66 of
`the General Decimal Specification <http://www2.hursley.ibm.com/decimal/decarith.html>`__. New features `the General Decimal Specification <http://speleotrove.com/decimal/decarith.html>`__. New features
include some methods for some basic mathematical functions such as include some methods for some basic mathematical functions such as
:meth:`exp` and :meth:`log10`:: :meth:`exp` and :meth:`log10`::

View file

@ -1029,7 +1029,7 @@ changes, or look through the Subversion logs for all the details.
* Updated module: the :mod:`bsddb` module has been updated from 4.7.2devel9 * Updated module: the :mod:`bsddb` module has been updated from 4.7.2devel9
to version 4.8.4 of to version 4.8.4 of
`the pybsddb package <http://www.jcea.es/programacion/pybsddb.htm>`__. `the pybsddb package <https://www.jcea.es/programacion/pybsddb.htm>`__.
The new version features better Python 3.x compatibility, various bug fixes, The new version features better Python 3.x compatibility, various bug fixes,
and adds several new BerkeleyDB flags and methods. and adds several new BerkeleyDB flags and methods.
(Updated by Jesús Cea Avión; :issue:`8156`. The pybsddb (Updated by Jesús Cea Avión; :issue:`8156`. The pybsddb
@ -1513,7 +1513,7 @@ changes, or look through the Subversion logs for all the details.
(Contributed by Kristján Valur Jónsson; :issue:`6192` and :issue:`6267`.) (Contributed by Kristján Valur Jónsson; :issue:`6192` and :issue:`6267`.)
* Updated module: the :mod:`sqlite3` module has been updated to * Updated module: the :mod:`sqlite3` module has been updated to
version 2.6.0 of the `pysqlite package <http://code.google.com/p/pysqlite/>`__. Version 2.6.0 includes a number of bugfixes, and adds version 2.6.0 of the `pysqlite package <https://github.com/ghaering/pysqlite>`__. Version 2.6.0 includes a number of bugfixes, and adds
the ability to load SQLite extensions from shared libraries. the ability to load SQLite extensions from shared libraries.
Call the ``enable_load_extension(True)`` method to enable extensions, Call the ``enable_load_extension(True)`` method to enable extensions,
and then call :meth:`~sqlite3.Connection.load_extension` to load a particular shared library. and then call :meth:`~sqlite3.Connection.load_extension` to load a particular shared library.

View file

@ -565,7 +565,7 @@ review:
core standard library has proved over time to be a particular burden core standard library has proved over time to be a particular burden
for the core developers due to testing instability and Berkeley DB's for the core developers due to testing instability and Berkeley DB's
release schedule. However, the package is alive and well, release schedule. However, the package is alive and well,
externally maintained at http://www.jcea.es/programacion/pybsddb.htm. externally maintained at https://www.jcea.es/programacion/pybsddb.htm.
* Some modules were renamed because their old name disobeyed * Some modules were renamed because their old name disobeyed
:pep:`0008`, or for various other reasons. Here's the list: :pep:`0008`, or for various other reasons. Here's the list:

View file

@ -845,9 +845,9 @@ collections
* The :class:`collections.Counter` class now has two forms of in-place * The :class:`collections.Counter` class now has two forms of in-place
subtraction, the existing *-=* operator for `saturating subtraction subtraction, the existing *-=* operator for `saturating subtraction
<http://en.wikipedia.org/wiki/Saturation_arithmetic>`_ and the new <https://en.wikipedia.org/wiki/Saturation_arithmetic>`_ and the new
:meth:`~collections.Counter.subtract` method for regular subtraction. The :meth:`~collections.Counter.subtract` method for regular subtraction. The
former is suitable for `multisets <http://en.wikipedia.org/wiki/Multiset>`_ former is suitable for `multisets <https://en.wikipedia.org/wiki/Multiset>`_
which only have positive counts, and the latter is more suitable for use cases which only have positive counts, and the latter is more suitable for use cases
that allow negative counts: that allow negative counts:
@ -906,7 +906,7 @@ with multiple preconditions does not run until all of the predecessor tasks are
complete. complete.
Barriers can work with an arbitrary number of threads. This is a generalization Barriers can work with an arbitrary number of threads. This is a generalization
of a `Rendezvous <http://en.wikipedia.org/wiki/Synchronous_rendezvous>`_ which of a `Rendezvous <https://en.wikipedia.org/wiki/Synchronous_rendezvous>`_ which
is defined for only two threads. is defined for only two threads.
Implemented as a two-phase cyclic barrier, :class:`~threading.Barrier` objects Implemented as a two-phase cyclic barrier, :class:`~threading.Barrier` objects
@ -1043,7 +1043,7 @@ of nearly equal quantities:
0.013765762467652909 0.013765762467652909
The :func:`~math.erf` function computes a probability integral or `Gaussian The :func:`~math.erf` function computes a probability integral or `Gaussian
error function <http://en.wikipedia.org/wiki/Error_function>`_. The error function <https://en.wikipedia.org/wiki/Error_function>`_. The
complementary error function, :func:`~math.erfc`, is ``1 - erf(x)``: complementary error function, :func:`~math.erfc`, is ``1 - erf(x)``:
>>> erf(1.0/sqrt(2.0)) # portion of normal distribution within 1 standard deviation >>> erf(1.0/sqrt(2.0)) # portion of normal distribution within 1 standard deviation
@ -1054,7 +1054,7 @@ complementary error function, :func:`~math.erfc`, is ``1 - erf(x)``:
1.0 1.0
The :func:`~math.gamma` function is a continuous extension of the factorial The :func:`~math.gamma` function is a continuous extension of the factorial
function. See http://en.wikipedia.org/wiki/Gamma_function for details. Because function. See https://en.wikipedia.org/wiki/Gamma_function for details. Because
the function is related to factorials, it grows large even for small values of the function is related to factorials, it grows large even for small values of
*x*, so there is also a :func:`~math.lgamma` function for computing the natural *x*, so there is also a :func:`~math.lgamma` function for computing the natural
logarithm of the gamma function: logarithm of the gamma function:
@ -2180,7 +2180,7 @@ urllib.parse
A number of usability improvements were made for the :mod:`urllib.parse` module. A number of usability improvements were made for the :mod:`urllib.parse` module.
The :func:`~urllib.parse.urlparse` function now supports `IPv6 The :func:`~urllib.parse.urlparse` function now supports `IPv6
<http://en.wikipedia.org/wiki/IPv6>`_ addresses as described in :rfc:`2732`: <https://en.wikipedia.org/wiki/IPv6>`_ addresses as described in :rfc:`2732`:
>>> import urllib.parse >>> import urllib.parse
>>> urllib.parse.urlparse('http://[dead:beef:cafe:5417:affe:8FA3:deaf:feed]/foo/') >>> urllib.parse.urlparse('http://[dead:beef:cafe:5417:affe:8FA3:deaf:feed]/foo/')
@ -2328,7 +2328,7 @@ A number of small performance enhancements have been added:
(Contributed by Alexandre Vassalotti, Antoine Pitrou (Contributed by Alexandre Vassalotti, Antoine Pitrou
and the Unladen Swallow team in :issue:`9410` and :issue:`3873`.) and the Unladen Swallow team in :issue:`9410` and :issue:`3873`.)
* The `Timsort algorithm <http://en.wikipedia.org/wiki/Timsort>`_ used in * The `Timsort algorithm <https://en.wikipedia.org/wiki/Timsort>`_ used in
:meth:`list.sort` and :func:`sorted` now runs faster and uses less memory :meth:`list.sort` and :func:`sorted` now runs faster and uses less memory
when called with a :term:`key function`. Previously, every element of when called with a :term:`key function`. Previously, every element of
a list was wrapped with a temporary object that remembered the key value a list was wrapped with a temporary object that remembered the key value
@ -2380,7 +2380,7 @@ Unicode
Python has been updated to `Unicode 6.0.0 Python has been updated to `Unicode 6.0.0
<http://unicode.org/versions/Unicode6.0.0/>`_. The update to the standard adds <http://unicode.org/versions/Unicode6.0.0/>`_. The update to the standard adds
over 2,000 new characters including `emoji <http://en.wikipedia.org/wiki/Emoji>`_ over 2,000 new characters including `emoji <https://en.wikipedia.org/wiki/Emoji>`_
symbols which are important for mobile phones. symbols which are important for mobile phones.
In addition, the updated standard has altered the character properties for two In addition, the updated standard has altered the character properties for two
@ -2432,7 +2432,7 @@ The documentation continues to be improved.
**Source code** :source:`Lib/functools.py`. **Source code** :source:`Lib/functools.py`.
(Contributed by Raymond Hettinger; see (Contributed by Raymond Hettinger; see
`rationale <http://rhettinger.wordpress.com/2011/01/28/open-your-source-more/>`_.) `rationale <https://rhettinger.wordpress.com/2011/01/28/open-your-source-more/>`_.)
* The docs now contain more examples and recipes. In particular, :mod:`re` * The docs now contain more examples and recipes. In particular, :mod:`re`
module has an extensive section, :ref:`re-examples`. Likewise, the module has an extensive section, :ref:`re-examples`. Likewise, the
@ -2468,7 +2468,7 @@ Code Repository
=============== ===============
In addition to the existing Subversion code repository at http://svn.python.org In addition to the existing Subversion code repository at http://svn.python.org
there is now a `Mercurial <http://mercurial.selenic.com/>`_ repository at there is now a `Mercurial <https://www.mercurial-scm.org/>`_ repository at
https://hg.python.org/\ . https://hg.python.org/\ .
After the 3.2 release, there are plans to switch to Mercurial as the primary After the 3.2 release, there are plans to switch to Mercurial as the primary
@ -2478,7 +2478,7 @@ members of the community to create and share external changesets. See
To learn to use the new version control system, see the `tutorial by Joel To learn to use the new version control system, see the `tutorial by Joel
Spolsky <http://hginit.com>`_ or the `Guide to Mercurial Workflows Spolsky <http://hginit.com>`_ or the `Guide to Mercurial Workflows
<http://mercurial.selenic.com/guide>`_. <https://www.mercurial-scm.org/guide>`_.
Build and C API Changes Build and C API Changes

View file

@ -1884,13 +1884,13 @@ socket
Heiko Wundram) Heiko Wundram)
* The :class:`~socket.socket` class now supports the PF_CAN protocol family * The :class:`~socket.socket` class now supports the PF_CAN protocol family
(http://en.wikipedia.org/wiki/Socketcan), on Linux (https://en.wikipedia.org/wiki/Socketcan), on Linux
(http://lwn.net/Articles/253425). (https://lwn.net/Articles/253425).
(Contributed by Matthias Fuchs, updated by Tiago Gonçalves in :issue:`10141`.) (Contributed by Matthias Fuchs, updated by Tiago Gonçalves in :issue:`10141`.)
* The :class:`~socket.socket` class now supports the PF_RDS protocol family * The :class:`~socket.socket` class now supports the PF_RDS protocol family
(http://en.wikipedia.org/wiki/Reliable_Datagram_Sockets and (https://en.wikipedia.org/wiki/Reliable_Datagram_Sockets and
https://oss.oracle.com/projects/rds/). https://oss.oracle.com/projects/rds/).
* The :class:`~socket.socket` class now supports the ``PF_SYSTEM`` protocol * The :class:`~socket.socket` class now supports the ``PF_SYSTEM`` protocol

View file

@ -144,7 +144,7 @@ Security improvements:
all of the parent's inheritable handles, only the necessary ones. all of the parent's inheritable handles, only the necessary ones.
* A new :func:`hashlib.pbkdf2_hmac` function provides * A new :func:`hashlib.pbkdf2_hmac` function provides
the `PKCS#5 password-based key derivation function 2 the `PKCS#5 password-based key derivation function 2
<http://en.wikipedia.org/wiki/PBKDF2>`_. <https://en.wikipedia.org/wiki/PBKDF2>`_.
* :ref:`TLSv1.1 and TLSv1.2 support <whatsnew-tls-11-12>` for :mod:`ssl`. * :ref:`TLSv1.1 and TLSv1.2 support <whatsnew-tls-11-12>` for :mod:`ssl`.
* :ref:`Retrieving certificates from the Windows system cert store support * :ref:`Retrieving certificates from the Windows system cert store support
<whatsnew34-win-cert-store>` for :mod:`ssl`. <whatsnew34-win-cert-store>` for :mod:`ssl`.
@ -902,7 +902,7 @@ hashlib
A new :func:`hashlib.pbkdf2_hmac` function provides A new :func:`hashlib.pbkdf2_hmac` function provides
the `PKCS#5 password-based key derivation function 2 the `PKCS#5 password-based key derivation function 2
<http://en.wikipedia.org/wiki/PBKDF2>`_. (Contributed by Christian <https://en.wikipedia.org/wiki/PBKDF2>`_. (Contributed by Christian
Heimes in :issue:`18582`.) Heimes in :issue:`18582`.)
The :attr:`~hashlib.hash.name` attribute of :mod:`hashlib` hash objects is now The :attr:`~hashlib.hash.name` attribute of :mod:`hashlib` hash objects is now
@ -1917,8 +1917,8 @@ Other Build and C API Changes
:issue:`18596`.) :issue:`18596`.)
* The Windows build now uses `Address Space Layout Randomization * The Windows build now uses `Address Space Layout Randomization
<http://en.wikipedia.org/wiki/ASLR>`_ and `Data Execution Prevention <https://en.wikipedia.org/wiki/Address_space_layout_randomization>`_ and `Data Execution Prevention
<http://en.wikipedia.org/wiki/Data_Execution_Prevention>`_. (Contributed by <https://en.wikipedia.org/wiki/Data_Execution_Prevention>`_. (Contributed by
Christian Heimes in :issue:`16632`.) Christian Heimes in :issue:`16632`.)
* New function :c:func:`PyObject_LengthHint` is the C API equivalent * New function :c:func:`PyObject_LengthHint` is the C API equivalent

View file

@ -2169,7 +2169,7 @@ for details.)
The :c:member:`PyTypeObject.tp_finalize` slot is now part of the stable ABI. The :c:member:`PyTypeObject.tp_finalize` slot is now part of the stable ABI.
Windows builds now require Microsoft Visual C++ 14.0, which Windows builds now require Microsoft Visual C++ 14.0, which
is available as part of `Visual Studio 2015 <http://www.visualstudio.com>`_. is available as part of `Visual Studio 2015 <https://www.visualstudio.com/>`_.
Extension modules now include a platform information tag in their filename on Extension modules now include a platform information tag in their filename on
some platforms (the tag is optional, and CPython will import extensions without some platforms (the tag is optional, and CPython will import extensions without

View file

@ -7917,7 +7917,7 @@ Library
- Issue #16245: Fix the value of a few entities in html.entities.html5. - Issue #16245: Fix the value of a few entities in html.entities.html5.
- Issue #16301: Fix the localhost verification in urllib/request.py for file:// - Issue #16301: Fix the localhost verification in urllib/request.py for ``file://``
urls. urls.
- Issue #16250: Fix the invocations of URLError which had misplaced filename - Issue #16250: Fix the invocations of URLError which had misplaced filename