/*--start constants--*/
#define PY_MAJOR_VERSION 3
#define PY_MINOR_VERSION 9
-#define PY_MICRO_VERSION 11
+#define PY_MICRO_VERSION 12
#define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_FINAL
#define PY_RELEASE_SERIAL 0
/* Version as a string */
-#define PY_VERSION "3.9.11+"
+#define PY_VERSION "3.9.12"
/*--end constants--*/
/* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2.
# -*- coding: utf-8 -*-
-# Autogenerated by Sphinx on Tue Mar 15 21:44:32 2022
+# Autogenerated by Sphinx on Wed Mar 23 22:08:02 2022
topics = {'assert': 'The "assert" statement\n'
'**********************\n'
'\n'
'resulting\n'
'object is “compatible” with the exception. An object is '
'compatible\n'
- 'with an exception if it is the class or a base class of the '
- 'exception\n'
- 'object, or a tuple containing an item that is the class or a '
+ 'with an exception if the object is the class or a *non-virtual '
'base\n'
- 'class of the exception object.\n'
+ 'class* of the exception object, or a tuple containing an item '
+ 'that is\n'
+ 'the class or a non-virtual base class of the exception object.\n'
'\n'
'If no except clause matches the exception, the search for an '
'exception\n'
'on members\n'
' of hashed collections including "set", "frozenset", and '
'"dict".\n'
- ' "__hash__()" should return an integer. The only required '
- 'property\n'
- ' is that objects which compare equal have the same hash '
- 'value; it is\n'
- ' advised to mix together the hash values of the '
- 'components of the\n'
- ' object that also play a part in comparison of objects by '
- 'packing\n'
- ' them into a tuple and hashing the tuple. Example:\n'
+ ' The "__hash__()" method should return an integer. The '
+ 'only required\n'
+ ' property is that objects which compare equal have the '
+ 'same hash\n'
+ ' value; it is advised to mix together the hash values of '
+ 'the\n'
+ ' components of the object that also play a part in '
+ 'comparison of\n'
+ ' objects by packing them into a tuple and hashing the '
+ 'tuple.\n'
+ ' Example:\n'
'\n'
' def __hash__(self):\n'
' return hash((self.name, self.nick, self.color))\n'
'clause is\n'
'selected depending on the class of the instance: it must '
'reference the\n'
- 'class of the instance or a base class thereof. The instance '
- 'can be\n'
- 'received by the handler and can carry additional information '
- 'about the\n'
- 'exceptional condition.\n'
+ 'class of the instance or a *non-virtual base class* thereof. '
+ 'The\n'
+ 'instance can be received by the handler and can carry '
+ 'additional\n'
+ 'information about the exceptional condition.\n'
'\n'
'Note:\n'
'\n'
'clause is\n'
'selected depending on the class of the instance: it must '
'reference the\n'
- 'class of the instance or a base class thereof. The instance '
- 'can be\n'
- 'received by the handler and can carry additional information '
- 'about the\n'
- 'exceptional condition.\n'
+ 'class of the instance or a *non-virtual base class* thereof. '
+ 'The\n'
+ 'instance can be received by the handler and can carry '
+ 'additional\n'
+ 'information about the exceptional condition.\n'
'\n'
'Note:\n'
'\n'
'on members\n'
' of hashed collections including "set", "frozenset", and '
'"dict".\n'
- ' "__hash__()" should return an integer. The only required '
- 'property\n'
- ' is that objects which compare equal have the same hash '
- 'value; it is\n'
- ' advised to mix together the hash values of the components '
- 'of the\n'
- ' object that also play a part in comparison of objects by '
- 'packing\n'
- ' them into a tuple and hashing the tuple. Example:\n'
+ ' The "__hash__()" method should return an integer. The '
+ 'only required\n'
+ ' property is that objects which compare equal have the '
+ 'same hash\n'
+ ' value; it is advised to mix together the hash values of '
+ 'the\n'
+ ' components of the object that also play a part in '
+ 'comparison of\n'
+ ' objects by packing them into a tuple and hashing the '
+ 'tuple.\n'
+ ' Example:\n'
'\n'
' def __hash__(self):\n'
' return hash((self.name, self.nick, self.color))\n'
'exception. For an except clause with an expression, that expression\n'
'is evaluated, and the clause matches the exception if the resulting\n'
'object is “compatible” with the exception. An object is compatible\n'
- 'with an exception if it is the class or a base class of the '
- 'exception\n'
- 'object, or a tuple containing an item that is the class or a base\n'
- 'class of the exception object.\n'
+ 'with an exception if the object is the class or a *non-virtual base\n'
+ 'class* of the exception object, or a tuple containing an item that '
+ 'is\n'
+ 'the class or a non-virtual base class of the exception object.\n'
'\n'
'If no except clause matches the exception, the search for an '
'exception\n'
--- /dev/null
+.. bpo: 46968
+.. date: 2022-03-17-14-22-23
+.. nonce: 4gz4NA
+.. release date: 2022-03-23
+.. section: Core and Builtins
+
+Check for the existence of the "sys/auxv.h" header in :mod:`faulthandler` to
+avoid compilation problems in systems where this header doesn't exist. Patch
+by Pablo Galindo
+
+..
+
+.. bpo: 47101
+.. date: 2022-03-23-15-31-02
+.. nonce: rVSld-
+.. section: Library
+
+:const:`hashlib.algorithms_available` now lists only algorithms that are
+provided by activated crypto providers on OpenSSL 3.0. Legacy algorithms are
+not listed unless the legacy provider has been loaded into the default OSSL
+context.
+
+..
+
+.. bpo: 23691
+.. date: 2022-03-20-22-13-24
+.. nonce: Nc2TrW
+.. section: Library
+
+Protect the :func:`re.finditer` iterator from re-entering.
+
+..
+
+.. bpo: 42369
+.. date: 2022-03-19-19-56-04
+.. nonce: Ok828t
+.. section: Library
+
+Fix thread safety of :meth:`zipfile._SharedFile.tell` to avoid a
+"zipfile.BadZipFile: Bad CRC-32 for file" exception when reading a
+:class:`ZipFile` from multiple threads.
+
+..
+
+.. bpo: 38256
+.. date: 2022-03-19-15-54-41
+.. nonce: FoMbjE
+.. section: Library
+
+Fix :func:`binascii.crc32` when it is compiled to use zlib'c crc32 to work
+properly on inputs 4+GiB in length instead of returning the wrong result.
+The workaround prior to this was to always feed the function data in
+increments smaller than 4GiB or to just call the zlib module function.
+
+..
+
+.. bpo: 39394
+.. date: 2022-03-19-13-38-29
+.. nonce: 7j6WL6
+.. section: Library
+
+A warning about inline flags not at the start of the regular expression now
+contains the position of the flag.
+
+..
+
+.. bpo: 47061
+.. date: 2022-03-18-13-30-40
+.. nonce: etLHK5
+.. section: Library
+
+Deprecate the various modules listed by :pep:`594`:
+
+aifc, asynchat, asyncore, audioop, cgi, cgitb, chunk, crypt, imghdr, msilib,
+nntplib, nis, ossaudiodev, pipes, smtpd, sndhdr, spwd, sunau, telnetlib, uu,
+xdrlib
+
+..
+
+.. bpo: 2604
+.. date: 2022-03-16-18-25-19
+.. nonce: jeopdL
+.. section: Library
+
+Fix bug where doctests using globals would fail when run multiple times.
+
+..
+
+.. bpo: 45997
+.. date: 2022-03-15-18-32-12
+.. nonce: 4n2aVU
+.. section: Library
+
+Fix :class:`asyncio.Semaphore` re-aquiring FIFO order.
+
+..
+
+.. bpo: 47022
+.. date: 2022-03-15-09-29-52
+.. nonce: uaEDcI
+.. section: Library
+
+The :mod:`asynchat`, :mod:`asyncore` and :mod:`smtpd` modules have been
+deprecated since at least Python 3.6. Their documentation has now been
+updated to note they will removed in Python 3.12 (:pep:`594`).
+
+..
+
+.. bpo: 46421
+.. date: 2022-01-18-01-29-38
+.. nonce: 9LdmNr
+.. section: Library
+
+Fix a unittest issue where if the command was invoked as ``python -m
+unittest`` and the filename(s) began with a dot (.), a ``ValueError`` is
+returned.
+
+..
+
+.. bpo: 40296
+.. date: 2021-12-25-14-13-14
+.. nonce: p0YVGB
+.. section: Library
+
+Fix supporting generic aliases in :mod:`pydoc`.
+
+..
+
+.. bpo: 14156
+.. date: 2019-05-07-14-25-45
+.. nonce: 0FaHXE
+.. section: Library
+
+argparse.FileType now supports an argument of '-' in binary mode, returning
+the .buffer attribute of sys.stdin/sys.stdout as appropriate. Modes
+including 'x' and 'a' are treated equivalently to 'w' when argument is '-'.
+Patch contributed by Josh Rosenberg
+++ /dev/null
-Check for the existence of the "sys/auxv.h" header in :mod:`faulthandler` to
-avoid compilation problems in systems where this header doesn't exist. Patch
-by Pablo Galindo
+++ /dev/null
-argparse.FileType now supports an argument of '-' in binary mode, returning
-the .buffer attribute of sys.stdin/sys.stdout as appropriate. Modes
-including 'x' and 'a' are treated equivalently to 'w' when argument is '-'.
-Patch contributed by Josh Rosenberg
+++ /dev/null
-Fix supporting generic aliases in :mod:`pydoc`.
+++ /dev/null
-Fix a unittest issue where if the command was invoked as ``python -m
-unittest`` and the filename(s) began with a dot (.), a ``ValueError`` is
-returned.
+++ /dev/null
-The :mod:`asynchat`, :mod:`asyncore` and :mod:`smtpd` modules have been
-deprecated since at least Python 3.6. Their documentation has now been
-updated to note they will removed in Python 3.12 (:pep:`594`).
+++ /dev/null
-Fix :class:`asyncio.Semaphore` re-aquiring FIFO order.
+++ /dev/null
-Fix bug where doctests using globals would fail when run multiple times.
+++ /dev/null
-Deprecate the various modules listed by :pep:`594`:
-
-aifc, asynchat, asyncore, audioop, cgi, cgitb, chunk, crypt,
-imghdr, msilib, nntplib, nis, ossaudiodev, pipes, smtpd,
-sndhdr, spwd, sunau, telnetlib, uu, xdrlib
+++ /dev/null
-A warning about inline flags not at the start of the regular expression now
-contains the position of the flag.
+++ /dev/null
-Fix :func:`binascii.crc32` when it is compiled to use zlib'c crc32 to
-work properly on inputs 4+GiB in length instead of returning the wrong
-result. The workaround prior to this was to always feed the function
-data in increments smaller than 4GiB or to just call the zlib module
-function.
+++ /dev/null
-Fix thread safety of :meth:`zipfile._SharedFile.tell` to avoid a "zipfile.BadZipFile: Bad CRC-32 for file" exception when reading a :class:`ZipFile` from multiple threads.
+++ /dev/null
-Protect the :func:`re.finditer` iterator from re-entering.
+++ /dev/null
-:const:`hashlib.algorithms_available` now lists only algorithms that are
-provided by activated crypto providers on OpenSSL 3.0. Legacy algorithms are
-not listed unless the legacy provider has been loaded into the default
-OSSL context.
-This is Python version 3.9.11
+This is Python version 3.9.12
=============================
.. image:: https://travis-ci.org/python/cpython.svg?branch=3.9