mirror of
https://github.com/davidhalter/typeshed.git
synced 2025-12-07 12:44:28 +08:00
Add stubs for contextvars backport (3.5 and 3.6) (#2378)
* Add stubs for contextvars backport (3.5 and 3.6) * Add contextvars to tests/check_consistent.py
This commit is contained in:
committed by
Jelle Zijlstra
parent
29522f87c3
commit
80a0a75f5f
@@ -24,6 +24,7 @@ consistent_files = [
|
||||
{'stdlib/3/concurrent/futures/process.pyi', 'third_party/2/concurrent/futures/process.pyi'},
|
||||
{'stdlib/3.7/dataclasses.pyi', 'third_party/3/dataclasses.pyi'},
|
||||
{'stdlib/3/pathlib.pyi', 'third_party/2/pathlib2.pyi'},
|
||||
{'stdlib/3.7/contextvars.pyi', 'third_party/3.5/contextvars.pyi'},
|
||||
]
|
||||
|
||||
def main():
|
||||
|
||||
30
third_party/3.5/contextvars.pyi
vendored
Normal file
30
third_party/3.5/contextvars.pyi
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
from typing import Any, Callable, ClassVar, Generic, Iterator, Mapping, TypeVar, Union
|
||||
|
||||
_T = TypeVar('_T')
|
||||
|
||||
class ContextVar(Generic[_T]):
|
||||
def __init__(self, name: str, *, default: _T = ...) -> None: ...
|
||||
@property
|
||||
def name(self) -> str: ...
|
||||
def get(self, default: _T = ...) -> _T: ...
|
||||
def set(self, value: _T) -> Token[_T]: ...
|
||||
def reset(self, token: Token[_T]) -> None: ...
|
||||
|
||||
class Token(Generic[_T]):
|
||||
@property
|
||||
def var(self) -> ContextVar[_T]: ...
|
||||
@property
|
||||
def old_value(self) -> Any: ... # returns either _T or MISSING, but that's hard to express
|
||||
MISSING: ClassVar[object]
|
||||
|
||||
def copy_context() -> Context: ...
|
||||
|
||||
# It doesn't make sense to make this generic, because for most Contexts each ContextVar will have
|
||||
# a different value.
|
||||
class Context(Mapping[ContextVar[Any], Any]):
|
||||
def __init__(self) -> None: ...
|
||||
def run(self, callable: Callable[..., _T], *args: Any, **kwargs: Any) -> _T: ...
|
||||
def copy(self) -> Context: ...
|
||||
def __getitem__(self, key: ContextVar[Any]) -> Any: ...
|
||||
def __iter__(self) -> Iterator[ContextVar[Any]]: ...
|
||||
def __len__(self) -> int: ...
|
||||
Reference in New Issue
Block a user