Skip to content

Commit 8eda29f

Browse files
committed
Add stub for AsyncExitContext added by bpo-29302.
1 parent afc84c1 commit 8eda29f

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

stdlib/2and3/contextlib.pyi

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,3 +64,29 @@ if sys.version_info >= (3,):
6464
def pop_all(self) -> ExitStack: ...
6565
def close(self) -> None: ...
6666
def __enter__(self: _U) -> _U: ...
67+
68+
if sys.version_info >= (3, 7):
69+
from asyncio.futures import Future
70+
71+
_U = TypeVar('_U', bound='AsyncExitStack')
72+
73+
_ExitCoroFunc = Callable[[Optional[Type[BaseException]],
74+
Optional[BaseException],
75+
Optional[TracebackType]], Future[bool]]
76+
_CallbackCoroFunc = Callable[..., Future[None]]
77+
_ACM_EF = TypeVar('_ACM_EF', AsyncContextManager, _ExitCoroFunc)
78+
79+
class AsyncExitStack(AsyncContextManager[AsyncExitStack]):
80+
def __init__(self) -> None: ...
81+
def enter_context(self, cm: ContextManager[_T]) -> _T: ...
82+
def enter_async_context(self, cm: AsyncContextManager[_T]) -> Future[_T]: ...
83+
def push(self, exit: _CM_EF) -> _CM_EF: ...
84+
def push_async_exit(self, exit: _ACM_EF) -> _ACM_EF: ...
85+
def callback(self, callback: Callable[..., None],
86+
*args: Any, **kwds: Any) -> Callable[..., None]: ...
87+
def push_async_callback(self, callback: _CallbackCoroFunc,
88+
*args: Any, **kwds: Any) -> _CallbackCoroFunc: ...
89+
def pop_all(self) -> ExitStack: ...
90+
def aclose(self) -> Future[None]: ...
91+
def __enter__(self: _U) -> _U: ...
92+
def __aenter__(self: _U) -> _U: ...

0 commit comments

Comments
 (0)