Python 3.9.1
diff --git a/Include/patchlevel.h b/Include/patchlevel.h
index 09db42f..0b5d280 100644
--- a/Include/patchlevel.h
+++ b/Include/patchlevel.h
@@ -19,11 +19,11 @@
 #define PY_MAJOR_VERSION        3
 #define PY_MINOR_VERSION        9
 #define PY_MICRO_VERSION        1
-#define PY_RELEASE_LEVEL        PY_RELEASE_LEVEL_GAMMA
-#define PY_RELEASE_SERIAL       1
+#define PY_RELEASE_LEVEL        PY_RELEASE_LEVEL_FINAL
+#define PY_RELEASE_SERIAL       0
 
 /* Version as a string */
-#define PY_VERSION              "3.9.1rc1+"
+#define PY_VERSION              "3.9.1"
 /*--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 6411c8c..d8dd8c5 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 Nov 24 17:42:56 2020
+# Autogenerated by Sphinx on Mon Dec  7 15:00:07 2020
 topics = {'assert': 'The "assert" statement\n'
            '**********************\n'
            '\n'
@@ -5307,24 +5307,23 @@
                   'for the\n'
                   'conversion.  The alternate form is defined differently for '
                   'different\n'
-                  'types.  This option is only valid for integer, float, '
-                  'complex and\n'
-                  'Decimal types. For integers, when binary, octal, or '
-                  'hexadecimal output\n'
-                  'is used, this option adds the prefix respective "\'0b\'", '
-                  '"\'0o\'", or\n'
-                  '"\'0x\'" to the output value. For floats, complex and '
-                  'Decimal the\n'
-                  'alternate form causes the result of the conversion to '
-                  'always contain a\n'
-                  'decimal-point character, even if no digits follow it. '
-                  'Normally, a\n'
-                  'decimal-point character appears in the result of these '
-                  'conversions\n'
-                  'only if a digit follows it. In addition, for "\'g\'" and '
-                  '"\'G\'"\n'
-                  'conversions, trailing zeros are not removed from the '
-                  'result.\n'
+                  'types.  This option is only valid for integer, float and '
+                  'complex\n'
+                  'types. For integers, when binary, octal, or hexadecimal '
+                  'output is\n'
+                  'used, this option adds the prefix respective "\'0b\'", '
+                  '"\'0o\'", or "\'0x\'"\n'
+                  'to the output value. For float and complex the alternate '
+                  'form causes\n'
+                  'the result of the conversion to always contain a '
+                  'decimal-point\n'
+                  'character, even if no digits follow it. Normally, a '
+                  'decimal-point\n'
+                  'character appears in the result of these conversions only '
+                  'if a digit\n'
+                  'follows it. In addition, for "\'g\'" and "\'G\'" '
+                  'conversions, trailing\n'
+                  'zeros are not removed from the result.\n'
                   '\n'
                   'The "\',\'" option signals the use of a comma for a '
                   'thousands separator.\n'
@@ -5462,9 +5461,8 @@
                   'the integer\n'
                   'to a floating point number before formatting.\n'
                   '\n'
-                  'The available presentation types for floating point and '
-                  'decimal values\n'
-                  'are:\n'
+                  'The available presentation types for "float" and "Decimal" '
+                  'values are:\n'
                   '\n'
                   '   '
                   '+-----------+------------------------------------------------------------+\n'
@@ -5473,24 +5471,50 @@
                   '|\n'
                   '   '
                   '|===========|============================================================|\n'
-                  '   | "\'e\'"     | Exponent notation. Prints the number in '
-                  'scientific         |\n'
-                  '   |           | notation using the letter ‘e’ to indicate '
-                  'the exponent.    |\n'
-                  '   |           | The default precision is '
-                  '"6".                              |\n'
+                  '   | "\'e\'"     | Scientific notation. For a given '
+                  'precision "p", formats    |\n'
+                  '   |           | the number in scientific notation with the '
+                  'letter ‘e’      |\n'
+                  '   |           | separating the coefficient from the '
+                  'exponent. The          |\n'
+                  '   |           | coefficient has one digit before and "p" '
+                  'digits after the  |\n'
+                  '   |           | decimal point, for a total of "p + 1" '
+                  'significant digits.  |\n'
+                  '   |           | With no precision given, uses a precision '
+                  'of "6" digits    |\n'
+                  '   |           | after the decimal point for "float", and '
+                  'shows all         |\n'
+                  '   |           | coefficient digits for "Decimal". If no '
+                  'digits follow the  |\n'
+                  '   |           | decimal point, the decimal point is also '
+                  'removed unless    |\n'
+                  '   |           | the "#" option is '
+                  'used.                                    |\n'
                   '   '
                   '+-----------+------------------------------------------------------------+\n'
-                  '   | "\'E\'"     | Exponent notation. Same as "\'e\'" '
-                  'except it uses an upper   |\n'
+                  '   | "\'E\'"     | Scientific notation. Same as "\'e\'" '
+                  'except it uses an upper |\n'
                   '   |           | case ‘E’ as the separator '
                   'character.                       |\n'
                   '   '
                   '+-----------+------------------------------------------------------------+\n'
-                  '   | "\'f\'"     | Fixed-point notation. Displays the '
-                  'number as a fixed-point |\n'
-                  '   |           | number. The default precision is '
-                  '"6".                      |\n'
+                  '   | "\'f\'"     | Fixed-point notation. For a given '
+                  'precision "p", formats   |\n'
+                  '   |           | the number as a decimal number with '
+                  'exactly "p" digits     |\n'
+                  '   |           | following the decimal point. With no '
+                  'precision given, uses |\n'
+                  '   |           | a precision of "6" digits after the '
+                  'decimal point for      |\n'
+                  '   |           | "float", and uses a precision large enough '
+                  'to show all     |\n'
+                  '   |           | coefficient digits for "Decimal". If no '
+                  'digits follow the  |\n'
+                  '   |           | decimal point, the decimal point is also '
+                  'removed unless    |\n'
+                  '   |           | the "#" option is '
+                  'used.                                    |\n'
                   '   '
                   '+-----------+------------------------------------------------------------+\n'
                   '   | "\'F\'"     | Fixed-point notation. Same as "\'f\'", '
@@ -5536,9 +5560,14 @@
                   '   |           | regardless of the precision.  A precision '
                   'of "0" is        |\n'
                   '   |           | treated as equivalent to a precision of '
-                  '"1". The default   |\n'
-                  '   |           | precision is '
-                  '"6".                                          |\n'
+                  '"1". With no       |\n'
+                  '   |           | precision given, uses a precision of "6" '
+                  'significant       |\n'
+                  '   |           | digits for "float", and shows all '
+                  'coefficient digits for   |\n'
+                  '   |           | '
+                  '"Decimal".                                                 '
+                  '|\n'
                   '   '
                   '+-----------+------------------------------------------------------------+\n'
                   '   | "\'G\'"     | General format. Same as "\'g\'" except '
diff --git a/Misc/NEWS.d/3.9.1.rst b/Misc/NEWS.d/3.9.1.rst
new file mode 100644
index 0000000..3942753
--- /dev/null
+++ b/Misc/NEWS.d/3.9.1.rst
@@ -0,0 +1,150 @@
+.. bpo: 42576
+.. date: 2020-12-05-22-34-47
+.. nonce: lEeEl7
+.. release date: 2020-12-07
+.. section: Core and Builtins
+
+``types.GenericAlias`` will now raise a ``TypeError`` when attempting to
+initialize with a keyword argument.  Previously, this would cause the
+interpreter to crash if the interpreter was compiled with debug symbols.
+This does not affect interpreters compiled for release.  Patch by Ken Jin.
+
+..
+
+.. bpo: 5054
+.. date: 2020-12-04-03-51-12
+.. nonce: 53StYZ
+.. section: Library
+
+CGIHTTPRequestHandler.run_cgi() HTTP_ACCEPT improperly parsed. Replace the
+special purpose getallmatchingheaders with generic get_all method and add
+relevant tests.
+
+Original Patch by Martin Panter. Modified by Senthil Kumaran.
+
+..
+
+.. bpo: 17735
+.. date: 2020-12-03-22-22-24
+.. nonce: Qsaaue
+.. section: Library
+
+:func:`inspect.findsource` now raises :exc:`OSError` instead of
+:exc:`IndexError` when :attr:`co_lineno` of a code object is greater than
+the file length. This can happen, for example, when a file is edited after
+it was imported.  PR by Irit Katriel.
+
+..
+
+.. bpo: 42116
+.. date: 2020-12-03-15-42-32
+.. nonce: yIwroP
+.. section: Library
+
+Fix handling of trailing comments by :func:`inspect.getsource`.
+
+..
+
+.. bpo: 42487
+.. date: 2020-11-28-04-31-20
+.. nonce: iqtC4L
+.. section: Library
+
+ChainMap.__iter__ no longer calls __getitem__ on underlying maps
+
+..
+
+.. bpo: 42482
+.. date: 2020-11-27-16-46-58
+.. nonce: EJC3sd
+.. section: Library
+
+:class:`~traceback.TracebackException` no longer holds a reference to the
+exception's traceback object. Consequently, instances of TracebackException
+for equivalent but non-equal exceptions now compare as equal.
+
+..
+
+.. bpo: 42406
+.. date: 2020-11-19-10-44-41
+.. nonce: r9rNCj
+.. section: Library
+
+We fixed an issue in `pickle.whichmodule` in which importing
+`multiprocessing` could change the how pickle identifies which module an
+object belongs to, potentially breaking the unpickling of those objects.
+
+..
+
+.. bpo: 34215
+.. date: 2020-08-19-20-17-51
+.. nonce: _Cv8c-
+.. section: Library
+
+Clarify the error message for :exc:`asyncio.IncompleteReadError` when
+``expected`` is ``None``.
+
+..
+
+.. bpo: 12800
+.. date: 2020-07-09-11-32-28
+.. nonce: fNgWwx
+.. section: Library
+
+Extracting a symlink from a tarball should succeed and overwrite the symlink
+if it already exists. The fix is to remove the existing file or symlink
+before extraction. Based on patch by Chris AtLee, Jeffrey Kintscher, and
+Senthil Kumaran.
+
+..
+
+.. bpo: 41473
+.. date: 2020-12-04-11-47-09
+.. nonce: W_updK
+.. section: Tests
+
+Reenable test_gdb on gdb 9.2 and newer:
+https://bugzilla.redhat.com/show_bug.cgi?id=1866884 bug is fixed in gdb
+10.1.
+
+..
+
+.. bpo: 42553
+.. date: 2020-12-03-13-32-44
+.. nonce: 2TRE2N
+.. section: Tests
+
+Fix ``test_asyncio.test_call_later()`` race condition: don't measure asyncio
+performance in the ``call_later()`` unit test. The test failed randomly on
+the CI.
+
+..
+
+.. bpo: 41116
+.. date: 2020-12-04-23-09-11
+.. nonce: mSbXyV
+.. section: macOS
+
+If no explicit macOS SDK was specified, setup.py should check for Tcl and TK
+frameworks in /Library/Frameworks; the previous commit inadvertently broke
+that test.
+
+..
+
+.. bpo: 42504
+.. date: 2020-12-02-15-48-40
+.. nonce: RQmMOR
+.. section: macOS
+
+Fix build on macOS Big Sur when MACOSX_DEPLOYMENT_TARGET=11
+
+..
+
+.. bpo: 42508
+.. date: 2020-11-30-19-46-05
+.. nonce: fE7w4M
+.. section: IDLE
+
+Keep IDLE running on macOS.  Remove obsolete workaround that prevented
+running files with shortcuts when using new universal2 installers built on
+macOS 11.
diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-12-05-22-34-47.bpo-42576.lEeEl7.rst b/Misc/NEWS.d/next/Core and Builtins/2020-12-05-22-34-47.bpo-42576.lEeEl7.rst
deleted file mode 100644
index 154c9d8..0000000
--- a/Misc/NEWS.d/next/Core and Builtins/2020-12-05-22-34-47.bpo-42576.lEeEl7.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-``types.GenericAlias`` will now raise a ``TypeError`` when attempting to
-initialize with a keyword argument.  Previously, this would cause the
-interpreter to crash if the interpreter was compiled with debug symbols.
-This does not affect interpreters compiled for release.  Patch by Ken Jin.
diff --git a/Misc/NEWS.d/next/IDLE/2020-11-30-19-46-05.bpo-42508.fE7w4M.rst b/Misc/NEWS.d/next/IDLE/2020-11-30-19-46-05.bpo-42508.fE7w4M.rst
deleted file mode 100644
index b449351..0000000
--- a/Misc/NEWS.d/next/IDLE/2020-11-30-19-46-05.bpo-42508.fE7w4M.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-Keep IDLE running on macOS.  Remove obsolete workaround that prevented
-running files with shortcuts when using new universal2 installers built
-on macOS 11.
diff --git a/Misc/NEWS.d/next/Library/2020-07-09-11-32-28.bpo-12800.fNgWwx.rst b/Misc/NEWS.d/next/Library/2020-07-09-11-32-28.bpo-12800.fNgWwx.rst
deleted file mode 100644
index fdd7c5e..0000000
--- a/Misc/NEWS.d/next/Library/2020-07-09-11-32-28.bpo-12800.fNgWwx.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-Extracting a symlink from a tarball should succeed and overwrite the symlink
-if it already exists. The fix is to remove the existing file or symlink
-before extraction. Based on patch by Chris AtLee, Jeffrey Kintscher, and
-Senthil Kumaran.
diff --git a/Misc/NEWS.d/next/Library/2020-08-19-20-17-51.bpo-34215._Cv8c-.rst b/Misc/NEWS.d/next/Library/2020-08-19-20-17-51.bpo-34215._Cv8c-.rst
deleted file mode 100644
index 4d91678..0000000
--- a/Misc/NEWS.d/next/Library/2020-08-19-20-17-51.bpo-34215._Cv8c-.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Clarify the error message for :exc:`asyncio.IncompleteReadError` when
-``expected`` is ``None``.
diff --git a/Misc/NEWS.d/next/Library/2020-11-19-10-44-41.bpo-42406.r9rNCj.rst b/Misc/NEWS.d/next/Library/2020-11-19-10-44-41.bpo-42406.r9rNCj.rst
deleted file mode 100644
index c157df1..0000000
--- a/Misc/NEWS.d/next/Library/2020-11-19-10-44-41.bpo-42406.r9rNCj.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-We fixed an issue in `pickle.whichmodule` in which importing
-`multiprocessing` could change the how pickle identifies which module an
-object belongs to, potentially breaking the unpickling of those objects.
diff --git a/Misc/NEWS.d/next/Library/2020-11-27-16-46-58.bpo-42482.EJC3sd.rst b/Misc/NEWS.d/next/Library/2020-11-27-16-46-58.bpo-42482.EJC3sd.rst
deleted file mode 100644
index 79afa65..0000000
--- a/Misc/NEWS.d/next/Library/2020-11-27-16-46-58.bpo-42482.EJC3sd.rst
+++ /dev/null
@@ -1 +0,0 @@
-:class:`~traceback.TracebackException` no longer holds a reference to the exception's traceback object. Consequently, instances of TracebackException for equivalent but non-equal exceptions now compare as equal.
\ No newline at end of file
diff --git a/Misc/NEWS.d/next/Library/2020-11-28-04-31-20.bpo-42487.iqtC4L.rst b/Misc/NEWS.d/next/Library/2020-11-28-04-31-20.bpo-42487.iqtC4L.rst
deleted file mode 100644
index 8c67d74..0000000
--- a/Misc/NEWS.d/next/Library/2020-11-28-04-31-20.bpo-42487.iqtC4L.rst
+++ /dev/null
@@ -1 +0,0 @@
-ChainMap.__iter__ no longer calls __getitem__ on underlying maps
diff --git a/Misc/NEWS.d/next/Library/2020-12-03-15-42-32.bpo-42116.yIwroP.rst b/Misc/NEWS.d/next/Library/2020-12-03-15-42-32.bpo-42116.yIwroP.rst
deleted file mode 100644
index febda89..0000000
--- a/Misc/NEWS.d/next/Library/2020-12-03-15-42-32.bpo-42116.yIwroP.rst
+++ /dev/null
@@ -1 +0,0 @@
-Fix handling of trailing comments by :func:`inspect.getsource`.
\ No newline at end of file
diff --git a/Misc/NEWS.d/next/Library/2020-12-03-22-22-24.bpo-17735.Qsaaue.rst b/Misc/NEWS.d/next/Library/2020-12-03-22-22-24.bpo-17735.Qsaaue.rst
deleted file mode 100644
index 655781e..0000000
--- a/Misc/NEWS.d/next/Library/2020-12-03-22-22-24.bpo-17735.Qsaaue.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-:func:`inspect.findsource` now raises :exc:`OSError` instead of
-:exc:`IndexError` when :attr:`co_lineno` of a code object is greater than the
-file length. This can happen, for example, when a file is edited after it was
-imported.  PR by Irit Katriel.
diff --git a/Misc/NEWS.d/next/Library/2020-12-04-03-51-12.bpo-5054.53StYZ.rst b/Misc/NEWS.d/next/Library/2020-12-04-03-51-12.bpo-5054.53StYZ.rst
deleted file mode 100644
index ad8163c..0000000
--- a/Misc/NEWS.d/next/Library/2020-12-04-03-51-12.bpo-5054.53StYZ.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-CGIHTTPRequestHandler.run_cgi() HTTP_ACCEPT improperly parsed. Replace the
-special purpose getallmatchingheaders with generic get_all method and add
-relevant tests.
-
-Original Patch by Martin Panter. Modified by Senthil Kumaran.
diff --git a/Misc/NEWS.d/next/Tests/2020-12-03-13-32-44.bpo-42553.2TRE2N.rst b/Misc/NEWS.d/next/Tests/2020-12-03-13-32-44.bpo-42553.2TRE2N.rst
deleted file mode 100644
index 8722142..0000000
--- a/Misc/NEWS.d/next/Tests/2020-12-03-13-32-44.bpo-42553.2TRE2N.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-Fix ``test_asyncio.test_call_later()`` race condition: don't measure asyncio
-performance in the ``call_later()`` unit test. The test failed randomly on
-the CI.
diff --git a/Misc/NEWS.d/next/Tests/2020-12-04-11-47-09.bpo-41473.W_updK.rst b/Misc/NEWS.d/next/Tests/2020-12-04-11-47-09.bpo-41473.W_updK.rst
deleted file mode 100644
index 9e0a375..0000000
--- a/Misc/NEWS.d/next/Tests/2020-12-04-11-47-09.bpo-41473.W_updK.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-Reenable test_gdb on gdb 9.2 and newer:
-https://bugzilla.redhat.com/show_bug.cgi?id=1866884 bug is fixed in gdb
-10.1.
diff --git a/Misc/NEWS.d/next/macOS/2020-12-02-15-48-40.bpo-42504.RQmMOR.rst b/Misc/NEWS.d/next/macOS/2020-12-02-15-48-40.bpo-42504.RQmMOR.rst
deleted file mode 100644
index c83bc2b..0000000
--- a/Misc/NEWS.d/next/macOS/2020-12-02-15-48-40.bpo-42504.RQmMOR.rst
+++ /dev/null
@@ -1 +0,0 @@
-Fix build on macOS Big Sur when MACOSX_DEPLOYMENT_TARGET=11
\ No newline at end of file
diff --git a/Misc/NEWS.d/next/macOS/2020-12-04-23-09-11.bpo-41116.mSbXyV.rst b/Misc/NEWS.d/next/macOS/2020-12-04-23-09-11.bpo-41116.mSbXyV.rst
deleted file mode 100644
index 2c8e5ea..0000000
--- a/Misc/NEWS.d/next/macOS/2020-12-04-23-09-11.bpo-41116.mSbXyV.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-If no explicit macOS SDK was specified, setup.py should check for Tcl and TK
-frameworks in /Library/Frameworks; the previous commit inadvertently broke
-that test.
diff --git a/README.rst b/README.rst
index 18dd74c..a9ab260 100644
--- a/README.rst
+++ b/README.rst
@@ -1,5 +1,5 @@
-This is Python version 3.9.1rc1
-===============================
+This is Python version 3.9.1
+============================
 
 .. image:: https://travis-ci.org/python/cpython.svg?branch=3.9
    :alt: CPython build status on Travis CI