3.7.0b5
diff --git a/Lib/pydoc_data/topics.py b/Lib/pydoc_data/topics.py
index e138d49..09016ac 100644
--- a/Lib/pydoc_data/topics.py
+++ b/Lib/pydoc_data/topics.py
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
-# Autogenerated by Sphinx on Wed May 2 03:29:32 2018
+# Autogenerated by Sphinx on Wed May 30 19:43:20 2018
topics = {'assert': 'The "assert" statement\n'
'**********************\n'
'\n'
@@ -403,6 +403,134 @@
'See also: **PEP 526** - Variable and attribute annotation '
'syntax\n'
' **PEP 484** - Type hints\n',
+ 'async': 'Coroutines\n'
+ '**********\n'
+ '\n'
+ 'New in version 3.5.\n'
+ '\n'
+ '\n'
+ 'Coroutine function definition\n'
+ '=============================\n'
+ '\n'
+ ' async_funcdef ::= [decorators] "async" "def" funcname "(" '
+ '[parameter_list] ")" ["->" expression] ":" suite\n'
+ '\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'
+ '\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'
+ '\n'
+ 'An example of a coroutine function:\n'
+ '\n'
+ ' async def func(param1, param2):\n'
+ ' do_stuff()\n'
+ ' await some_coroutine()\n'
+ '\n'
+ '\n'
+ 'The "async for" statement\n'
+ '=========================\n'
+ '\n'
+ ' async_for_stmt ::= "async" for_stmt\n'
+ '\n'
+ 'An *asynchronous iterable* is able to call asynchronous code in '
+ 'its\n'
+ '*iter* implementation, and *asynchronous iterator* can call\n'
+ 'asynchronous code in its *next* method.\n'
+ '\n'
+ 'The "async for" statement allows convenient iteration over\n'
+ 'asynchronous iterators.\n'
+ '\n'
+ 'The following code:\n'
+ '\n'
+ ' async for TARGET in ITER:\n'
+ ' BLOCK\n'
+ ' else:\n'
+ ' BLOCK2\n'
+ '\n'
+ 'Is semantically equivalent to:\n'
+ '\n'
+ ' iter = (ITER)\n'
+ ' iter = type(iter).__aiter__(iter)\n'
+ ' running = True\n'
+ ' while running:\n'
+ ' try:\n'
+ ' TARGET = await type(iter).__anext__(iter)\n'
+ ' except StopAsyncIteration:\n'
+ ' running = False\n'
+ ' else:\n'
+ ' BLOCK\n'
+ ' else:\n'
+ ' BLOCK2\n'
+ '\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'
+ '\n'
+ '\n'
+ 'The "async with" statement\n'
+ '==========================\n'
+ '\n'
+ ' async_with_stmt ::= "async" with_stmt\n'
+ '\n'
+ 'An *asynchronous context manager* is a *context manager* that is '
+ 'able\n'
+ 'to suspend execution in its *enter* and *exit* methods.\n'
+ '\n'
+ 'The following code:\n'
+ '\n'
+ ' async with EXPR as VAR:\n'
+ ' BLOCK\n'
+ '\n'
+ 'Is semantically equivalent to:\n'
+ '\n'
+ ' mgr = (EXPR)\n'
+ ' aexit = type(mgr).__aexit__\n'
+ ' aenter = type(mgr).__aenter__(mgr)\n'
+ '\n'
+ ' VAR = await aenter\n'
+ ' try:\n'
+ ' BLOCK\n'
+ ' except:\n'
+ ' if not await aexit(mgr, *sys.exc_info()):\n'
+ ' raise\n'
+ ' else:\n'
+ ' await aexit(mgr, None, None, None)\n'
+ '\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'
+ '\n'
+ 'See also: **PEP 492** - Coroutines with async and await syntax\n'
+ '\n'
+ '-[ Footnotes ]-\n'
+ '\n'
+ '[1] The exception is propagated to the invocation stack unless\n'
+ ' 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'
+ ' 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'
+ ' body is transformed into the namespace’s "__doc__" item and\n'
+ ' therefore the class’s *docstring*.\n',
'atom-identifiers': 'Identifiers (Names)\n'
'*******************\n'
'\n'
@@ -6222,13 +6350,13 @@
'\n'
'Lambda expressions (sometimes called lambda forms) are used to '
'create\n'
- 'anonymous functions. The expression "lambda arguments: '
+ 'anonymous functions. The expression "lambda parameters: '
'expression"\n'
'yields a function object. The unnamed object behaves like a '
'function\n'
'object defined with:\n'
'\n'
- ' def <lambda>(arguments):\n'
+ ' def <lambda>(parameters):\n'
' return expression\n'
'\n'
'See section Function definitions for the syntax of parameter '
@@ -8593,6 +8721,8 @@
'When a class definition is executed, the following steps '
'occur:\n'
'\n'
+ '* MRO entries are resolved\n'
+ '\n'
'* the appropriate metaclass is determined\n'
'\n'
'* the class namespace is prepared\n'
@@ -8602,6 +8732,24 @@
'* the class object is created\n'
'\n'
'\n'
+ 'Resolving MRO entries\n'
+ '---------------------\n'
+ '\n'
+ 'If a base that appears in class definition is not an '
+ 'instance of\n'
+ '"type", then an "__mro_entries__" method is searched on it. '
+ 'If found,\n'
+ 'it is called with the original bases tuple. This method must '
+ 'return a\n'
+ 'tuple of classes that will be used instead of this base. The '
+ 'tuple may\n'
+ 'be empty, in such case the original base is ignored.\n'
+ '\n'
+ 'See also: **PEP 560** - Core support for typing module and '
+ 'generic\n'
+ ' types\n'
+ '\n'
+ '\n'
'Determining the appropriate metaclass\n'
'-------------------------------------\n'
'\n'
@@ -8720,7 +8868,7 @@
'initialised\n'
'correctly. Failing to do so will result in a '
'"DeprecationWarning" in\n'
- 'Python 3.6, and a "RuntimeWarning" in the future.\n'
+ 'Python 3.6, and a "RuntimeError" in Python 3.8.\n'
'\n'
'When using the default metaclass "type", or any metaclass '
'that\n'
@@ -8872,6 +9020,32 @@
' module) to the language.\n'
'\n'
'\n'
+ 'Emulating generic types\n'
+ '=======================\n'
+ '\n'
+ 'One can implement the generic class syntax as specified by '
+ '**PEP 484**\n'
+ '(for example "List[int]") by defining a special method\n'
+ '\n'
+ 'classmethod object.__class_getitem__(cls, key)\n'
+ '\n'
+ ' Return an object representing the specialization of a '
+ 'generic class\n'
+ ' by type arguments found in *key*.\n'
+ '\n'
+ 'This method is looked up on the class object itself, and '
+ 'when defined\n'
+ 'in the class body, this method is implicitly a class '
+ 'method. Note,\n'
+ 'this mechanism is primarily reserved for use with static '
+ 'type hints,\n'
+ 'other usage is discouraged.\n'
+ '\n'
+ 'See also: **PEP 560** - Core support for typing module and '
+ 'generic\n'
+ ' types\n'
+ '\n'
+ '\n'
'Emulating callable objects\n'
'==========================\n'
'\n'