mirror of
https://github.com/davidhalter/typeshed.git
synced 2025-12-07 20:54:28 +08:00
Better stub for contextlib.contextmanager.
This commit is contained in:
@@ -2,14 +2,16 @@
|
||||
|
||||
# NOTE: These are incomplete!
|
||||
|
||||
from typing import Any, TypeVar, Generic
|
||||
|
||||
# TODO more precise type?
|
||||
def contextmanager(func: Any) -> Any: ...
|
||||
from typing import Callable, Generic, Iterator, TypeVar
|
||||
|
||||
_T = TypeVar('_T')
|
||||
|
||||
class closing(Generic[_T]):
|
||||
def __init__(self, thing: _T) -> None: ...
|
||||
class ContextManager(Generic[_T]):
|
||||
def __enter__(self) -> _T: ...
|
||||
def __exit__(self, *exc_info) -> None: ...
|
||||
|
||||
# TODO this doesn't capture the relationship that the returned function's args are the same as func's.
|
||||
def contextmanager(func: Callable[..., Iterator[_T]]) -> Callable[..., ContextManager[_T]]: ...
|
||||
|
||||
class closing(ContextManager[_T], Generic[_T]):
|
||||
def __init__(self, thing: _T) -> None: ...
|
||||
|
||||
@@ -2,14 +2,16 @@
|
||||
|
||||
# NOTE: These are incomplete!
|
||||
|
||||
from typing import Any, TypeVar, Generic
|
||||
|
||||
# TODO more precise type?
|
||||
def contextmanager(func: Any) -> Any: ...
|
||||
from typing import Callable, Generic, Iterator, TypeVar
|
||||
|
||||
_T = TypeVar('_T')
|
||||
|
||||
class closing(Generic[_T]):
|
||||
def __init__(self, thing: _T) -> None: ...
|
||||
class ContextManager(Generic[_T]):
|
||||
def __enter__(self) -> _T: ...
|
||||
def __exit__(self, *exc_info) -> None: ...
|
||||
|
||||
# TODO this doesn't capture the relationship that the returned function's args are the same as func's.
|
||||
def contextmanager(func: Callable[..., Iterator[_T]]) -> Callable[..., ContextManager[_T]]: ...
|
||||
|
||||
class closing(ContextManager[_T], Generic[_T]):
|
||||
def __init__(self, thing: _T) -> None: ...
|
||||
|
||||
Reference in New Issue
Block a user