and other APIs, makes the API consistent across different Python versions,
and is hence recommended over using ``distutils`` directly.
-.. _New and changed setup.py arguments in setuptools: https://setuptools.readthedocs.io/en/latest/setuptools.html#new-and-changed-setup-keywords
+.. _New and changed setup.py arguments in setuptools: https://web.archive.org/web/20210614192516/https://setuptools.pypa.io/en/stable/userguide/keywords.html
.. include:: ./_setuptools_disclaimer.rst
https://wiki.python.org/moin/WebProgramming\ .
Cameron Laird maintains a useful set of pages about Python web technologies at
-http://phaseit.net/claird/comp.lang.python/web_python.
+https://web.archive.org/web/20210224183619/http://phaseit.net/claird/comp.lang.python/web_python.
How can I mimic CGI form submission (METHOD=POST)?
Yes.
-`Pylint <https://www.pylint.org/>`_ and
+`Pylint <https://pylint.pycqa.org/en/latest/index.html>`_ and
`Pyflakes <https://github.com/PyCQA/pyflakes>`_ do basic checking that will
help you catch bugs sooner.
HOWTO Fetch Internet Resources Using The urllib Package
***********************************************************
-:Author: `Michael Foord <http://www.voidspace.org.uk/python/index.shtml>`_
+:Author: `Michael Foord <https://agileabstractions.com/>`_
.. note::
There is a French translation of an earlier revision of this
HOWTO, available at `urllib2 - Le Manuel manquant
- <http://www.voidspace.org.uk/python/articles/urllib2_francais.shtml>`_.
+ <https://web.archive.org/web/20200910051922/http://www.voidspace.org.uk/python/articles/urllib2_francais.shtml>`_.
You may also find useful the following article on fetching web resources
with Python:
- * `Basic Authentication <http://www.voidspace.org.uk/python/articles/authentication.shtml>`_
+ * `Basic Authentication <https://web.archive.org/web/20201215133350/http://www.voidspace.org.uk/python/articles/authentication.shtml>`_
A tutorial on *Basic Authentication*, with examples in Python.
python -m ensurepip --default-pip
There are also additional resources for `installing pip.
-<https://packaging.python.org/tutorials/installing-packages/#install-pip-setuptools-and-wheel>`__
+<https://packaging.python.org/en/latest/tutorials/installing-packages/#ensure-pip-setuptools-and-wheel-are-up-to-date>`__
Installing binary extensions
many other calendar systems.
.. [#] See R. H. van Gent's `guide to the mathematics of the ISO 8601 calendar
- <https://www.staff.science.uu.nl/~gent0113/calendar/isocalendar.htm>`_
+ <https://web.archive.org/web/20220531051136/https://webspace.science.uu.nl/~gent0113/calendar/isocalendar.htm>`_
for a good explanation.
.. [#] Passing ``datetime.strptime('Feb 29', '%b %d')`` will fail since ``1900`` is not a leap year.
hash function used in the protocol summarily stops this type of attack.
(`The Skein Hash Function Family
- <http://www.skein-hash.info/sites/default/files/skein1.3.pdf>`_,
+ <https://www.schneier.com/wp-content/uploads/2016/02/skein.pdf>`_,
p. 21)
BLAKE2 can be personalized by passing bytes to the *person* argument::
.. rubric:: Footnotes
-.. [#] See https://html.spec.whatwg.org/multipage/syntax.html#named-character-references
+.. [#] See https://html.spec.whatwg.org/multipage/named-characters.html#named-character-references
The ``group`` and ``name`` are arbitrary values defined by the package author
and usually a client will wish to resolve all entry points for a particular
group. Read `the setuptools docs
-<https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins>`_
+<https://setuptools.pypa.io/en/latest/userguide/entry_point.html>`_
for more information on entry points, their definition, and usage.
*Compatibility Note*
The :func:`erf` function can be used to compute traditional statistical
functions such as the `cumulative standard normal distribution
- <https://en.wikipedia.org/wiki/Normal_distribution#Cumulative_distribution_function>`_::
+ <https://en.wikipedia.org/wiki/Normal_distribution#Cumulative_distribution_functions>`_::
def phi(x):
'Cumulative distribution function for the standard normal distribution'
:attr:`!children_system`, and :attr:`!elapsed` in that order.
See the Unix manual page
- :manpage:`times(2)` and :manpage:`times(3)` manual page on Unix or `the GetProcessTimes MSDN
+ :manpage:`times(2)` and `times(3) <https://www.freebsd.org/cgi/man.cgi?time(3)>`_ manual page on Unix or `the GetProcessTimes MSDN
<https://docs.microsoft.com/windows/win32/api/processthreadsapi/nf-processthreadsapi-getprocesstimes>`_
on Windows. On Windows, only :attr:`!user` and :attr:`!system` are known; the other attributes are zero.
.. note::
This behavior conforms to *The Open Group Base Specifications Issue 6*,
- paragraph `4.11 *Pathname Resolution* <xbd_path_resolution>`_:
+ paragraph `4.11 Pathname Resolution
+ <https://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap04.html#tag_04_11>`_:
*"A pathname that begins with two successive slashes may be interpreted in
an implementation-defined manner, although more than two leading slashes
shall be treated as a single slash."*
- .. xbd_path_resolution: https://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap04.html#tag_04_11
-
.. data:: PurePath.anchor
The concatenation of the drive and root::
.. method:: SSLContext.session_stats()
Get statistics about the SSL sessions created or managed by this context.
- A dictionary is returned which maps the names of each `piece of information <https://www.openssl.org/docs/man1.1.1/ssl/SSL_CTX_sess_number.html>`_ to their
+ A dictionary is returned which maps the names of each `piece of information <https://www.openssl.org/docs/man1.1.1/man3/SSL_CTX_sess_number.html>`_ to their
numeric values. For example, here is the total number of hits and misses
in the session cache since the context was created::
:meth:`SSLContext.set_ciphers` method. Starting from Python 3.2.3, the
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
-about the `cipher list format <https://www.openssl.org/docs/manmaster/man1/ciphers.html#CIPHER-LIST-FORMAT>`_.
+about the `cipher list format <https://www.openssl.org/docs/man1.1.1/man1/ciphers.html#CIPHER-LIST-FORMAT>`_.
If you want to check which ciphers are enabled by a given cipher list, use
:meth:`SSLContext.get_ciphers` or the ``openssl ciphers`` command on your
system.
Compute the inverse cumulative distribution function, also known as the
`quantile function <https://en.wikipedia.org/wiki/Quantile_function>`_
or the `percent-point
- <https://www.statisticshowto.datasciencecentral.com/inverse-distribution-function/>`_
+ <https://web.archive.org/web/20190203145224/https://www.statisticshowto.datasciencecentral.com/inverse-distribution-function/>`_
function. Mathematically, it is written ``x : P(X <= x) = p``.
Finds the value *x* of the random variable *X* such that the
Normal distributions commonly arise in machine learning problems.
Wikipedia has a `nice example of a Naive Bayesian Classifier
-<https://en.wikipedia.org/wiki/Naive_Bayes_classifier#Sex_classification>`_.
+<https://en.wikipedia.org/wiki/Naive_Bayes_classifier#Person_classification>`_.
The challenge is to predict a person's gender from measurements of normally
distributed features including height, weight, and foot size.
.. _half precision format: https://en.wikipedia.org/wiki/Half-precision_floating-point_format
-.. _ieee 754 standard: https://en.wikipedia.org/wiki/IEEE_floating_point#IEEE_754-2008
+.. _ieee 754 standard: https://en.wikipedia.org/wiki/IEEE_754-2008_revision
.. _IETF RFC 1700: https://tools.ietf.org/html/rfc1700
methods, static methods and properties. You should patch these on the *class*
rather than an instance. They also work with *some* objects
that proxy attribute access, like the `django settings object
-<http://www.voidspace.org.uk/python/weblog/arch_d7_2010_12_04.shtml#e1198>`_.
+<https://web.archive.org/web/20200603181648/http://www.voidspace.org.uk/python/weblog/arch_d7_2010_12_04.shtml#e1198>`_.
MagicMock and magic method support
The file :file:`Python/dtoa.c`, which supplies C functions dtoa and
strtod for conversion of C doubles to and from strings, is derived
from the file of the same name by David M. Gay, currently available
-from http://www.netlib.org/fp/. The original file, as retrieved on
-March 16, 2009, contains the following copyright and licensing
-notice::
+from https://web.archive.org/web/20220517033456/http://www.netlib.org/fp/dtoa.c.
+The original file, as retrieved on March 16, 2009, contains the following
+copyright and licensing notice::
/****************************************************************
*
{% if daily is defined %}
{% set dlbase = pathto('archives', 1) %}
{% else %}
+ {#
+ The link below returns HTTP 404 until the first related alpha release.
+ This is expected; use daily documentation builds for CPython development.
+ #}
{% set dlbase = 'https://docs.python.org/ftp/python/doc/' + release %}
{% endif %}
If you want to compile CPython yourself, first thing you should do is get the
`source <https://www.python.org/downloads/source/>`_. You can download either the
latest release's source or just grab a fresh `clone
-<https://devguide.python.org/setup/#getting-the-source-code>`_. (If you want
+<https://devguide.python.org/setup/#get-the-source-code>`_. (If you want
to contribute patches, you will need a clone.)
The build process consists of the usual commands::
.. deprecated:: 3.6
``pyvenv`` was the recommended tool for creating virtual environments for
Python 3.3 and 3.4, and is `deprecated in Python 3.6
- <https://docs.python.org/dev/whatsnew/3.6.html#deprecated-features>`_.
+ <https://docs.python.org/dev/whatsnew/3.6.html#id8>`_.
.. versionchanged:: 3.5
The use of ``venv`` is now recommended for creating virtual environments.
Popular scientific modules (such as numpy, scipy and pandas) and the
``conda`` package manager.
-`Canopy <https://www.enthought.com/product/canopy/>`_
- A "comprehensive Python analysis environment" with editors and other
- development tools.
+`Enthought Deployment Manager <https://www.enthought.com/edm/>`_
+ "The Next Generation Python Environment and Package Manager".
+
+ Previously Enthought provided Canopy, but it `reached end of life in 2016
+ <https://support.enthought.com/hc/en-us/articles/360038600051-Canopy-GUI-end-of-life-transition-to-the-Enthought-Deployment-Manager-EDM-and-Visual-Studio-Code>`_.
`WinPython <https://winpython.github.io/>`_
Windows-specific distribution with prebuilt scientific packages and
If you want to compile CPython yourself, first thing you should do is get the
`source <https://www.python.org/downloads/source/>`_. You can download either the
latest release's source or just grab a fresh `checkout
-<https://devguide.python.org/setup/#getting-the-source-code>`_.
+<https://devguide.python.org/setup/#get-the-source-code>`_.
The source tree contains a build solution and project files for Microsoft
Visual Studio, which is the compiler used to build the official Python
A common complaint from Python users is that there's no single catalog of all
the Python modules in existence. T. Middleton's Vaults of Parnassus at
-http://www.vex.net/parnassus/ are the largest catalog of Python modules, but
-registering software at the Vaults is optional, and many people don't bother.
+``www.vex.net/parnassus/`` (retired in February 2009, `available in the
+Internet Archive Wayback Machine
+<https://web.archive.org/web/20090130140102/http://www.vex.net/parnassus/>`_)
+was the largest catalog of Python modules, but
+registering software at the Vaults is optional, and many people did not bother.
As a first small step toward fixing the problem, Python software packaged using
the Distutils :command:`sdist` command will include a file named
https://en.wikipedia.org/wiki/Coroutine
The Wikipedia entry for coroutines.
- http://www.sidhe.org/~dan/blog/archives/000178.html
+ https://web.archive.org/web/20160321211320/http://www.sidhe.org/~dan/blog/archives/000178.html
An explanation of coroutines from a Perl point of view, written by Dan Sugalski.
.. ======================================================================
.. seealso::
- http://starship.python.net/crew/theller/ctypes/
- The ctypes web page, with a tutorial, reference, and FAQ.
+ https://web.archive.org/web/20180410025338/http://starship.python.net/crew/theller/ctypes/
+ The pre-stdlib ctypes web page, with a tutorial, reference, and FAQ.
The documentation for the :mod:`ctypes` module.
.. seealso::
- http://www.wsgi.org
+ https://web.archive.org/web/20160331090247/http://wsgi.readthedocs.org/en/latest/
A central web site for WSGI-related resources.
:pep:`333` - Python Web Server Gateway Interface v1.0
of Stellenbosch, South Africa. Martin von Löwis put a
lot of effort into importing existing bugs and patches from
SourceForge; his scripts for this import operation are at
-http://svn.python.org/view/tracker/importer/ and may be useful to
+``http://svn.python.org/view/tracker/importer/`` and may be useful to
other projects wishing to move from SourceForge to Roundup.
.. seealso::
*ciphers* argument that's a string listing the encryption algorithms
to be allowed; the format of the string is described
`in the OpenSSL documentation
- <https://www.openssl.org/docs/manmaster/man1/ciphers.html#CIPHER-LIST-FORMAT>`__.
+ <https://www.openssl.org/docs/man1.0.2/man1/ciphers.html>`__.
(Added by Antoine Pitrou; :issue:`8322`.)
Another change makes the extension load all of OpenSSL's ciphers and
.. seealso::
- http://www.voidspace.org.uk/python/articles/unittest2.shtml
+ https://web.archive.org/web/20210619163128/http://www.voidspace.org.uk/python/articles/unittest2.shtml
Describes the new features, how to use them, and the
rationale for various design decisions. (By Michael Foord.)
This article explains the new features in Python 3.2 as compared to 3.1.
Python 3.2 was released on February 20, 2011. It
focuses on a few highlights and gives a few examples. For full details, see the
-`Misc/NEWS
-<https://github.com/python/cpython/blob/076ca6c3c8df3030307e548d9be792ce3c1c6eea/Misc/NEWS>`_
+`Misc/NEWS <https://github.com/python/cpython/blob/v3.2.6/Misc/NEWS>`_
file.
.. seealso::
* The :func:`ssl.wrap_socket` constructor function now takes a *ciphers*
argument. The *ciphers* string lists the allowed encryption algorithms using
the format described in the `OpenSSL documentation
- <https://www.openssl.org/docs/manmaster/man1/ciphers.html#CIPHER-LIST-FORMAT>`__.
+ <https://www.openssl.org/docs/man1.0.2/man1/ciphers.html#CIPHER-LIST-FORMAT>`__.
* When linked against recent versions of OpenSSL, the :mod:`ssl` module now
supports the Server Name Indication extension to the TLS protocol, allowing
longer used and it had never been documented (:issue:`8837`).
There were a number of other small changes to the C-API. See the
-:source:`Misc/NEWS` file for a complete list.
+`Misc/NEWS <https://github.com/python/cpython/blob/v3.2.6/Misc/NEWS>`_
+file for a complete list.
Also, there were a number of updates to the Mac OS X build, see
-:source:`Mac/BuildScript/README.txt` for details. For users running a 32/64-bit
+`Mac/BuildScript/README.txt <https://github.com/python/cpython/blob/v3.2.6/Mac/BuildScript/README.txt>`_
+for details. For users running a 32/64-bit
build, there is a known problem with the default Tcl/Tk on Mac OS X 10.6.
Accordingly, we recommend installing an updated alternative such as
`ActiveState Tcl/Tk 8.5.9 <https://www.activestate.com/activetcl/downloads>`_\.
platform specific ``Lib/plat-*/`` directories, but were chronically out of
date, inconsistently available across platforms, and unmaintained. The
script that created these modules is still available in the source
- distribution at :source:`Tools/scripts/h2py.py`.
+ distribution at `Tools/scripts/h2py.py
+ <https://github.com/python/cpython/blob/v3.6.15/Tools/scripts/h2py.py>`_.
* The deprecated ``asynchat.fifo`` class has been removed.
of other LTS Linux releases (e.g. RHEL/CentOS 7.5, SLES 12-SP3), use OpenSSL
1.0.2 or later, and remain supported in the default build configuration.
- CPython's own :source:`CI configuration file <.travis.yml>` provides an
+ CPython's own `CI configuration file
+ <https://github.com/python/cpython/blob/v3.7.13/.travis.yml>`_ provides an
example of using the SSL
:source:`compatibility testing infrastructure <Tools/ssl/multissltests.py>` in
CPython's test suite to build and link against OpenSSL 1.1.0 rather than an