diff --git a/stdlib/3/collections/__init__.pyi b/stdlib/3/collections/__init__.pyi index 00f463b5119d..58809f85e379 100644 --- a/stdlib/3/collections/__init__.pyi +++ b/stdlib/3/collections/__init__.pyi @@ -5,6 +5,7 @@ # TODO more abstract base classes (interfaces in mypy) # These are not exported. +import sys from typing import ( TypeVar, Generic, Dict, overload, List, Tuple, Callable, Any, Type, Optional, Union @@ -35,6 +36,8 @@ from typing import ( MutableSet as MutableSet, AbstractSet as Set, ) +if sys.version_info >= (3, 6): + from typing import AsyncGenerator as AsyncGenerator _T = TypeVar('_T') _KT = TypeVar('_KT') diff --git a/stdlib/3/collections/abc.pyi b/stdlib/3/collections/abc.pyi index f7d3ae4201fb..5106ec5139ee 100644 --- a/stdlib/3/collections/abc.pyi +++ b/stdlib/3/collections/abc.pyi @@ -35,4 +35,5 @@ if sys.version_info >= (3, 5): if sys.version_info >= (3, 6): from . import ( Reversible as Reversible, + AsyncGenerator as AsyncGenerator, ) diff --git a/stdlib/3/typing.pyi b/stdlib/3/typing.pyi index 554852669f2d..cf9211bd9357 100644 --- a/stdlib/3/typing.pyi +++ b/stdlib/3/typing.pyi @@ -151,6 +151,24 @@ class AsyncIterator(AsyncIterable[_T_co], def __anext__(self) -> Awaitable[_T_co]: ... def __aiter__(self) -> 'AsyncIterator[_T_co]': ... +if sys.version_info >= (3, 6): + class AsyncGenerator(AsyncIterator[_T_co], Generic[_T_co, _T_contra]): + @abstractmethod + def __anext__(self) -> Awaitable[_T_co]: ... + + @abstractmethod + def asend(self, value: _T_contra) -> Awaitable[_T_co]: ... + + @abstractmethod + def athrow(self, typ: Type[BaseException], val: Optional[BaseException] = None, + tb: Any = None) -> Awaitable[None]: ... + + @abstractmethod + def aclose(self) -> Awaitable[None]: ... + + @abstractmethod + def __aiter__(self) -> 'AsyncGenerator[_T_co, _T_contra]': ... + class Container(Generic[_T_co]): @abstractmethod def __contains__(self, x: object) -> bool: ...