Python 3.9.0a6
diff --git a/Lib/pydoc_data/topics.py b/Lib/pydoc_data/topics.py
index 11b48fd..8aca5c0 100644
--- a/Lib/pydoc_data/topics.py
+++ b/Lib/pydoc_data/topics.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Autogenerated by Sphinx on Mon Mar 23 17:18:04 2020
+# Autogenerated by Sphinx on Mon Apr 27 22:35:16 2020
 topics = {'assert': 'The "assert" statement\n'
            '**********************\n'
            '\n'
@@ -1877,9 +1877,9 @@
                 '  value is false. A counter-intuitive implication is that '
                 'not-a-number\n'
                 '  values are not equal to themselves.  For example, if "x =\n'
-                '  float(\'NaN\')", "3 < x", "x < 3", "x == x", "x != x" are '
-                'all false.\n'
-                '  This behavior is compliant with IEEE 754.\n'
+                '  float(\'NaN\')", "3 < x", "x < 3" and "x == x" are all '
+                'false, while "x\n'
+                '  != x" is true.  This behavior is compliant with IEEE 754.\n'
                 '\n'
                 '* "None" and "NotImplemented" are singletons.  **PEP 8** '
                 'advises\n'
@@ -3150,7 +3150,7 @@
                 '\n'
                 'When a description of an arithmetic operator below uses the '
                 'phrase\n'
-                '“the numeric arguments are converted to a common type,” this '
+                '“the numeric arguments are converted to a common type”, this '
                 'means\n'
                 'that the operator implementation for built-in types works as '
                 'follows:\n'
@@ -3414,7 +3414,7 @@
                   '\n'
                   '   Changed in version 3.7: "object.__format__(x, \'\')" is '
                   'now\n'
-                  '   equivalent to "str(x)" rather than "format(str(self), '
+                  '   equivalent to "str(x)" rather than "format(str(x), '
                   '\'\')".\n'
                   '\n'
                   'object.__lt__(self, other)\n'
@@ -5962,19 +5962,18 @@
                'convention.\n'
                '\n'
                '"__*__"\n'
-               '   System-defined names. These names are defined by the '
-               'interpreter\n'
-               '   and its implementation (including the standard library).  '
-               'Current\n'
-               '   system names are discussed in the Special method names '
-               'section and\n'
-               '   elsewhere.  More will likely be defined in future versions '
-               'of\n'
-               '   Python.  *Any* use of "__*__" names, in any context, that '
-               'does not\n'
-               '   follow explicitly documented use, is subject to breakage '
-               'without\n'
-               '   warning.\n'
+               '   System-defined names, informally known as “dunder” names. '
+               'These\n'
+               '   names are defined by the interpreter and its '
+               'implementation\n'
+               '   (including the standard library). Current system names are\n'
+               '   discussed in the Special method names section and '
+               'elsewhere. More\n'
+               '   will likely be defined in future versions of Python.  *Any* '
+               'use of\n'
+               '   "__*__" names, in any context, that does not follow '
+               'explicitly\n'
+               '   documented use, is subject to breakage without warning.\n'
                '\n'
                '"__*"\n'
                '   Class-private names.  Names in this category, when used '
@@ -6110,19 +6109,19 @@
                 'convention.\n'
                 '\n'
                 '"__*__"\n'
-                '   System-defined names. These names are defined by the '
-                'interpreter\n'
-                '   and its implementation (including the standard library).  '
-                'Current\n'
-                '   system names are discussed in the Special method names '
-                'section and\n'
-                '   elsewhere.  More will likely be defined in future versions '
-                'of\n'
-                '   Python.  *Any* use of "__*__" names, in any context, that '
-                'does not\n'
-                '   follow explicitly documented use, is subject to breakage '
-                'without\n'
-                '   warning.\n'
+                '   System-defined names, informally known as “dunder” names. '
+                'These\n'
+                '   names are defined by the interpreter and its '
+                'implementation\n'
+                '   (including the standard library). Current system names '
+                'are\n'
+                '   discussed in the Special method names section and '
+                'elsewhere. More\n'
+                '   will likely be defined in future versions of Python.  '
+                '*Any* use of\n'
+                '   "__*__" names, in any context, that does not follow '
+                'explicitly\n'
+                '   documented use, is subject to breakage without warning.\n'
                 '\n'
                 '"__*"\n'
                 '   Class-private names.  Names in this category, when used '
@@ -7007,7 +7006,7 @@
             'program is represented by objects or by relations between '
             'objects. (In\n'
             'a sense, and in conformance to Von Neumann’s model of a “stored\n'
-            'program computer,” code is also represented by objects.)\n'
+            'program computer”, code is also represented by objects.)\n'
             '\n'
             'Every object has an identity, a type and a value.  An object’s\n'
             '*identity* never changes once it has been created; you may think '
@@ -8168,7 +8167,7 @@
                  '\n'
                  '   Changed in version 3.7: "object.__format__(x, \'\')" is '
                  'now\n'
-                 '   equivalent to "str(x)" rather than "format(str(self), '
+                 '   equivalent to "str(x)" rather than "format(str(x), '
                  '\'\')".\n'
                  '\n'
                  'object.__lt__(self, other)\n'
@@ -9915,6 +9914,35 @@
                    '*start* and\n'
                    '   *end* are interpreted as in slice notation.\n'
                    '\n'
+                   'str.removeprefix(prefix, /)\n'
+                   '\n'
+                   '   If the string starts with the *prefix* string, return\n'
+                   '   "string[len(prefix):]". Otherwise, return a copy of the '
+                   'original\n'
+                   '   string:\n'
+                   '\n'
+                   "      >>> 'TestHook'.removeprefix('Test')\n"
+                   "      'Hook'\n"
+                   "      >>> 'BaseTestCase'.removeprefix('Test')\n"
+                   "      'BaseTestCase'\n"
+                   '\n'
+                   '   New in version 3.9.\n'
+                   '\n'
+                   'str.removesuffix(suffix, /)\n'
+                   '\n'
+                   '   If the string ends with the *suffix* string and that '
+                   '*suffix* is\n'
+                   '   not empty, return "string[:-len(suffix)]". Otherwise, '
+                   'return a copy\n'
+                   '   of the original string:\n'
+                   '\n'
+                   "      >>> 'MiscTests'.removesuffix('Tests')\n"
+                   "      'Misc'\n"
+                   "      >>> 'TmpDirMixin'.removesuffix('Tests')\n"
+                   "      'TmpDirMixin'\n"
+                   '\n'
+                   '   New in version 3.9.\n'
+                   '\n'
                    'str.encode(encoding="utf-8", errors="strict")\n'
                    '\n'
                    '   Return an encoded version of the string as a bytes '
@@ -10297,6 +10325,16 @@
                    "      >>> 'www.example.com'.lstrip('cmowz.')\n"
                    "      'example.com'\n"
                    '\n'
+                   '   See "str.removeprefix()" for a method that will remove '
+                   'a single\n'
+                   '   prefix string rather than all of a set of characters.  '
+                   'For example:\n'
+                   '\n'
+                   "      >>> 'Arthur: three!'.lstrip('Arthur: ')\n"
+                   "      'ee!'\n"
+                   "      >>> 'Arthur: three!'.removeprefix('Arthur: ')\n"
+                   "      'three!'\n"
+                   '\n'
                    'static str.maketrans(x[, y[, z]])\n'
                    '\n'
                    '   This static method returns a translation table usable '
@@ -10410,6 +10448,16 @@
                    "      >>> 'mississippi'.rstrip('ipz')\n"
                    "      'mississ'\n"
                    '\n'
+                   '   See "str.removesuffix()" for a method that will remove '
+                   'a single\n'
+                   '   suffix string rather than all of a set of characters.  '
+                   'For example:\n'
+                   '\n'
+                   "      >>> 'Monty Python'.rstrip(' Python')\n"
+                   "      'M'\n"
+                   "      >>> 'Monty Python'.removesuffix(' Python')\n"
+                   "      'Monty'\n"
+                   '\n'
                    'str.split(sep=None, maxsplit=-1)\n'
                    '\n'
                    '   Return a list of the words in the string, using *sep* '
@@ -11483,6 +11531,16 @@
           '      then they can be used interchangeably to index the same\n'
           '      dictionary entry.\n'
           '\n'
+          '      Dictionaries preserve insertion order, meaning that keys will '
+          'be\n'
+          '      produced in the same order they were added sequentially over '
+          'the\n'
+          '      dictionary. Replacing an existing key does not change the '
+          'order,\n'
+          '      however removing a key and re-inserting it will add it to '
+          'the\n'
+          '      end instead of keeping its old place.\n'
+          '\n'
           '      Dictionaries are mutable; they can be created by the "{...}"\n'
           '      notation (see section Dictionary displays).\n'
           '\n'
@@ -11491,6 +11549,13 @@
           '"collections"\n'
           '      module.\n'
           '\n'
+          '      Changed in version 3.7: Dictionaries did not preserve '
+          'insertion\n'
+          '      order in versions of Python before 3.6. In CPython 3.6,\n'
+          '      insertion order was preserved, but it was considered an\n'
+          '      implementation detail at that time rather than a language\n'
+          '      guarantee.\n'
+          '\n'
           'Callable types\n'
           '   These are the types to which the function call operation (see\n'
           '   section Calls) can be applied:\n'