[Python-checkins] cpython (merge 3.6 -> default): Issue #29198: Merge from 3.6
berker.peksag
python-checkins at python.org
Sat Feb 4 01:13:57 EST 2017
https://hg.python.org/cpython/rev/2b55b18bf151
changeset: 106401:2b55b18bf151
parent: 106398:222b9392a83b
parent: 106400:b475b076cc1f
user: Berker Peksag <berker.peksag at gmail.com>
date: Sat Feb 04 09:19:04 2017 +0300
summary:
Issue #29198: Merge from 3.6
files:
Doc/library/typing.rst | 33 ++++++++++++++++++++++++++++++
1 files changed, 33 insertions(+), 0 deletions(-)
diff --git a/Doc/library/typing.rst b/Doc/library/typing.rst
--- a/Doc/library/typing.rst
+++ b/Doc/library/typing.rst
@@ -689,6 +689,39 @@
yield start
start += 1
+.. class:: AsyncGenerator(AsyncIterator[T_co], Generic[T_co, T_contra])
+
+ An async generator can be annotated by the generic type
+ ``AsyncGenerator[YieldType, SendType]``. For example::
+
+ async def echo_round() -> AsyncGenerator[int, float]:
+ sent = yield 0
+ while sent >= 0.0:
+ rounded = await round(sent)
+ sent = yield rounded
+
+ Unlike normal generators, async generators cannot return a value, so there
+ is no ``ReturnType`` type parameter. As with :class:`Generator`, the
+ ``SendType`` behaves contravariantly.
+
+ If your generator will only yield values, set the ``SendType`` to
+ ``None``::
+
+ async def infinite_stream(start: int) -> AsyncGenerator[int, None]:
+ while True:
+ yield start
+ start = await increment(start)
+
+ Alternatively, annotate your generator as having a return type of
+ either ``AsyncIterable[YieldType]`` or ``AsyncIterator[YieldType]``::
+
+ async def infinite_stream(start: int) -> AsyncIterator[int]:
+ while True:
+ yield start
+ start = await increment(start)
+
+ .. versionadded:: 3.5.4
+
.. class:: Text
``Text`` is an alias for ``str``. It is provided to supply a forward
--
Repository URL: https://hg.python.org/cpython
More information about the Python-checkins
mailing list