@@ -64,3 +64,29 @@ if sys.version_info >= (3,):
64
64
def pop_all (self ) -> ExitStack : ...
65
65
def close (self ) -> None : ...
66
66
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