# Language redirects
r'https://toml.io': 'https://toml.io/en/',
r'https://www.redhat.com': 'https://www.redhat.com/en',
+ # pypi.org project name normalization (upper to lowercase, underscore to hyphen)
+ r'https://pypi.org/project/[A-Za-z\d_\-\.]+/': r'https://pypi.org/project/[a-z\d\-\.]+/',
+ # Discourse title name expansion (text changes when title is edited)
+ r'https://discuss\.python\.org/t/\d+': r'https://discuss\.python\.org/t/.*/\d+',
# Other redirects
r'https://www.boost.org/libs/.+': r'https://www.boost.org/doc/libs/\d_\d+_\d/.+',
r'https://support.microsoft.com/en-us/help/\d+': 'https://support.microsoft.com/en-us/topic/.+',
-----------------------------------------------------------------
`Cython <https://cython.org/>`_ compiles a modified version of Python with
-optional annotations into C extensions. `Nuitka <https://www.nuitka.net/>`_ is
+optional annotations into C extensions. `Nuitka <https://nuitka.net/>`_ is
an up-and-coming compiler of Python into C++ code, aiming to support the full
Python language.
collector's parameters.
Other implementations (such as `Jython <https://www.jython.org>`_ or
-`PyPy <https://www.pypy.org>`_), however, can rely on a different mechanism
+`PyPy <https://pypy.org>`_), however, can rely on a different mechanism
such as a full-blown garbage collector. This difference can cause some
subtle porting problems if your Python code depends on the behavior of the
reference counting implementation.
by the signer.
(`NIST SP-800-106 "Randomized Hashing for Digital Signatures"
- <https://csrc.nist.gov/publications/detail/sp/800-106/archive/2009-02-25>`_)
+ <https://csrc.nist.gov/pubs/sp/800/106/final>`_)
In BLAKE2 the salt is processed as a one-time input to the hash function during
initialization, rather than as an input to each compression function.
.. _NIST-SP-800-132: https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-132.pdf
.. _stackexchange pbkdf2 iterations question: https://security.stackexchange.com/questions/3959/recommended-of-iterations-when-using-pbkdf2-sha256/
.. _Attacks on cryptographic hash algorithms: https://en.wikipedia.org/wiki/Cryptographic_hash_function#Attacks_on_cryptographic_hash_algorithms
-.. _the FIPS 180-4 standard: https://csrc.nist.gov/publications/detail/fips/180/4/final
-.. _the FIPS 202 standard: https://csrc.nist.gov/publications/detail/fips/202/final
+.. _the FIPS 180-4 standard: https://csrc.nist.gov/pubs/fips/180-4/upd1/final
+.. _the FIPS 202 standard: https://csrc.nist.gov/pubs/fips/202/final
.. _HACL\* project: https://github.com/hacl-star/hacl-star
https://nvlpubs.nist.gov/nistpubs/fips/nist.fips.180-4.pdf
The FIPS 180-4 publication on Secure Hash Algorithms.
- https://csrc.nist.gov/publications/detail/fips/202/final
+ https://csrc.nist.gov/pubs/fips/202/final
The FIPS 202 publication on the SHA-3 Standard.
https://www.blake2.net/
The Netscape protocol with the bugs fixed. Uses :mailheader:`Set-Cookie2` in
place of :mailheader:`Set-Cookie`. Not widely used.
- http://kristol.org/cookie/errata.html
+ https://kristol.org/cookie/errata.html
Unfinished errata to :rfc:`2965`.
:rfc:`2964` - Use of HTTP State Management
`JSON (JavaScript Object Notation) <https://json.org>`_, specified by
:rfc:`7159` (which obsoletes :rfc:`4627`) and by
-`ECMA-404 <https://www.ecma-international.org/publications-and-standards/standards/ecma-404/>`_,
+`ECMA-404 <https://ecma-international.org/publications-and-standards/standards/ecma-404/>`_,
is a lightweight data interchange format inspired by
`JavaScript <https://en.wikipedia.org/wiki/JavaScript>`_ object literal syntax
(although it is not a strict subset of JavaScript [#rfc-errata]_ ).
----------------------------------------
The JSON format is specified by :rfc:`7159` and by
-`ECMA-404 <https://www.ecma-international.org/publications-and-standards/standards/ecma-404/>`_.
+`ECMA-404 <https://ecma-international.org/publications-and-standards/standards/ecma-404/>`_.
This section details this module's level of compliance with the RFC.
For simplicity, :class:`JSONEncoder` and :class:`JSONDecoder` subclasses, and
parameters other than those explicitly mentioned, are not considered.
The *capath* string, if present, is
the path to a directory containing several CA certificates in PEM format,
following an `OpenSSL specific layout
- <https://www.openssl.org/docs/manmaster/man3/SSL_CTX_load_verify_locations.html>`_.
+ <https://docs.openssl.org/master/man3/SSL_CTX_load_verify_locations/>`_.
The *cadata* object, if present, is either an ASCII string of one or more
PEM-encoded certificates or a :term:`bytes-like object` of DER-encoded
Set the available ciphers for sockets created with this context.
It should be a string in the `OpenSSL cipher list format
- <https://www.openssl.org/docs/manmaster/man1/ciphers.html>`_.
+ <https://docs.openssl.org/master/man1/ciphers/>`_.
If no cipher can be selected (because compile-time options or other
configuration forbids use of all the specified ciphers), an
:class:`SSLError` will be raised.
.. 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/man3/SSL_CTX_sess_number.html>`_ to their
+ A dictionary is returned which maps the names of each `piece of information <https://docs.openssl.org/1.1.1/man3/SSL_CTX_sess_number/>`_ to their
numeric values. For example, here is the total number of hits and misses
in the session cache since the context was created::
.. attribute:: SSLContext.security_level
An integer representing the `security level
- <https://www.openssl.org/docs/manmaster/man3/SSL_CTX_get_security_level.html>`_
+ <https://docs.openssl.org/master/man3/SSL_CTX_get_security_level/>`_
for the context. This attribute is read-only.
.. versionadded:: 3.10
* `Modern Tkinter for Busy Python Developers <https://tkdocs.com/book.html>`_
By Mark Roseman. (ISBN 978-1999149567)
- * `Python GUI programming with Tkinter <https://www.packtpub.com/product/python-gui-programming-with-tkinter/9781788835886>`_
+ * `Python GUI programming with Tkinter <https://www.packtpub.com/en-us/product/python-gui-programming-with-tkinter-9781788835886>`_
By Alan D. Moore. (ISBN 978-1788835886)
* `Programming Python <https://learning-python.com/about-pp4e.html>`_
.. seealso::
`Unreachable Code and Exhaustiveness Checking
- <https://typing.readthedocs.io/en/latest/source/unreachable.html>`__ has more
+ <https://typing.readthedocs.io/en/latest/guides/unreachable.html>`__ has more
information about exhaustiveness checking with static typing.
.. versionadded:: 3.11
A good description of XML-RPC operation and client software in several languages.
Contains pretty much everything an XML-RPC client developer needs to know.
- `XML-RPC Introspection <https://xmlrpc-c.sourceforge.net/introspection.html>`_
+ `XML-RPC Introspection <https://xmlrpc-c.sourceforge.io/introspection.html>`_
Describes the XML-RPC protocol extension for introspection.
`XML-RPC Specification <http://xmlrpc.scripting.com/spec.html>`_
and a Just in Time compiler. One of the goals of the project is to encourage
experimentation with the language itself by making it easier to modify the
interpreter (since it is written in Python). Additional information is
- available on `the PyPy project's home page <https://www.pypy.org/>`_.
+ available on `the PyPy project's home page <https://pypy.org/>`_.
Each of these implementations varies in some way from the language as documented
in this manual, or introduces specific information beyond what's covered in the
A number of alternative macOS GUI toolkits are available:
* `PySide <https://www.qt.io/qt-for-python>`__: Official Python bindings to the
- `Qt GUI toolkit <https://qt.io>`__.
+ `Qt GUI toolkit <https://www.qt.io>`__.
* `PyQt <https://riverbankcomputing.com/software/pyqt/intro>`__: Alternative
Python bindings to Qt.
Popular scientific modules (such as numpy, scipy and pandas) and the
``conda`` package manager.
-`Enthought Deployment Manager <https://www.enthought.com/edm/>`_
+`Enthought Deployment Manager <https://assets.enthought.com/downloads/edm/>`_
"The Next Generation Python Environment and Package Manager".
Previously Enthought provided Canopy, but it `reached end of life in 2016
.. seealso::
- `Win32 How Do I...? <http://timgolden.me.uk/python/win32_how_do_i.html>`_
+ `Win32 How Do I...? <https://timgolden.me.uk/python/win32_how_do_i.html>`_
by Tim Golden
`Python and COM <https://www.boddie.org.uk/python/COM.html>`_
Written by Facundo Batista and implemented by Facundo Batista, Eric Price,
Raymond Hettinger, Aahz, and Tim Peters.
- http://www.lahey.com/float.htm
+ `http://www.lahey.com/float.htm <https://web.archive.org/web/20230604072523/http://www.lahey.com/float.htm>`__
The article uses Fortran code to illustrate many of the problems that
floating-point inaccuracy can cause.
- http://speleotrove.com/decimal/
+ https://speleotrove.com/decimal/
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
material was written by Mike Cowlishaw, designer of the Rexx language.
*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/man1.0.2/man1/ciphers.html>`__.
+ <https://docs.openssl.org/1.0.2/man1/ciphers/>`__.
(Added by Antoine Pitrou; :issue:`8322`.)
Another change makes the extension load all of OpenSSL's ciphers and
We added the warning to raise awareness as issues encountered by code doing
this are becoming more frequent. See the :func:`os.fork` documentation for
more details along with `this discussion on fork being incompatible with threads
- <https://discuss.python.org/t/33555>`_ for *why* we're now surfacing this
+ <https://discuss.python.org/t/concerns-regarding-deprecation-of-fork-with-alive-threads/33555>`_ for *why* we're now surfacing this
longstanding platform compatibility problem to developers.
When this warning appears due to usage of :mod:`multiprocessing` or
Expose ``X509_V_FLAG_ALLOW_PROXY_CERTS`` as
:const:`~ssl.VERIFY_ALLOW_PROXY_CERTS` to allow proxy certificate validation
as explained in
-https://www.openssl.org/docs/man1.1.1/man7/proxy-certificates.html.
+https://docs.openssl.org/1.1.1/man7/proxy-certificates/.
..
Updated the OpenSSL version used in Windows and macOS binary release builds
to 1.1.1t to address :cve:`2023-0286`, :cve:`2022-4303`, and :cve:`2022-4303` per
`the OpenSSL 2023-02-07 security advisory
-<https://www.openssl.org/news/secadv/20230207.txt>`_.
+<https://openssl-library.org/news/secadv/20230207.txt>`_.
..