From b28265d7e6a41a4a0e227b37f4fbbc4d03a0a707 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=81ukasz=20Langa?= <lukasz@langa.pl>
Date: Wed, 23 Mar 2022 22:12:08 +0100
Subject: Python 3.9.12

---
 Include/patchlevel.h                               |   4 +-
 Lib/pydoc_data/topics.py                           |  78 ++++++------
 Misc/NEWS.d/3.9.12.rst                             | 137 +++++++++++++++++++++
 .../2022-03-17-14-22-23.bpo-46968.4gz4NA.rst       |   3 -
 .../2019-05-07-14-25-45.bpo-14156.0FaHXE.rst       |   4 -
 .../2021-12-25-14-13-14.bpo-40296.p0YVGB.rst       |   1 -
 .../2022-01-18-01-29-38.bpo-46421.9LdmNr.rst       |   3 -
 .../2022-03-15-09-29-52.bpo-47022.uaEDcI.rst       |   3 -
 .../2022-03-15-18-32-12.bpo-45997.4n2aVU.rst       |   1 -
 .../2022-03-16-18-25-19.bpo-2604.jeopdL.rst        |   1 -
 .../2022-03-18-13-30-40.bpo-47061.etLHK5.rst       |   5 -
 .../2022-03-19-13-38-29.bpo-39394.7j6WL6.rst       |   2 -
 .../2022-03-19-15-54-41.bpo-38256.FoMbjE.rst       |   5 -
 .../2022-03-19-19-56-04.bpo-42369.Ok828t.rst       |   1 -
 .../2022-03-20-22-13-24.bpo-23691.Nc2TrW.rst       |   1 -
 .../2022-03-23-15-31-02.bpo-47101.rVSld-.rst       |   4 -
 README.rst                                         |   2 +-
 17 files changed, 181 insertions(+), 74 deletions(-)
 create mode 100644 Misc/NEWS.d/3.9.12.rst
 delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-03-17-14-22-23.bpo-46968.4gz4NA.rst
 delete mode 100644 Misc/NEWS.d/next/Library/2019-05-07-14-25-45.bpo-14156.0FaHXE.rst
 delete mode 100644 Misc/NEWS.d/next/Library/2021-12-25-14-13-14.bpo-40296.p0YVGB.rst
 delete mode 100644 Misc/NEWS.d/next/Library/2022-01-18-01-29-38.bpo-46421.9LdmNr.rst
 delete mode 100644 Misc/NEWS.d/next/Library/2022-03-15-09-29-52.bpo-47022.uaEDcI.rst
 delete mode 100644 Misc/NEWS.d/next/Library/2022-03-15-18-32-12.bpo-45997.4n2aVU.rst
 delete mode 100644 Misc/NEWS.d/next/Library/2022-03-16-18-25-19.bpo-2604.jeopdL.rst
 delete mode 100644 Misc/NEWS.d/next/Library/2022-03-18-13-30-40.bpo-47061.etLHK5.rst
 delete mode 100644 Misc/NEWS.d/next/Library/2022-03-19-13-38-29.bpo-39394.7j6WL6.rst
 delete mode 100644 Misc/NEWS.d/next/Library/2022-03-19-15-54-41.bpo-38256.FoMbjE.rst
 delete mode 100644 Misc/NEWS.d/next/Library/2022-03-19-19-56-04.bpo-42369.Ok828t.rst
 delete mode 100644 Misc/NEWS.d/next/Library/2022-03-20-22-13-24.bpo-23691.Nc2TrW.rst
 delete mode 100644 Misc/NEWS.d/next/Library/2022-03-23-15-31-02.bpo-47101.rVSld-.rst

diff --git a/Include/patchlevel.h b/Include/patchlevel.h
index 1079299..a4418b0 100644
--- a/Include/patchlevel.h
+++ b/Include/patchlevel.h
@@ -18,12 +18,12 @@
 /*--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.
diff --git a/Lib/pydoc_data/topics.py b/Lib/pydoc_data/topics.py
index 0e63c31..2546eb9 100644
--- a/Lib/pydoc_data/topics.py
+++ b/Lib/pydoc_data/topics.py
@@ -1,5 +1,5 @@
 # -*- 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'
@@ -2416,11 +2416,11 @@ topics = {'assert': 'The "assert" statement\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'
@@ -3567,15 +3567,17 @@ topics = {'assert': 'The "assert" statement\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'
@@ -4559,11 +4561,11 @@ topics = {'assert': 'The "assert" statement\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'
@@ -4886,11 +4888,11 @@ topics = {'assert': 'The "assert" statement\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'
@@ -8440,15 +8442,17 @@ topics = {'assert': 'The "assert" statement\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'
@@ -11531,10 +11535,10 @@ topics = {'assert': 'The "assert" statement\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'
diff --git a/Misc/NEWS.d/3.9.12.rst b/Misc/NEWS.d/3.9.12.rst
new file mode 100644
index 0000000..7a38f30
--- /dev/null
+++ b/Misc/NEWS.d/3.9.12.rst
@@ -0,0 +1,137 @@
+.. 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
diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-03-17-14-22-23.bpo-46968.4gz4NA.rst b/Misc/NEWS.d/next/Core and Builtins/2022-03-17-14-22-23.bpo-46968.4gz4NA.rst
deleted file mode 100644
index bef1d05..0000000
--- a/Misc/NEWS.d/next/Core and Builtins/2022-03-17-14-22-23.bpo-46968.4gz4NA.rst	
+++ /dev/null
@@ -1,3 +0,0 @@
-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
diff --git a/Misc/NEWS.d/next/Library/2019-05-07-14-25-45.bpo-14156.0FaHXE.rst b/Misc/NEWS.d/next/Library/2019-05-07-14-25-45.bpo-14156.0FaHXE.rst
deleted file mode 100644
index 7bfc917..0000000
--- a/Misc/NEWS.d/next/Library/2019-05-07-14-25-45.bpo-14156.0FaHXE.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-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
diff --git a/Misc/NEWS.d/next/Library/2021-12-25-14-13-14.bpo-40296.p0YVGB.rst b/Misc/NEWS.d/next/Library/2021-12-25-14-13-14.bpo-40296.p0YVGB.rst
deleted file mode 100644
index ea469c9..0000000
--- a/Misc/NEWS.d/next/Library/2021-12-25-14-13-14.bpo-40296.p0YVGB.rst
+++ /dev/null
@@ -1 +0,0 @@
-Fix supporting generic aliases in :mod:`pydoc`.
diff --git a/Misc/NEWS.d/next/Library/2022-01-18-01-29-38.bpo-46421.9LdmNr.rst b/Misc/NEWS.d/next/Library/2022-01-18-01-29-38.bpo-46421.9LdmNr.rst
deleted file mode 100644
index 03ff27f..0000000
--- a/Misc/NEWS.d/next/Library/2022-01-18-01-29-38.bpo-46421.9LdmNr.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-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.
diff --git a/Misc/NEWS.d/next/Library/2022-03-15-09-29-52.bpo-47022.uaEDcI.rst b/Misc/NEWS.d/next/Library/2022-03-15-09-29-52.bpo-47022.uaEDcI.rst
deleted file mode 100644
index c35da6f..0000000
--- a/Misc/NEWS.d/next/Library/2022-03-15-09-29-52.bpo-47022.uaEDcI.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-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`).
diff --git a/Misc/NEWS.d/next/Library/2022-03-15-18-32-12.bpo-45997.4n2aVU.rst b/Misc/NEWS.d/next/Library/2022-03-15-18-32-12.bpo-45997.4n2aVU.rst
deleted file mode 100644
index 40d8504..0000000
--- a/Misc/NEWS.d/next/Library/2022-03-15-18-32-12.bpo-45997.4n2aVU.rst
+++ /dev/null
@@ -1 +0,0 @@
-Fix :class:`asyncio.Semaphore` re-aquiring FIFO order.
diff --git a/Misc/NEWS.d/next/Library/2022-03-16-18-25-19.bpo-2604.jeopdL.rst b/Misc/NEWS.d/next/Library/2022-03-16-18-25-19.bpo-2604.jeopdL.rst
deleted file mode 100644
index c0fd000..0000000
--- a/Misc/NEWS.d/next/Library/2022-03-16-18-25-19.bpo-2604.jeopdL.rst
+++ /dev/null
@@ -1 +0,0 @@
-Fix bug where doctests using globals would fail when run multiple times.
diff --git a/Misc/NEWS.d/next/Library/2022-03-18-13-30-40.bpo-47061.etLHK5.rst b/Misc/NEWS.d/next/Library/2022-03-18-13-30-40.bpo-47061.etLHK5.rst
deleted file mode 100644
index 5445089..0000000
--- a/Misc/NEWS.d/next/Library/2022-03-18-13-30-40.bpo-47061.etLHK5.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-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
diff --git a/Misc/NEWS.d/next/Library/2022-03-19-13-38-29.bpo-39394.7j6WL6.rst b/Misc/NEWS.d/next/Library/2022-03-19-13-38-29.bpo-39394.7j6WL6.rst
deleted file mode 100644
index 9285179..0000000
--- a/Misc/NEWS.d/next/Library/2022-03-19-13-38-29.bpo-39394.7j6WL6.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-A warning about inline flags not at the start of the regular expression now
-contains the position of the flag.
diff --git a/Misc/NEWS.d/next/Library/2022-03-19-15-54-41.bpo-38256.FoMbjE.rst b/Misc/NEWS.d/next/Library/2022-03-19-15-54-41.bpo-38256.FoMbjE.rst
deleted file mode 100644
index d9b5751..0000000
--- a/Misc/NEWS.d/next/Library/2022-03-19-15-54-41.bpo-38256.FoMbjE.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-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.
diff --git a/Misc/NEWS.d/next/Library/2022-03-19-19-56-04.bpo-42369.Ok828t.rst b/Misc/NEWS.d/next/Library/2022-03-19-19-56-04.bpo-42369.Ok828t.rst
deleted file mode 100644
index 86dc3a0..0000000
--- a/Misc/NEWS.d/next/Library/2022-03-19-19-56-04.bpo-42369.Ok828t.rst
+++ /dev/null
@@ -1 +0,0 @@
-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.
diff --git a/Misc/NEWS.d/next/Library/2022-03-20-22-13-24.bpo-23691.Nc2TrW.rst b/Misc/NEWS.d/next/Library/2022-03-20-22-13-24.bpo-23691.Nc2TrW.rst
deleted file mode 100644
index 053a2b2..0000000
--- a/Misc/NEWS.d/next/Library/2022-03-20-22-13-24.bpo-23691.Nc2TrW.rst
+++ /dev/null
@@ -1 +0,0 @@
-Protect the :func:`re.finditer` iterator from re-entering.
diff --git a/Misc/NEWS.d/next/Library/2022-03-23-15-31-02.bpo-47101.rVSld-.rst b/Misc/NEWS.d/next/Library/2022-03-23-15-31-02.bpo-47101.rVSld-.rst
deleted file mode 100644
index 1a65024..0000000
--- a/Misc/NEWS.d/next/Library/2022-03-23-15-31-02.bpo-47101.rVSld-.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-: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.
diff --git a/README.rst b/README.rst
index 8856328..d3b2521 100644
--- a/README.rst
+++ b/README.rst
@@ -1,4 +1,4 @@
-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
-- 
cgit v0.12

