1import sys 2from types import FrameType, TracebackType 3from typing import Any, Callable, Iterable, List, Mapping, Optional, Text, Type, TypeVar, Union 4 5# TODO recursive type 6_TF = Callable[[FrameType, str, Any], Optional[Callable[..., Any]]] 7 8_PF = Callable[[FrameType, str, Any], None] 9_T = TypeVar("_T") 10 11__all__: List[str] 12 13def active_count() -> int: ... 14 15if sys.version_info < (3,): 16 def activeCount() -> int: ... 17 18def current_thread() -> Thread: ... 19def currentThread() -> Thread: ... 20 21if sys.version_info >= (3,): 22 def get_ident() -> int: ... 23 24def enumerate() -> List[Thread]: ... 25 26if sys.version_info >= (3, 4): 27 def main_thread() -> Thread: ... 28 29if sys.version_info >= (3, 8): 30 from _thread import get_native_id as get_native_id 31 32def settrace(func: _TF) -> None: ... 33def setprofile(func: Optional[_PF]) -> None: ... 34def stack_size(size: int = ...) -> int: ... 35 36if sys.version_info >= (3,): 37 TIMEOUT_MAX: float 38 39class ThreadError(Exception): ... 40 41class local(object): 42 def __getattribute__(self, name: str) -> Any: ... 43 def __setattr__(self, name: str, value: Any) -> None: ... 44 def __delattr__(self, name: str) -> None: ... 45 46class Thread: 47 name: str 48 ident: Optional[int] 49 daemon: bool 50 if sys.version_info >= (3,): 51 def __init__( 52 self, 53 group: None = ..., 54 target: Optional[Callable[..., Any]] = ..., 55 name: Optional[str] = ..., 56 args: Iterable[Any] = ..., 57 kwargs: Optional[Mapping[str, Any]] = ..., 58 *, 59 daemon: Optional[bool] = ..., 60 ) -> None: ... 61 else: 62 def __init__( 63 self, 64 group: None = ..., 65 target: Optional[Callable[..., Any]] = ..., 66 name: Optional[Text] = ..., 67 args: Iterable[Any] = ..., 68 kwargs: Optional[Mapping[Text, Any]] = ..., 69 ) -> None: ... 70 def start(self) -> None: ... 71 def run(self) -> None: ... 72 def join(self, timeout: Optional[float] = ...) -> None: ... 73 def getName(self) -> str: ... 74 def setName(self, name: Text) -> None: ... 75 if sys.version_info >= (3, 8): 76 @property 77 def native_id(self) -> Optional[int]: ... # only available on some platforms 78 def is_alive(self) -> bool: ... 79 if sys.version_info < (3, 9): 80 def isAlive(self) -> bool: ... 81 def isDaemon(self) -> bool: ... 82 def setDaemon(self, daemonic: bool) -> None: ... 83 84class _DummyThread(Thread): ... 85 86class Lock: 87 def __init__(self) -> None: ... 88 def __enter__(self) -> bool: ... 89 def __exit__( 90 self, exc_type: Optional[Type[BaseException]], exc_val: Optional[BaseException], exc_tb: Optional[TracebackType] 91 ) -> Optional[bool]: ... 92 if sys.version_info >= (3,): 93 def acquire(self, blocking: bool = ..., timeout: float = ...) -> bool: ... 94 else: 95 def acquire(self, blocking: bool = ...) -> bool: ... 96 def release(self) -> None: ... 97 def locked(self) -> bool: ... 98 99class _RLock: 100 def __init__(self) -> None: ... 101 def __enter__(self) -> bool: ... 102 def __exit__( 103 self, exc_type: Optional[Type[BaseException]], exc_val: Optional[BaseException], exc_tb: Optional[TracebackType] 104 ) -> Optional[bool]: ... 105 if sys.version_info >= (3,): 106 def acquire(self, blocking: bool = ..., timeout: float = ...) -> bool: ... 107 else: 108 def acquire(self, blocking: bool = ...) -> bool: ... 109 def release(self) -> None: ... 110 111RLock = _RLock 112 113class Condition: 114 def __init__(self, lock: Union[Lock, _RLock, None] = ...) -> None: ... 115 def __enter__(self) -> bool: ... 116 def __exit__( 117 self, exc_type: Optional[Type[BaseException]], exc_val: Optional[BaseException], exc_tb: Optional[TracebackType] 118 ) -> Optional[bool]: ... 119 if sys.version_info >= (3,): 120 def acquire(self, blocking: bool = ..., timeout: float = ...) -> bool: ... 121 else: 122 def acquire(self, blocking: bool = ...) -> bool: ... 123 def release(self) -> None: ... 124 def wait(self, timeout: Optional[float] = ...) -> bool: ... 125 if sys.version_info >= (3,): 126 def wait_for(self, predicate: Callable[[], _T], timeout: Optional[float] = ...) -> _T: ... 127 def notify(self, n: int = ...) -> None: ... 128 def notify_all(self) -> None: ... 129 def notifyAll(self) -> None: ... 130 131class Semaphore: 132 def __init__(self, value: int = ...) -> None: ... 133 def __exit__( 134 self, exc_type: Optional[Type[BaseException]], exc_val: Optional[BaseException], exc_tb: Optional[TracebackType] 135 ) -> Optional[bool]: ... 136 if sys.version_info >= (3,): 137 def acquire(self, blocking: bool = ..., timeout: Optional[float] = ...) -> bool: ... 138 def __enter__(self, blocking: bool = ..., timeout: Optional[float] = ...) -> bool: ... 139 else: 140 def acquire(self, blocking: bool = ...) -> bool: ... 141 def __enter__(self, blocking: bool = ...) -> bool: ... 142 if sys.version_info >= (3, 9): 143 def release(self, n: int = ...) -> None: ... 144 else: 145 def release(self) -> None: ... 146 147class BoundedSemaphore(Semaphore): ... 148 149class Event: 150 def __init__(self) -> None: ... 151 def is_set(self) -> bool: ... 152 if sys.version_info < (3,): 153 def isSet(self) -> bool: ... 154 def set(self) -> None: ... 155 def clear(self) -> None: ... 156 def wait(self, timeout: Optional[float] = ...) -> bool: ... 157 158if sys.version_info >= (3, 8): 159 from _thread import _excepthook, _ExceptHookArgs 160 161 excepthook = _excepthook 162 ExceptHookArgs = _ExceptHookArgs 163 164class Timer(Thread): 165 if sys.version_info >= (3,): 166 def __init__( 167 self, 168 interval: float, 169 function: Callable[..., Any], 170 args: Optional[Iterable[Any]] = ..., 171 kwargs: Optional[Mapping[str, Any]] = ..., 172 ) -> None: ... 173 else: 174 def __init__( 175 self, interval: float, function: Callable[..., Any], args: Iterable[Any] = ..., kwargs: Mapping[str, Any] = ... 176 ) -> None: ... 177 def cancel(self) -> None: ... 178 179if sys.version_info >= (3,): 180 class Barrier: 181 parties: int 182 n_waiting: int 183 broken: bool 184 def __init__(self, parties: int, action: Optional[Callable[[], None]] = ..., timeout: Optional[float] = ...) -> None: ... 185 def wait(self, timeout: Optional[float] = ...) -> int: ... 186 def reset(self) -> None: ... 187 def abort(self) -> None: ... 188 class BrokenBarrierError(RuntimeError): ... 189