3.7.2rc1
diff --git a/Lib/pydoc_data/topics.py b/Lib/pydoc_data/topics.py
index f5b9aa1..aaab1f7 100644
--- a/Lib/pydoc_data/topics.py
+++ b/Lib/pydoc_data/topics.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Autogenerated by Sphinx on Sat Oct 20 01:59:27 2018
+# Autogenerated by Sphinx on Tue Dec 11 16:32:31 2018
 topics = {'assert': 'The "assert" statement\n'
            '**********************\n'
            '\n'
@@ -26,7 +26,8 @@
            'implementation, the built-in variable "__debug__" is "True" under\n'
            'normal circumstances, "False" when optimization is requested '
            '(command\n'
-           'line option -O).  The current code generator emits no code for an\n'
+           'line option "-O").  The current code generator emits no code for '
+           'an\n'
            'assert statement when optimization is requested at compile time.  '
            'Note\n'
            'that it is unnecessary to include the source code for the '
@@ -87,23 +88,16 @@
                'parentheses or square brackets, is recursively defined as '
                'follows.\n'
                '\n'
-               '* If the target list is empty: The object must also be an '
-               'empty\n'
-               '  iterable.\n'
+               '* If the target list is a single target with no trailing '
+               'comma,\n'
+               '  optionally in parentheses, the object is assigned to that '
+               'target.\n'
                '\n'
-               '* If the target list is a single target in parentheses: The '
-               'object\n'
-               '  is assigned to that target.\n'
-               '\n'
-               '* If the target list is a comma-separated list of targets, or '
-               'a\n'
-               '  single target in square brackets: The object must be an '
-               'iterable\n'
-               '  with the same number of items as there are targets in the '
-               'target\n'
-               '  list, and the items are assigned, from left to right, to '
-               'the\n'
-               '  corresponding targets.\n'
+               '* Else: The object must be an iterable with the same number of '
+               'items\n'
+               '  as there are targets in the target list, and the items are '
+               'assigned,\n'
+               '  from left to right, to the corresponding targets.\n'
                '\n'
                '  * If the target list contains one target prefixed with an\n'
                '    asterisk, called a “starred” target: The object must be '
@@ -400,9 +394,21 @@
                'the last\n'
                '"__setitem__()" or "__setattr__()" call.\n'
                '\n'
-               'See also: **PEP 526** - Variable and attribute annotation '
-               'syntax\n'
-               '  **PEP 484** - Type hints\n',
+               'See also:\n'
+               '\n'
+               '  **PEP 526** - Syntax for Variable Annotations\n'
+               '     The proposal that added syntax for annotating the types '
+               'of\n'
+               '     variables (including class variables and instance '
+               'variables),\n'
+               '     instead of expressing them through comments.\n'
+               '\n'
+               '  **PEP 484** - Type hints\n'
+               '     The proposal that added the "typing" module to provide a '
+               'standard\n'
+               '     syntax for type annotations that can be used in static '
+               'analysis\n'
+               '     tools and IDEs.\n',
  'async': 'Coroutines\n'
           '**********\n'
           '\n'
@@ -418,18 +424,19 @@
           '\n'
           'Execution of Python coroutines can be suspended and resumed at '
           'many\n'
-          'points (see *coroutine*).  In the body of a coroutine, any "await" '
-          'and\n'
-          '"async" identifiers become reserved keywords; "await" expressions,\n'
-          '"async for" and "async with" can only be used in coroutine bodies.\n'
+          'points (see *coroutine*).  Inside the body of a coroutine '
+          'function,\n'
+          '"await" and "async" identifiers become reserved keywords; "await"\n'
+          'expressions, "async for" and "async with" can only be used in\n'
+          'coroutine function bodies.\n'
           '\n'
           'Functions defined with "async def" syntax are always coroutine\n'
           'functions, even if they do not contain "await" or "async" '
           'keywords.\n'
           '\n'
-          'It is a "SyntaxError" to use "yield from" expressions in "async '
-          'def"\n'
-          'coroutines.\n'
+          'It is a "SyntaxError" to use a "yield from" expression inside the '
+          'body\n'
+          'of a coroutine function.\n'
           '\n'
           'An example of a coroutine function:\n'
           '\n'
@@ -475,8 +482,9 @@
           '\n'
           'See also "__aiter__()" and "__anext__()" for details.\n'
           '\n'
-          'It is a "SyntaxError" to use "async for" statement outside of an\n'
-          '"async def" function.\n'
+          'It is a "SyntaxError" to use an "async for" statement outside the '
+          'body\n'
+          'of a coroutine function.\n'
           '\n'
           '\n'
           'The "async with" statement\n'
@@ -510,10 +518,15 @@
           '\n'
           'See also "__aenter__()" and "__aexit__()" for details.\n'
           '\n'
-          'It is a "SyntaxError" to use "async with" statement outside of an\n'
-          '"async def" function.\n'
+          'It is a "SyntaxError" to use an "async with" statement outside the\n'
+          'body of a coroutine function.\n'
           '\n'
-          'See also: **PEP 492** - Coroutines with async and await syntax\n'
+          'See also:\n'
+          '\n'
+          '  **PEP 492** - Coroutines with async and await syntax\n'
+          '     The proposal that made coroutines a proper standalone concept '
+          'in\n'
+          '     Python, and added supporting syntax.\n'
           '\n'
           '-[ Footnotes ]-\n'
           '\n'
@@ -521,15 +534,11 @@
           '    there is a "finally" clause which happens to raise another\n'
           '    exception. That new exception causes the old one to be lost.\n'
           '\n'
-          '[2] Currently, control “flows off the end” except in the case of\n'
-          '    an exception or the execution of a "return", "continue", or\n'
-          '    "break" statement.\n'
-          '\n'
-          '[3] A string literal appearing as the first statement in the\n'
+          '[2] A string literal appearing as the first statement in the\n'
           '    function body is transformed into the function’s "__doc__"\n'
           '    attribute and therefore the function’s *docstring*.\n'
           '\n'
-          '[4] A string literal appearing as the first statement in the class\n'
+          '[3] A string literal appearing as the first statement in the class\n'
           '    body is transformed into the namespace’s "__doc__" item and\n'
           '    therefore the class’s *docstring*.\n',
  'atom-identifiers': 'Identifiers (Names)\n'
@@ -748,7 +757,7 @@
                      '\n'
                      '       def __setattr__(self, attr, value):\n'
                      "           print(f'Setting {attr}...')\n"
-                     '           setattr(self, attr, value)\n'
+                     '           super().__setattr__(attr, value)\n'
                      '\n'
                      '   sys.modules[__name__].__class__ = VerboseModule\n'
                      '\n'
@@ -1350,7 +1359,7 @@
              'is\n'
              'returned.\n'
              '\n'
-             '(Note that neither "and" nor "or" restrict the value and type '
+             'Note that neither "and" nor "or" restrict the value and type '
              'they\n'
              'return to "False" and "True", but rather return the last '
              'evaluated\n'
@@ -1616,7 +1625,7 @@
           'original global namespace. (Usually, the suite contains mostly\n'
           'function definitions.)  When the class’s suite finishes execution, '
           'its\n'
-          'execution frame is discarded but its local namespace is saved. [4] '
+          'execution frame is discarded but its local namespace is saved. [3] '
           'A\n'
           'class object is then created using the inheritance list for the '
           'base\n'
@@ -1666,8 +1675,18 @@
           'unexpected results.  Descriptors can be used to create instance\n'
           'variables with different implementation details.\n'
           '\n'
-          'See also: **PEP 3115** - Metaclasses in Python 3 **PEP 3129** -\n'
-          '  Class Decorators\n',
+          'See also:\n'
+          '\n'
+          '  **PEP 3115** - Metaclasses in Python 3000\n'
+          '     The proposal that changed the declaration of metaclasses to '
+          'the\n'
+          '     current syntax, and the semantics for how classes with\n'
+          '     metaclasses are constructed.\n'
+          '\n'
+          '  **PEP 3129** - Class Decorators\n'
+          '     The proposal that added class decorators.  Function and '
+          'method\n'
+          '     decorators were introduced in **PEP 318**.\n',
  'comparisons': 'Comparisons\n'
                 '***********\n'
                 '\n'
@@ -2371,9 +2390,11 @@
              'returning\n'
              'from a function that handled an exception.\n'
              '\n'
-             'The optional "else" clause is executed if and when control flows '
-             'off\n'
-             'the end of the "try" clause. [2] Exceptions in the "else" clause '
+             'The optional "else" clause is executed if the control flow '
+             'leaves the\n'
+             '"try" suite, no exception was raised, and no "return", '
+             '"continue", or\n'
+             '"break" statement was executed.  Exceptions in the "else" clause '
              'are\n'
              'not handled by the preceding "except" clauses.\n'
              '\n'
@@ -2561,7 +2582,7 @@
              '\n'
              'The function definition does not execute the function body; this '
              'gets\n'
-             'executed only when the function is called. [3]\n'
+             'executed only when the function is called. [2]\n'
              '\n'
              'A function definition may be wrapped by one or more *decorator*\n'
              'expressions. Decorator expressions are evaluated when the '
@@ -2754,7 +2775,7 @@
              'function definitions.)  When the class’s suite finishes '
              'execution, its\n'
              'execution frame is discarded but its local namespace is saved. '
-             '[4] A\n'
+             '[3] A\n'
              'class object is then created using the inheritance list for the '
              'base\n'
              'classes and the saved local namespace for the attribute '
@@ -2806,8 +2827,18 @@
              'unexpected results.  Descriptors can be used to create instance\n'
              'variables with different implementation details.\n'
              '\n'
-             'See also: **PEP 3115** - Metaclasses in Python 3 **PEP 3129** -\n'
-             '  Class Decorators\n'
+             'See also:\n'
+             '\n'
+             '  **PEP 3115** - Metaclasses in Python 3000\n'
+             '     The proposal that changed the declaration of metaclasses to '
+             'the\n'
+             '     current syntax, and the semantics for how classes with\n'
+             '     metaclasses are constructed.\n'
+             '\n'
+             '  **PEP 3129** - Class Decorators\n'
+             '     The proposal that added class decorators.  Function and '
+             'method\n'
+             '     decorators were introduced in **PEP 318**.\n'
              '\n'
              '\n'
              'Coroutines\n'
@@ -2825,20 +2856,20 @@
              '\n'
              'Execution of Python coroutines can be suspended and resumed at '
              'many\n'
-             'points (see *coroutine*).  In the body of a coroutine, any '
-             '"await" and\n'
-             '"async" identifiers become reserved keywords; "await" '
-             'expressions,\n'
-             '"async for" and "async with" can only be used in coroutine '
-             'bodies.\n'
+             'points (see *coroutine*).  Inside the body of a coroutine '
+             'function,\n'
+             '"await" and "async" identifiers become reserved keywords; '
+             '"await"\n'
+             'expressions, "async for" and "async with" can only be used in\n'
+             'coroutine function bodies.\n'
              '\n'
              'Functions defined with "async def" syntax are always coroutine\n'
              'functions, even if they do not contain "await" or "async" '
              'keywords.\n'
              '\n'
-             'It is a "SyntaxError" to use "yield from" expressions in "async '
-             'def"\n'
-             'coroutines.\n'
+             'It is a "SyntaxError" to use a "yield from" expression inside '
+             'the body\n'
+             'of a coroutine function.\n'
              '\n'
              'An example of a coroutine function:\n'
              '\n'
@@ -2884,9 +2915,9 @@
              '\n'
              'See also "__aiter__()" and "__anext__()" for details.\n'
              '\n'
-             'It is a "SyntaxError" to use "async for" statement outside of '
-             'an\n'
-             '"async def" function.\n'
+             'It is a "SyntaxError" to use an "async for" statement outside '
+             'the body\n'
+             'of a coroutine function.\n'
              '\n'
              '\n'
              'The "async with" statement\n'
@@ -2920,11 +2951,16 @@
              '\n'
              'See also "__aenter__()" and "__aexit__()" for details.\n'
              '\n'
-             'It is a "SyntaxError" to use "async with" statement outside of '
-             'an\n'
-             '"async def" function.\n'
+             'It is a "SyntaxError" to use an "async with" statement outside '
+             'the\n'
+             'body of a coroutine function.\n'
              '\n'
-             'See also: **PEP 492** - Coroutines with async and await syntax\n'
+             'See also:\n'
+             '\n'
+             '  **PEP 492** - Coroutines with async and await syntax\n'
+             '     The proposal that made coroutines a proper standalone '
+             'concept in\n'
+             '     Python, and added supporting syntax.\n'
              '\n'
              '-[ Footnotes ]-\n'
              '\n'
@@ -2933,16 +2969,11 @@
              '    exception. That new exception causes the old one to be '
              'lost.\n'
              '\n'
-             '[2] Currently, control “flows off the end” except in the case '
-             'of\n'
-             '    an exception or the execution of a "return", "continue", or\n'
-             '    "break" statement.\n'
-             '\n'
-             '[3] A string literal appearing as the first statement in the\n'
+             '[2] A string literal appearing as the first statement in the\n'
              '    function body is transformed into the function’s "__doc__"\n'
              '    attribute and therefore the function’s *docstring*.\n'
              '\n'
-             '[4] A string literal appearing as the first statement in the '
+             '[3] A string literal appearing as the first statement in the '
              'class\n'
              '    body is transformed into the namespace’s "__doc__" item and\n'
              '    therefore the class’s *docstring*.\n',
@@ -3470,12 +3501,12 @@
                   '     See '
                   'http://www.ocert.org/advisories/ocert-2011-003.html for\n'
                   '     details.Changing hash values affects the iteration '
-                  'order of\n'
-                  '     dicts, sets and other mappings.  Python has never made '
-                  'guarantees\n'
-                  '     about this ordering (and it typically varies between '
-                  '32-bit and\n'
-                  '     64-bit builds).See also "PYTHONHASHSEED".\n'
+                  'order of sets.\n'
+                  '     Python has never made guarantees about this ordering '
+                  '(and it\n'
+                  '     typically varies between 32-bit and 64-bit builds).See '
+                  'also\n'
+                  '     "PYTHONHASHSEED".\n'
                   '\n'
                   '   Changed in version 3.3: Hash randomization is enabled by '
                   'default.\n'
@@ -4378,7 +4409,7 @@
               'argument to the interpreter) is a code block.  A script command '
               '(a\n'
               'command specified on the interpreter command line with the '
-              '‘**-c**’\n'
+              '"-c"\n'
               'option) is a code block.  The string argument passed to the '
               'built-in\n'
               'functions "eval()" and "exec()" is a code block.\n'
@@ -5394,7 +5425,7 @@
                   '\n'
                   'The new format syntax also supports new and different '
                   'options, shown\n'
-                  'in the follow examples.\n'
+                  'in the following examples.\n'
                   '\n'
                   'Accessing arguments by position:\n'
                   '\n'
@@ -5574,7 +5605,7 @@
              '\n'
              'The function definition does not execute the function body; this '
              'gets\n'
-             'executed only when the function is called. [3]\n'
+             'executed only when the function is called. [2]\n'
              '\n'
              'A function definition may be wrapped by one or more *decorator*\n'
              'expressions. Decorator expressions are evaluated when the '
@@ -6350,8 +6381,9 @@
  'lambda': 'Lambdas\n'
            '*******\n'
            '\n'
-           '   lambda_expr        ::= "lambda" [parameter_list]: expression\n'
-           '   lambda_expr_nocond ::= "lambda" [parameter_list]: '
+           '   lambda_expr        ::= "lambda" [parameter_list] ":" '
+           'expression\n'
+           '   lambda_expr_nocond ::= "lambda" [parameter_list] ":" '
            'expression_nocond\n'
            '\n'
            'Lambda expressions (sometimes called lambda forms) are used to '
@@ -7453,12 +7485,6 @@
                    'of the\n'
                    '     sequence.\n'
                    '\n'
-                   'object.__missing__(self, key)\n'
-                   '\n'
-                   '   Called by "dict"."__getitem__()" to implement '
-                   '"self[key]" for dict\n'
-                   '   subclasses when key is not in the dictionary.\n'
-                   '\n'
                    'object.__setitem__(self, key, value)\n'
                    '\n'
                    '   Called to implement assignment to "self[key]".  Same '
@@ -7486,6 +7512,12 @@
                    '   raised for improper *key* values as for the '
                    '"__getitem__()" method.\n'
                    '\n'
+                   'object.__missing__(self, key)\n'
+                   '\n'
+                   '   Called by "dict"."__getitem__()" to implement '
+                   '"self[key]" for dict\n'
+                   '   subclasses when key is not in the dictionary.\n'
+                   '\n'
                    'object.__iter__(self)\n'
                    '\n'
                    '   This method is called when an iterator is required for '
@@ -8163,12 +8195,12 @@
                  '     See http://www.ocert.org/advisories/ocert-2011-003.html '
                  'for\n'
                  '     details.Changing hash values affects the iteration '
-                 'order of\n'
-                 '     dicts, sets and other mappings.  Python has never made '
-                 'guarantees\n'
-                 '     about this ordering (and it typically varies between '
-                 '32-bit and\n'
-                 '     64-bit builds).See also "PYTHONHASHSEED".\n'
+                 'order of sets.\n'
+                 '     Python has never made guarantees about this ordering '
+                 '(and it\n'
+                 '     typically varies between 32-bit and 64-bit builds).See '
+                 'also\n'
+                 '     "PYTHONHASHSEED".\n'
                  '\n'
                  '   Changed in version 3.3: Hash randomization is enabled by '
                  'default.\n'
@@ -8332,7 +8364,7 @@
                  '\n'
                  '       def __setattr__(self, attr, value):\n'
                  "           print(f'Setting {attr}...')\n"
-                 '           setattr(self, attr, value)\n'
+                 '           super().__setattr__(attr, value)\n'
                  '\n'
                  '   sys.modules[__name__].__class__ = VerboseModule\n'
                  '\n'
@@ -8918,8 +8950,8 @@
                  '     Describes the implicit "__class__" closure reference\n'
                  '\n'
                  '\n'
-                 'Metaclass example\n'
-                 '-----------------\n'
+                 'Uses for metaclasses\n'
+                 '--------------------\n'
                  '\n'
                  'The potential uses for metaclasses are boundless. Some ideas '
                  'that have\n'
@@ -8929,48 +8961,6 @@
                  'frameworks, and\n'
                  'automatic resource locking/synchronization.\n'
                  '\n'
-                 'Here is an example of a metaclass that uses an\n'
-                 '"collections.OrderedDict" to remember the order that class '
-                 'variables\n'
-                 'are defined:\n'
-                 '\n'
-                 '   class OrderedClass(type):\n'
-                 '\n'
-                 '       @classmethod\n'
-                 '       def __prepare__(metacls, name, bases, **kwds):\n'
-                 '           return collections.OrderedDict()\n'
-                 '\n'
-                 '       def __new__(cls, name, bases, namespace, **kwds):\n'
-                 '           result = type.__new__(cls, name, bases, '
-                 'dict(namespace))\n'
-                 '           result.members = tuple(namespace)\n'
-                 '           return result\n'
-                 '\n'
-                 '   class A(metaclass=OrderedClass):\n'
-                 '       def one(self): pass\n'
-                 '       def two(self): pass\n'
-                 '       def three(self): pass\n'
-                 '       def four(self): pass\n'
-                 '\n'
-                 '   >>> A.members\n'
-                 "   ('__module__', 'one', 'two', 'three', 'four')\n"
-                 '\n'
-                 'When the class definition for *A* gets executed, the process '
-                 'begins\n'
-                 'with calling the metaclass’s "__prepare__()" method which '
-                 'returns an\n'
-                 'empty "collections.OrderedDict".  That mapping records the '
-                 'methods and\n'
-                 'attributes of *A* as they are defined within the body of the '
-                 'class\n'
-                 'statement. Once those definitions are executed, the ordered '
-                 'dictionary\n'
-                 'is fully populated and the metaclass’s "__new__()" method '
-                 'gets\n'
-                 'invoked.  That method builds the new type and it saves the '
-                 'ordered\n'
-                 'dictionary keys in an attribute called "members".\n'
-                 '\n'
                  '\n'
                  'Customizing instance and subclass checks\n'
                  '========================================\n'
@@ -9196,12 +9186,6 @@
                  'the\n'
                  '     sequence.\n'
                  '\n'
-                 'object.__missing__(self, key)\n'
-                 '\n'
-                 '   Called by "dict"."__getitem__()" to implement "self[key]" '
-                 'for dict\n'
-                 '   subclasses when key is not in the dictionary.\n'
-                 '\n'
                  'object.__setitem__(self, key, value)\n'
                  '\n'
                  '   Called to implement assignment to "self[key]".  Same note '
@@ -9229,6 +9213,12 @@
                  '   raised for improper *key* values as for the '
                  '"__getitem__()" method.\n'
                  '\n'
+                 'object.__missing__(self, key)\n'
+                 '\n'
+                 '   Called by "dict"."__getitem__()" to implement "self[key]" '
+                 'for dict\n'
+                 '   subclasses when key is not in the dictionary.\n'
+                 '\n'
                  'object.__iter__(self)\n'
                  '\n'
                  '   This method is called when an iterator is required for a '
@@ -10878,8 +10868,11 @@
         'restored to their previous values (before the call) when returning\n'
         'from a function that handled an exception.\n'
         '\n'
-        'The optional "else" clause is executed if and when control flows off\n'
-        'the end of the "try" clause. [2] Exceptions in the "else" clause are\n'
+        'The optional "else" clause is executed if the control flow leaves '
+        'the\n'
+        '"try" suite, no exception was raised, and no "return", "continue", '
+        'or\n'
+        '"break" statement was executed.  Exceptions in the "else" clause are\n'
         'not handled by the preceding "except" clauses.\n'
         '\n'
         'If "finally" is present, it specifies a ‘cleanup’ handler.  The '
@@ -12267,8 +12260,8 @@
                  '\n'
                  '   Changed in version 3.7: Dictionary order is guaranteed to '
                  'be\n'
-                 '   insertion order.  This behavior was implementation detail '
-                 'of\n'
+                 '   insertion order.  This behavior was an implementation '
+                 'detail of\n'
                  '   CPython from 3.6.\n'
                  '\n'
                  'See also: "types.MappingProxyType" can be used to create a '