mirror of
https://github.com/davidhalter/typeshed.git
synced 2025-12-07 20:54:28 +08:00
25 lines
906 B
Python
25 lines
906 B
Python
from types import TracebackType
|
|
from typing import IO, Any, Callable, ContextManager, Iterable, Iterator, Protocol, TypeVar
|
|
from typing_extensions import ParamSpec
|
|
|
|
_T = TypeVar("_T")
|
|
_T_co = TypeVar("_T_co", covariant=True)
|
|
_F = TypeVar("_F", bound=Callable[..., Any])
|
|
_P = ParamSpec("_P")
|
|
|
|
_ExitFunc = Callable[[type[BaseException] | None, BaseException | None, TracebackType | None], bool]
|
|
|
|
class GeneratorContextManager(ContextManager[_T_co]):
|
|
def __call__(self, func: _F) -> _F: ...
|
|
|
|
def contextmanager(func: Callable[_P, Iterator[_T]]) -> Callable[_P, ContextManager[_T]]: ...
|
|
def nested(*mgr: ContextManager[Any]) -> ContextManager[Iterable[Any]]: ...
|
|
|
|
class _SupportsClose(Protocol):
|
|
def close(self) -> None: ...
|
|
|
|
_SupportsCloseT = TypeVar("_SupportsCloseT", bound=_SupportsClose)
|
|
|
|
class closing(ContextManager[_SupportsCloseT]):
|
|
def __init__(self, thing: _SupportsCloseT) -> None: ...
|