diff --git a/Doc/about.rst b/Doc/about.rst
index 0ce35667924b92..5e6160ff2700ed 100644
--- a/Doc/about.rst
+++ b/Doc/about.rst
@@ -7,7 +7,7 @@ These documents are generated from `reStructuredText`_ sources by `Sphinx`_, a
document processor specifically written for the Python documentation.
.. _reStructuredText: https://docutils.sourceforge.io/rst.html
-.. _Sphinx: http://sphinx-doc.org/
+.. _Sphinx: https://www.sphinx-doc.org/
.. In the online version of these documents, you can submit comments and suggest
changes directly on the documentation pages.
diff --git a/Doc/faq/general.rst b/Doc/faq/general.rst
index f77bf7e321199b..a362bbfe777770 100644
--- a/Doc/faq/general.rst
+++ b/Doc/faq/general.rst
@@ -182,7 +182,7 @@ at https://docs.python.org/3/. PDF, plain text, and downloadable HTML versions
also available at https://docs.python.org/3/download.html.
The documentation is written in reStructuredText and processed by `the Sphinx
-documentation tool `__. The reStructuredText source for
+documentation tool `__. The reStructuredText source for
the documentation is part of the Python source distribution.
@@ -270,7 +270,7 @@ Where in the world is www.python.org located?
---------------------------------------------
The Python project's infrastructure is located all over the world and is managed
-by the Python Infrastructure Team. Details `here `__.
+by the Python Infrastructure Team. Details `here `__.
Why is it called Python?
diff --git a/Doc/faq/library.rst b/Doc/faq/library.rst
index 8167bf22f0b1ad..ad839891fdcc62 100644
--- a/Doc/faq/library.rst
+++ b/Doc/faq/library.rst
@@ -181,7 +181,7 @@ How do I create documentation from doc strings?
The :mod:`pydoc` module can create HTML from the doc strings in your Python
source code. An alternative for creating API documentation purely from
docstrings is `epydoc `_. `Sphinx
-`_ can also include docstring content.
+`_ can also include docstring content.
How do I get a single keypress at a time?
diff --git a/Doc/faq/programming.rst b/Doc/faq/programming.rst
index 79176d02fb5140..222d03d1e8e498 100644
--- a/Doc/faq/programming.rst
+++ b/Doc/faq/programming.rst
@@ -1270,7 +1270,7 @@ use a list comprehension::
A = [[None] * w for i in range(h)]
Or, you can use an extension that provides a matrix datatype; `NumPy
-`_ is the best known.
+`_ is the best known.
How do I apply a method to a sequence of objects?
diff --git a/Doc/howto/unicode.rst b/Doc/howto/unicode.rst
index 4969d2420d6ac9..ca09aee72bf879 100644
--- a/Doc/howto/unicode.rst
+++ b/Doc/howto/unicode.rst
@@ -517,7 +517,7 @@ References
Some good alternative discussions of Python's Unicode support are:
-* `Processing Text Files in Python 3 `_, by Nick Coghlan.
+* `Processing Text Files in Python 3 `_, by Nick Coghlan.
* `Pragmatic Unicode `_, a PyCon 2012 presentation by Ned Batchelder.
The :class:`str` type is described in the Python library reference at
diff --git a/Doc/library/bisect.rst b/Doc/library/bisect.rst
index c2927c1ebd0e1b..9b40f80f5878a4 100644
--- a/Doc/library/bisect.rst
+++ b/Doc/library/bisect.rst
@@ -127,7 +127,7 @@ thoughts in mind:
.. seealso::
* `Sorted Collections
- `_ is a high performance
+ `_ is a high performance
module that uses *bisect* to managed sorted collections of data.
* The `SortedCollection recipe
diff --git a/Doc/library/decimal.rst b/Doc/library/decimal.rst
index c1bc62432e4ca5..ab3d3b8d8f3453 100644
--- a/Doc/library/decimal.rst
+++ b/Doc/library/decimal.rst
@@ -114,7 +114,7 @@ reset them before monitoring a calculation.
.. seealso::
* IBM's General Decimal Arithmetic Specification, `The General Decimal Arithmetic
- Specification `_.
+ Specification `_.
.. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Doc/library/mailbox.rst b/Doc/library/mailbox.rst
index d74fc8059fd538..69751d5cbf4d0f 100644
--- a/Doc/library/mailbox.rst
+++ b/Doc/library/mailbox.rst
@@ -614,7 +614,7 @@ Supported mailbox formats are Maildir, mbox, MH, Babyl, and MMDF.
.. seealso::
- `nmh - Message Handling System `_
+ `nmh - Message Handling System `_
Home page of :program:`nmh`, an updated version of the original :program:`mh`.
`MH & nmh: Email for Users & Programmers `_
diff --git a/Doc/library/multiprocessing.shared_memory.rst b/Doc/library/multiprocessing.shared_memory.rst
index 127a82d47aa195..76046b34610abe 100644
--- a/Doc/library/multiprocessing.shared_memory.rst
+++ b/Doc/library/multiprocessing.shared_memory.rst
@@ -125,7 +125,7 @@ instances::
The following example demonstrates a practical use of the :class:`SharedMemory`
-class with `NumPy arrays `_, accessing the
+class with `NumPy arrays `_, accessing the
same ``numpy.ndarray`` from two distinct Python shells:
.. doctest::
diff --git a/Doc/library/pickle.rst b/Doc/library/pickle.rst
index 920df712ea58f7..7a4906b75f9777 100644
--- a/Doc/library/pickle.rst
+++ b/Doc/library/pickle.rst
@@ -90,7 +90,7 @@ Comparison with ``json``
^^^^^^^^^^^^^^^^^^^^^^^^
There are fundamental differences between the pickle protocols and
-`JSON (JavaScript Object Notation) `_:
+`JSON (JavaScript Object Notation) `_:
* JSON is a text serialization format (it outputs unicode text, although
most of the time it is then encoded to ``utf-8``), while pickle is
diff --git a/Doc/library/random.rst b/Doc/library/random.rst
index 7cfa2755851e03..839de800138c79 100644
--- a/Doc/library/random.rst
+++ b/Doc/library/random.rst
@@ -546,14 +546,14 @@ Simulation of arrival times and service deliveries for a multiserver queue::
including simulation, sampling, shuffling, and cross-validation.
`Economics Simulation
- `_
+ `_
a simulation of a marketplace by
`Peter Norvig `_ that shows effective
use of many of the tools and distributions provided by this module
(gauss, uniform, sample, betavariate, choice, triangular, and randrange).
`A Concrete Introduction to Probability (using Python)
- `_
+ `_
a tutorial by `Peter Norvig `_ covering
the basics of probability theory, how to write simulations, and
how to perform data analysis using Python.
diff --git a/Doc/tutorial/inputoutput.rst b/Doc/tutorial/inputoutput.rst
index de84ab7fac8faa..3581b3727a53ea 100644
--- a/Doc/tutorial/inputoutput.rst
+++ b/Doc/tutorial/inputoutput.rst
@@ -478,7 +478,7 @@ becomes complicated.
Rather than having users constantly writing and debugging code to save
complicated data types to files, Python allows you to use the popular data
interchange format called `JSON (JavaScript Object Notation)
-`_. The standard module called :mod:`json` can take Python
+`_. The standard module called :mod:`json` can take Python
data hierarchies, and convert them to string representations; this process is
called :dfn:`serializing`. Reconstructing the data from the string representation
is called :dfn:`deserializing`. Between serializing and deserializing, the
diff --git a/Doc/whatsnew/2.6.rst b/Doc/whatsnew/2.6.rst
index 3d0d18746a21cc..5a3c103f29a789 100644
--- a/Doc/whatsnew/2.6.rst
+++ b/Doc/whatsnew/2.6.rst
@@ -217,7 +217,7 @@ the time required to finish the job.
During the 2.6 development cycle, Georg Brandl put a lot of effort
into building a new toolchain for processing the documentation. The
resulting package is called Sphinx, and is available from
-http://sphinx-doc.org/.
+https://www.sphinx-doc.org/.
Sphinx concentrates on HTML output, producing attractively styled and
modern HTML; printed output is still supported through conversion to
@@ -235,7 +235,7 @@ have adopted Sphinx as their documentation tool.
`Documenting Python `__
Describes how to write for Python's documentation.
- `Sphinx `__
+ `Sphinx `__
Documentation and code for the Sphinx toolchain.
`Docutils `__
@@ -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 :mod:`decimal` module was updated to version 1.66 of
- `the General Decimal Specification `__. New features
+ `the General Decimal Specification `__. New features
include some methods for some basic mathematical functions such as
:meth:`exp` and :meth:`log10`::
diff --git a/Doc/whatsnew/3.1.rst b/Doc/whatsnew/3.1.rst
index 6ce6358d49fbca..fba8816bb243a3 100644
--- a/Doc/whatsnew/3.1.rst
+++ b/Doc/whatsnew/3.1.rst
@@ -451,7 +451,7 @@ Major performance enhancements have been added:
* The :mod:`json` module now has a C extension to substantially improve
its performance. In addition, the API was modified so that json works
only with :class:`str`, not with :class:`bytes`. That change makes the
- module closely match the `JSON specification `_
+ module closely match the `JSON specification `_
which is defined in terms of Unicode.
(Contributed by Bob Ippolito and converted to Py3.1 by Antoine Pitrou
diff --git a/Include/dynamic_annotations.h b/Include/dynamic_annotations.h
index 0bd1a833c2e5a5..4d4def9bf8983e 100644
--- a/Include/dynamic_annotations.h
+++ b/Include/dynamic_annotations.h
@@ -44,7 +44,7 @@
Actual implementation of these macros may differ depending on the
dynamic analysis tool being used.
- See http://code.google.com/p/data-race-test/ for more information.
+ See https://code.google.com/p/data-race-test/ for more information.
This file supports the following dynamic analysis tools:
- None (DYNAMIC_ANNOTATIONS_ENABLED is not defined or zero).
@@ -140,7 +140,7 @@
of the mutex's critical sections individually using the annotations above.
This annotation makes sense only for hybrid race detectors. For pure
happens-before detectors this is a no-op. For more details see
- http://code.google.com/p/data-race-test/wiki/PureHappensBeforeVsHybrid . */
+ https://code.google.com/p/data-race-test/wiki/PureHappensBeforeVsHybrid . */
#define _Py_ANNOTATE_PURE_HAPPENS_BEFORE_MUTEX(mu) \
AnnotateMutexIsUsedAsCondVar(__FILE__, __LINE__, mu)
diff --git a/Lib/json/__init__.py b/Lib/json/__init__.py
index e4c21daaf3e47f..ed2c74771ea87d 100644
--- a/Lib/json/__init__.py
+++ b/Lib/json/__init__.py
@@ -1,4 +1,4 @@
-r"""JSON (JavaScript Object Notation) is a subset of
+r"""JSON (JavaScript Object Notation) is a subset of
JavaScript syntax (ECMA-262 3rd edition) used as a lightweight data
interchange format.
diff --git a/Lib/json/decoder.py b/Lib/json/decoder.py
index d7d824454e1ba3..c5d9ae2d0d5d04 100644
--- a/Lib/json/decoder.py
+++ b/Lib/json/decoder.py
@@ -252,7 +252,7 @@ def JSONArray(s_and_end, scan_once, _w=WHITESPACE.match, _ws=WHITESPACE_STR):
class JSONDecoder(object):
- """Simple JSON decoder
+ """Simple JSON decoder
Performs the following translations in decoding by default:
diff --git a/Lib/json/encoder.py b/Lib/json/encoder.py
index 21bff2c1a1fca3..687c50683a09c0 100644
--- a/Lib/json/encoder.py
+++ b/Lib/json/encoder.py
@@ -71,7 +71,7 @@ def replace(match):
c_encode_basestring_ascii or py_encode_basestring_ascii)
class JSONEncoder(object):
- """Extensible JSON encoder for Python data structures.
+ """Extensible JSON encoder for Python data structures.
Supports the following objects and types by default:
diff --git a/Lib/test/test_ipaddress.py b/Lib/test/test_ipaddress.py
index f012af052322d3..f1ef87f7d589b1 100644
--- a/Lib/test/test_ipaddress.py
+++ b/Lib/test/test_ipaddress.py
@@ -1653,7 +1653,7 @@ def testNth(self):
self.assertRaises(IndexError, self.ipv6_scoped_network.__getitem__, 1 << 64)
def testGetitem(self):
- # http://code.google.com/p/ipaddr-py/issues/detail?id=15
+ # https://code.google.com/p/ipaddr-py/issues/detail?id=15
addr = ipaddress.IPv4Network('172.31.255.128/255.255.255.240')
self.assertEqual(28, addr.prefixlen)
addr_list = list(addr)
diff --git a/Lib/test/test_json/test_fail.py b/Lib/test/test_json/test_fail.py
index eb9064edea9115..efc982e8b0eb04 100644
--- a/Lib/test/test_json/test_fail.py
+++ b/Lib/test/test_json/test_fail.py
@@ -2,73 +2,73 @@
# 2007-10-05
JSONDOCS = [
- # http://json.org/JSON_checker/test/fail1.json
+ # https://json.org/JSON_checker/test/fail1.json
'"A JSON payload should be an object or array, not a string."',
- # http://json.org/JSON_checker/test/fail2.json
+ # https://json.org/JSON_checker/test/fail2.json
'["Unclosed array"',
- # http://json.org/JSON_checker/test/fail3.json
+ # https://json.org/JSON_checker/test/fail3.json
'{unquoted_key: "keys must be quoted"}',
- # http://json.org/JSON_checker/test/fail4.json
+ # https://json.org/JSON_checker/test/fail4.json
'["extra comma",]',
- # http://json.org/JSON_checker/test/fail5.json
+ # https://json.org/JSON_checker/test/fail5.json
'["double extra comma",,]',
- # http://json.org/JSON_checker/test/fail6.json
+ # https://json.org/JSON_checker/test/fail6.json
'[ , "<-- missing value"]',
- # http://json.org/JSON_checker/test/fail7.json
+ # https://json.org/JSON_checker/test/fail7.json
'["Comma after the close"],',
- # http://json.org/JSON_checker/test/fail8.json
+ # https://json.org/JSON_checker/test/fail8.json
'["Extra close"]]',
- # http://json.org/JSON_checker/test/fail9.json
+ # https://json.org/JSON_checker/test/fail9.json
'{"Extra comma": true,}',
- # http://json.org/JSON_checker/test/fail10.json
+ # https://json.org/JSON_checker/test/fail10.json
'{"Extra value after close": true} "misplaced quoted value"',
- # http://json.org/JSON_checker/test/fail11.json
+ # https://json.org/JSON_checker/test/fail11.json
'{"Illegal expression": 1 + 2}',
- # http://json.org/JSON_checker/test/fail12.json
+ # https://json.org/JSON_checker/test/fail12.json
'{"Illegal invocation": alert()}',
- # http://json.org/JSON_checker/test/fail13.json
+ # https://json.org/JSON_checker/test/fail13.json
'{"Numbers cannot have leading zeroes": 013}',
- # http://json.org/JSON_checker/test/fail14.json
+ # https://json.org/JSON_checker/test/fail14.json
'{"Numbers cannot be hex": 0x14}',
- # http://json.org/JSON_checker/test/fail15.json
+ # https://json.org/JSON_checker/test/fail15.json
'["Illegal backslash escape: \\x15"]',
- # http://json.org/JSON_checker/test/fail16.json
+ # https://json.org/JSON_checker/test/fail16.json
'[\\naked]',
- # http://json.org/JSON_checker/test/fail17.json
+ # https://json.org/JSON_checker/test/fail17.json
'["Illegal backslash escape: \\017"]',
- # http://json.org/JSON_checker/test/fail18.json
+ # https://json.org/JSON_checker/test/fail18.json
'[[[[[[[[[[[[[[[[[[[["Too deep"]]]]]]]]]]]]]]]]]]]]',
- # http://json.org/JSON_checker/test/fail19.json
+ # https://json.org/JSON_checker/test/fail19.json
'{"Missing colon" null}',
- # http://json.org/JSON_checker/test/fail20.json
+ # https://json.org/JSON_checker/test/fail20.json
'{"Double colon":: null}',
- # http://json.org/JSON_checker/test/fail21.json
+ # https://json.org/JSON_checker/test/fail21.json
'{"Comma instead of colon", null}',
- # http://json.org/JSON_checker/test/fail22.json
+ # https://json.org/JSON_checker/test/fail22.json
'["Colon instead of comma": false]',
- # http://json.org/JSON_checker/test/fail23.json
+ # https://json.org/JSON_checker/test/fail23.json
'["Bad value", truth]',
- # http://json.org/JSON_checker/test/fail24.json
+ # https://json.org/JSON_checker/test/fail24.json
"['single quote']",
- # http://json.org/JSON_checker/test/fail25.json
+ # https://json.org/JSON_checker/test/fail25.json
'["\ttab\tcharacter\tin\tstring\t"]',
- # http://json.org/JSON_checker/test/fail26.json
+ # https://json.org/JSON_checker/test/fail26.json
'["tab\\ character\\ in\\ string\\ "]',
- # http://json.org/JSON_checker/test/fail27.json
+ # https://json.org/JSON_checker/test/fail27.json
'["line\nbreak"]',
- # http://json.org/JSON_checker/test/fail28.json
+ # https://json.org/JSON_checker/test/fail28.json
'["line\\\nbreak"]',
- # http://json.org/JSON_checker/test/fail29.json
+ # https://json.org/JSON_checker/test/fail29.json
'[0e]',
- # http://json.org/JSON_checker/test/fail30.json
+ # https://json.org/JSON_checker/test/fail30.json
'[0e+]',
- # http://json.org/JSON_checker/test/fail31.json
+ # https://json.org/JSON_checker/test/fail31.json
'[0e+-1]',
- # http://json.org/JSON_checker/test/fail32.json
+ # https://json.org/JSON_checker/test/fail32.json
'{"Comma instead if closing brace": true,',
- # http://json.org/JSON_checker/test/fail33.json
+ # https://json.org/JSON_checker/test/fail33.json
'["mismatch"}',
- # http://code.google.com/p/simplejson/issues/detail?id=3
+ # https://code.google.com/archive/p/simplejson/issues/3
'["A\u001FZ control characters in string"]',
]
diff --git a/Lib/test/test_json/test_pass1.py b/Lib/test/test_json/test_pass1.py
index 15e64b0aeae709..26bf3cdbd77303 100644
--- a/Lib/test/test_json/test_pass1.py
+++ b/Lib/test/test_json/test_pass1.py
@@ -1,7 +1,7 @@
from test.test_json import PyTest, CTest
-# from http://json.org/JSON_checker/test/pass1.json
+# from https://json.org/JSON_checker/test/pass1.json
JSON = r'''
[
"JSON Test Pattern pass1",
diff --git a/Lib/test/test_json/test_pass2.py b/Lib/test/test_json/test_pass2.py
index 35075249e3bc6f..9340de665aabe5 100644
--- a/Lib/test/test_json/test_pass2.py
+++ b/Lib/test/test_json/test_pass2.py
@@ -1,7 +1,7 @@
from test.test_json import PyTest, CTest
-# from http://json.org/JSON_checker/test/pass2.json
+# from https://json.org/JSON_checker/test/pass2.json
JSON = r'''
[[[[[[[[[[[[[[[[[[["Not too deep"]]]]]]]]]]]]]]]]]]]
'''
diff --git a/Lib/test/test_json/test_pass3.py b/Lib/test/test_json/test_pass3.py
index cd0cf170d275c5..0adccc1c2a5316 100644
--- a/Lib/test/test_json/test_pass3.py
+++ b/Lib/test/test_json/test_pass3.py
@@ -1,7 +1,7 @@
from test.test_json import PyTest, CTest
-# from http://json.org/JSON_checker/test/pass3.json
+# from https://json.org/JSON_checker/test/pass3.json
JSON = r'''
{
"JSON Test Pattern pass3": {
diff --git a/Lib/wsgiref/validate.py b/Lib/wsgiref/validate.py
index 6e16578dbb648f..6044e320a474c6 100644
--- a/Lib/wsgiref/validate.py
+++ b/Lib/wsgiref/validate.py
@@ -1,6 +1,6 @@
# (c) 2005 Ian Bicking and contributors; written for Paste (http://pythonpaste.org)
-# Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php
-# Also licenced under the Apache License, 2.0: http://opensource.org/licenses/apache2.0.php
+# Licensed under the MIT license: https://opensource.org/licenses/mit-license.php
+# Also licenced under the Apache License, 2.0: https://opensource.org/licenses/apache2.0.php
# Licensed to PSF under a Contributor Agreement
"""
Middleware to check for obedience to the WSGI specification.