This commit is contained in:
Andrew Svetlov 2015-10-09 20:10:51 +03:00
parent 758b704c4a
commit 9cc180f135
1 changed files with 6 additions and 6 deletions

View File

@ -125,7 +125,7 @@ Key properties of *coroutines*:
* Internally, two new code object flags were introduced: * Internally, two new code object flags were introduced:
- ``CO_COROUTINE`` is used to mark *native coroutines* - ``CO_COROUTINE`` is used to mark *native coroutines*
(defined with new syntax.) (defined with new syntax).
- ``CO_ITERABLE_COROUTINE`` is used to make *generator-based - ``CO_ITERABLE_COROUTINE`` is used to make *generator-based
coroutines* compatible with *native coroutines* (set by coroutines* compatible with *native coroutines* (set by
@ -139,7 +139,7 @@ Key properties of *coroutines*:
such behavior requires a future import (see PEP 479). such behavior requires a future import (see PEP 479).
* When a *coroutine* is garbage collected, a ``RuntimeWarning`` is * When a *coroutine* is garbage collected, a ``RuntimeWarning`` is
raised if it was never awaited on (see also `Debugging Features`_.) raised if it was never awaited on (see also `Debugging Features`_).
* See also `Coroutine objects`_ section. * See also `Coroutine objects`_ section.
@ -199,7 +199,7 @@ can be one of:
internally, coroutines are a special kind of generators, every internally, coroutines are a special kind of generators, every
``await`` is suspended by a ``yield`` somewhere down the chain of ``await`` is suspended by a ``yield`` somewhere down the chain of
``await`` calls (please refer to PEP 3156 for a detailed ``await`` calls (please refer to PEP 3156 for a detailed
explanation.) explanation).
To enable this behavior for coroutines, a new magic method called To enable this behavior for coroutines, a new magic method called
``__await__`` is added. In asyncio, for instance, to enable *Future* ``__await__`` is added. In asyncio, for instance, to enable *Future*
@ -222,7 +222,7 @@ can be one of:
It is a ``SyntaxError`` to use ``await`` outside of an ``async def`` It is a ``SyntaxError`` to use ``await`` outside of an ``async def``
function (like it is a ``SyntaxError`` to use ``yield`` outside of function (like it is a ``SyntaxError`` to use ``yield`` outside of
``def`` function.) ``def`` function).
It is a ``TypeError`` to pass anything other than an *awaitable* object It is a ``TypeError`` to pass anything other than an *awaitable* object
to an ``await`` expression. to an ``await`` expression.
@ -918,7 +918,7 @@ There is no use of ``await`` names in CPython.
``async`` is mostly used by asyncio. We are addressing this by ``async`` is mostly used by asyncio. We are addressing this by
renaming ``async()`` function to ``ensure_future()`` (see `asyncio`_ renaming ``async()`` function to ``ensure_future()`` (see `asyncio`_
section for details.) section for details).
Another use of ``async`` keyword is in ``Lib/xml/dom/xmlbuilder.py``, Another use of ``async`` keyword is in ``Lib/xml/dom/xmlbuilder.py``,
to define an ``async = False`` attribute for ``DocumentLS`` class. to define an ``async = False`` attribute for ``DocumentLS`` class.
@ -970,7 +970,7 @@ PEP 3152 by Gregory Ewing proposes a different mechanism for coroutines
2. A new keyword ``cocall`` to call a *cofunction*. Can only be used 2. A new keyword ``cocall`` to call a *cofunction*. Can only be used
inside a *cofunction*. Maps to ``await`` in this proposal (with inside a *cofunction*. Maps to ``await`` in this proposal (with
some differences, see below.) some differences, see below).
3. It is not possible to call a *cofunction* without a ``cocall`` 3. It is not possible to call a *cofunction* without a ``cocall``
keyword. keyword.