diff --git a/Doc/distutils/apiref.rst b/Doc/distutils/apiref.rst
index 18a4aac4f70895..74c48142d6d7fd 100644
--- a/Doc/distutils/apiref.rst
+++ b/Doc/distutils/apiref.rst
@@ -11,7 +11,7 @@ API Reference
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
diff --git a/Doc/faq/library.rst b/Doc/faq/library.rst
index 85b04c963f5906..8167bf22f0b1ad 100644
--- a/Doc/faq/library.rst
+++ b/Doc/faq/library.rst
@@ -670,7 +670,7 @@ A summary of available frameworks is maintained by Paul Boddie at
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)?
diff --git a/Doc/faq/programming.rst b/Doc/faq/programming.rst
index f87eaff9531fce..0b11bc986bbb04 100644
--- a/Doc/faq/programming.rst
+++ b/Doc/faq/programming.rst
@@ -56,7 +56,7 @@ Are there tools to help find bugs or perform static analysis?
Yes.
-`Pylint `_ and
+`Pylint `_ and
`Pyflakes `_ do basic checking that will
help you catch bugs sooner.
diff --git a/Doc/howto/urllib2.rst b/Doc/howto/urllib2.rst
index 12d525771ddc28..e77fefffbd257d 100644
--- a/Doc/howto/urllib2.rst
+++ b/Doc/howto/urllib2.rst
@@ -4,13 +4,13 @@
HOWTO Fetch Internet Resources Using The urllib Package
***********************************************************
-:Author: `Michael Foord `_
+:Author: `Michael Foord `_
.. note::
There is a French translation of an earlier revision of this
HOWTO, available at `urllib2 - Le Manuel manquant
- `_.
+ `_.
@@ -22,7 +22,7 @@ Introduction
You may also find useful the following article on fetching web resources
with Python:
- * `Basic Authentication `_
+ * `Basic Authentication `_
A tutorial on *Basic Authentication*, with examples in Python.
diff --git a/Doc/installing/index.rst b/Doc/installing/index.rst
index 4bacc7ba0c2cf2..e158bf1c4c0c7f 100644
--- a/Doc/installing/index.rst
+++ b/Doc/installing/index.rst
@@ -214,7 +214,7 @@ It is possible that ``pip`` does not get installed by default. One potential fix
python -m ensurepip --default-pip
There are also additional resources for `installing pip.
-`__
+`__
Installing binary extensions
diff --git a/Doc/library/datetime.rst b/Doc/library/datetime.rst
index bde24ec5f2e11e..ef1535c84bd5ad 100644
--- a/Doc/library/datetime.rst
+++ b/Doc/library/datetime.rst
@@ -2603,7 +2603,7 @@ Notes:
many other calendar systems.
.. [#] See R. H. van Gent's `guide to the mathematics of the ISO 8601 calendar
- `_
+ `_
for a good explanation.
.. [#] Passing ``datetime.strptime('Feb 29', '%b %d')`` will fail since ``1900`` is not a leap year.
diff --git a/Doc/library/hashlib.rst b/Doc/library/hashlib.rst
index 57f270c8d711cf..0906ce7cb7a2d9 100644
--- a/Doc/library/hashlib.rst
+++ b/Doc/library/hashlib.rst
@@ -668,7 +668,7 @@ function:
hash function used in the protocol summarily stops this type of attack.
(`The Skein Hash Function Family
- `_,
+ `_,
p. 21)
BLAKE2 can be personalized by passing bytes to the *person* argument::
diff --git a/Doc/library/html.entities.rst b/Doc/library/html.entities.rst
index 7d836fe7380245..cb8b623781c5e1 100644
--- a/Doc/library/html.entities.rst
+++ b/Doc/library/html.entities.rst
@@ -44,4 +44,4 @@ This module defines four dictionaries, :data:`html5`,
.. 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
diff --git a/Doc/library/importlib.metadata.rst b/Doc/library/importlib.metadata.rst
index d40ed70d5cd83f..107b7465c91b11 100644
--- a/Doc/library/importlib.metadata.rst
+++ b/Doc/library/importlib.metadata.rst
@@ -136,7 +136,7 @@ Inspect the resolved entry point::
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
-`_
+`_
for more information on entry points, their definition, and usage.
*Compatibility Note*
diff --git a/Doc/library/importlib.resources.rst b/Doc/library/importlib.resources.rst
index f62d15dd6fdc9e..b88c9882de44b8 100644
--- a/Doc/library/importlib.resources.rst
+++ b/Doc/library/importlib.resources.rst
@@ -4,7 +4,7 @@
.. module:: importlib.resources
:synopsis: Package resource reading, opening, and access
-**Source code:** :source:`Lib/importlib/resources.py`
+**Source code:** :source:`Lib/importlib/resources/__init__.py`
--------------
diff --git a/Doc/library/math.rst b/Doc/library/math.rst
index 5efcc7f6a6efc4..6d9a992f731316 100644
--- a/Doc/library/math.rst
+++ b/Doc/library/math.rst
@@ -578,7 +578,7 @@ Special functions
The :func:`erf` function can be used to compute traditional statistical
functions such as the `cumulative standard normal distribution
- `_::
+ `_::
def phi(x):
'Cumulative distribution function for the standard normal distribution'
diff --git a/Doc/library/os.rst b/Doc/library/os.rst
index 87e9eb6b69c84b..baf89bf8b56aac 100644
--- a/Doc/library/os.rst
+++ b/Doc/library/os.rst
@@ -4318,7 +4318,7 @@ written in Python, such as a mail server's external command delivery program.
: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) `_ manual page on Unix or `the GetProcessTimes MSDN
`_
on Windows. On Windows, only :attr:`!user` and :attr:`!system` are known; the other attributes are zero.
diff --git a/Doc/library/pathlib.rst b/Doc/library/pathlib.rst
index 982b567785168d..2b798698385fd1 100644
--- a/Doc/library/pathlib.rst
+++ b/Doc/library/pathlib.rst
@@ -328,14 +328,13 @@ Pure paths provide the following methods and properties:
.. note::
This behavior conforms to *The Open Group Base Specifications Issue 6*,
- paragraph `4.11 *Pathname Resolution* `_:
+ paragraph `4.11 Pathname Resolution
+ `_:
*"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::
diff --git a/Doc/library/signal.rst b/Doc/library/signal.rst
index 678411d4f17056..36bb4a98da132b 100644
--- a/Doc/library/signal.rst
+++ b/Doc/library/signal.rst
@@ -95,7 +95,7 @@ The signal module defines three enums:
:class:`enum.IntEnum` collection the constants :const:`SIG_BLOCK`, :const:`SIG_UNBLOCK` and :const:`SIG_SETMASK`.
- Availability: Unix. See the man page :manpage:`sigprocmask(3)` and
+ Availability: Unix. See the man page :manpage:`sigprocmask(2)` and
:manpage:`pthread_sigmask(3)` for further information.
.. versionadded:: 3.5
diff --git a/Doc/library/ssl.rst b/Doc/library/ssl.rst
index c7ca4395ed96c9..7e26e2ec6f19d1 100644
--- a/Doc/library/ssl.rst
+++ b/Doc/library/ssl.rst
@@ -1910,7 +1910,7 @@ to speed up repeated connections from the same clients.
.. 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 `_ to their
+ A dictionary is returned which maps the names of each `piece of information `_ to their
numeric values. For example, here is the total number of hits and misses
in the session cache since the context was created::
@@ -2704,7 +2704,7 @@ enabled when negotiating a SSL session is possible through 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
to further restrict the cipher choice. Be sure to read OpenSSL's documentation
-about the `cipher list format `_.
+about the `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.
diff --git a/Doc/library/statistics.rst b/Doc/library/statistics.rst
index 4cd983bb25468a..347a1be8321e45 100644
--- a/Doc/library/statistics.rst
+++ b/Doc/library/statistics.rst
@@ -798,7 +798,7 @@ of applications in statistics.
Compute the inverse cumulative distribution function, also known as the
`quantile function `_
or the `percent-point
- `_
+ `_
function. Mathematically, it is written ``x : P(X <= x) = p``.
Finds the value *x* of the random variable *X* such that the
@@ -947,7 +947,7 @@ probability that the Python room will stay within its capacity limits?
Normal distributions commonly arise in machine learning problems.
Wikipedia has a `nice example of a Naive Bayesian Classifier
-`_.
+`_.
The challenge is to predict a person's gender from measurements of normally
distributed features including height, weight, and foot size.
diff --git a/Doc/library/struct.rst b/Doc/library/struct.rst
index 978eeabe37b1a3..25e26201d7d437 100644
--- a/Doc/library/struct.rst
+++ b/Doc/library/struct.rst
@@ -467,6 +467,6 @@ The :mod:`struct` module also defines the following type:
.. _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
diff --git a/Doc/library/unittest.mock.rst b/Doc/library/unittest.mock.rst
index acc0d67541ae82..b768557e6075f6 100644
--- a/Doc/library/unittest.mock.rst
+++ b/Doc/library/unittest.mock.rst
@@ -1944,7 +1944,7 @@ Both patch_ and patch.object_ correctly patch and restore descriptors: class
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
-`_.
+`_.
MagicMock and magic method support
diff --git a/Doc/license.rst b/Doc/license.rst
index e0ca5f2662dc1c..e0276b49243770 100644
--- a/Doc/license.rst
+++ b/Doc/license.rst
@@ -626,9 +626,9 @@ strtod and dtoa
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::
/****************************************************************
*
diff --git a/Doc/tools/templates/download.html b/Doc/tools/templates/download.html
index 2456625043416c..7920e0619f9337 100644
--- a/Doc/tools/templates/download.html
+++ b/Doc/tools/templates/download.html
@@ -3,6 +3,10 @@
{% 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 %}
diff --git a/Doc/using/unix.rst b/Doc/using/unix.rst
index 0a1834453a0ee8..3f9f1364c8ae87 100644
--- a/Doc/using/unix.rst
+++ b/Doc/using/unix.rst
@@ -69,7 +69,7 @@ Building Python
If you want to compile CPython yourself, first thing you should do is get the
`source `_. You can download either the
latest release's source or just grab a fresh `clone
-`_. (If you want
+`_. (If you want
to contribute patches, you will need a clone.)
The build process consists of the usual commands::
diff --git a/Doc/using/venv-create.inc b/Doc/using/venv-create.inc
index ddb36f94667d9f..b9785832864e22 100644
--- a/Doc/using/venv-create.inc
+++ b/Doc/using/venv-create.inc
@@ -17,7 +17,7 @@ re-used.
.. 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
- `_.
+ `_.
.. versionchanged:: 3.5
The use of ``venv`` is now recommended for creating virtual environments.
diff --git a/Doc/using/windows.rst b/Doc/using/windows.rst
index dcc533726813ca..d7e0a5e13825a5 100644
--- a/Doc/using/windows.rst
+++ b/Doc/using/windows.rst
@@ -513,9 +513,11 @@ key features:
Popular scientific modules (such as numpy, scipy and pandas) and the
``conda`` package manager.
-`Canopy `_
- A "comprehensive Python analysis environment" with editors and other
- development tools.
+`Enthought Deployment Manager `_
+ "The Next Generation Python Environment and Package Manager".
+
+ Previously Enthought provided Canopy, but it `reached end of life in 2016
+ `_.
`WinPython `_
Windows-specific distribution with prebuilt scientific packages and
@@ -1170,7 +1172,7 @@ Compiling Python on Windows
If you want to compile CPython yourself, first thing you should do is get the
`source `_. You can download either the
latest release's source or just grab a fresh `checkout
-`_.
+`_.
The source tree contains a build solution and project files for Microsoft
Visual Studio, which is the compiler used to build the official Python
diff --git a/Doc/whatsnew/2.1.rst b/Doc/whatsnew/2.1.rst
index b690f90cf6636b..0136de58774038 100644
--- a/Doc/whatsnew/2.1.rst
+++ b/Doc/whatsnew/2.1.rst
@@ -542,8 +542,11 @@ PEP 241: Metadata in Python Packages
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
+`_)
+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
diff --git a/Doc/whatsnew/2.5.rst b/Doc/whatsnew/2.5.rst
index 103a72f913c631..597eaf51fb68d4 100644
--- a/Doc/whatsnew/2.5.rst
+++ b/Doc/whatsnew/2.5.rst
@@ -551,7 +551,7 @@ exhausted.
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.
.. ======================================================================
@@ -1746,8 +1746,8 @@ modules, now that :mod:`ctypes` is included with core Python.
.. 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.
@@ -2065,7 +2065,7 @@ up a server takes only a few lines of code::
.. 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
diff --git a/Doc/whatsnew/2.6.rst b/Doc/whatsnew/2.6.rst
index 08a7c58b0f0805..0dbb5e50d27d75 100644
--- a/Doc/whatsnew/2.6.rst
+++ b/Doc/whatsnew/2.6.rst
@@ -176,7 +176,7 @@ Hosting of the Python bug tracker is kindly provided by
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::
diff --git a/Doc/whatsnew/2.7.rst b/Doc/whatsnew/2.7.rst
index 297ce0647130e5..8eb8daa2feeeb9 100644
--- a/Doc/whatsnew/2.7.rst
+++ b/Doc/whatsnew/2.7.rst
@@ -1545,7 +1545,7 @@ changes, or look through the Subversion logs for all the details.
*ciphers* argument that's a string listing the encryption algorithms
to be allowed; the format of the string is described
`in the OpenSSL documentation
- `__.
+ `__.
(Added by Antoine Pitrou; :issue:`8322`.)
Another change makes the extension load all of OpenSSL's ciphers and
@@ -2001,7 +2001,7 @@ module is imported or used.
.. 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.)
diff --git a/Doc/whatsnew/3.2.rst b/Doc/whatsnew/3.2.rst
index 15f8672adda0d7..93e455125c1265 100644
--- a/Doc/whatsnew/3.2.rst
+++ b/Doc/whatsnew/3.2.rst
@@ -1647,7 +1647,7 @@ for secure (encrypted, authenticated) internet connections:
* 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
- `__.
+ `__.
* When linked against recent versions of OpenSSL, the :mod:`ssl` module now
supports the Server Name Indication extension to the TLS protocol, allowing
@@ -2593,10 +2593,12 @@ Changes to Python's build process and to the C API include:
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 `_
+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 `_
+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 `_\.
diff --git a/Doc/whatsnew/3.6.rst b/Doc/whatsnew/3.6.rst
index d35a0fd9d9da38..e54475fd83c975 100644
--- a/Doc/whatsnew/3.6.rst
+++ b/Doc/whatsnew/3.6.rst
@@ -2117,7 +2117,8 @@ API and Feature Removals
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
+ `_.
* The deprecated ``asynchat.fifo`` class has been removed.
diff --git a/Doc/whatsnew/3.7.rst b/Doc/whatsnew/3.7.rst
index 49246be57639d1..b2078f5a82e280 100644
--- a/Doc/whatsnew/3.7.rst
+++ b/Doc/whatsnew/3.7.rst
@@ -2120,7 +2120,8 @@ Platform Support Removals
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
+ `_ provides an
example of using the SSL
:source:`compatibility testing infrastructure ` in
CPython's test suite to build and link against OpenSSL 1.1.0 rather than an