--- /dev/null
+"""Stub file for the 'signal' module."""\r
+\r
+import sys\r
+from enum import IntEnum\r
+from typing import Any, Callable, List, Tuple, Dict, Generic, Union, Optional, Iterable, Set\r
+from types import FrameType\r
+\r
+class ItimerError(IOError): ...\r
+\r
+ITIMER_PROF: int = ...\r
+ITIMER_REAL: int = ...\r
+ITIMER_VIRTUAL: int = ...\r
+\r
+NSIG: int = ...\r
+\r
+if sys.version_info >= (3, 5):\r
+ class Signals(IntEnum):\r
+ SIGABRT = ...\r
+ SIGALRM = ...\r
+ SIGBREAK = ... # Windows\r
+ SIGBUS = ...\r
+ SIGCHLD = ...\r
+ SIGCLD = ...\r
+ SIGCONT = ...\r
+ SIGEMT = ...\r
+ SIGFPE = ...\r
+ SIGHUP = ...\r
+ SIGILL = ...\r
+ SIGINFO = ...\r
+ SIGINT = ...\r
+ SIGIO = ...\r
+ SIGIOT = ...\r
+ SIGKILL = ...\r
+ SIGPIPE = ...\r
+ SIGPOLL = ...\r
+ SIGPROF = ...\r
+ SIGPWR = ...\r
+ SIGQUIT = ...\r
+ SIGRTMAX = ...\r
+ SIGRTMIN = ...\r
+ SIGSEGV = ...\r
+ SIGSTOP = ...\r
+ SIGSYS = ...\r
+ SIGTERM = ...\r
+ SIGTRAP = ...\r
+ SIGTSTP = ...\r
+ SIGTTIN = ...\r
+ SIGTTOU = ...\r
+ SIGURG = ...\r
+ SIGUSR1 = ...\r
+ SIGUSR2 = ...\r
+ SIGVTALRM = ...\r
+ SIGWINCH = ...\r
+ SIGXCPU = ...\r
+ SIGXFSZ = ...\r
+\r
+ class Handlers(IntEnum):\r
+ SIG_DFL = ...\r
+ SIG_IGN = ...\r
+\r
+ SIG_DFL = Handlers.SIG_DFL\r
+ SIG_IGN = Handlers.SIG_IGN\r
+\r
+ class Sigmasks(IntEnum):\r
+ SIG_BLOCK = ...\r
+ SIG_UNBLOCK = ...\r
+ SIG_SETMASK = ...\r
+\r
+ SIG_BLOCK = Sigmasks.SIG_BLOCK\r
+ SIG_UNBLOCK = Sigmasks.SIG_UNBLOCK\r
+ SIG_SETMASK = Sigmasks.SIG_SETMASK\r
+\r
+ _SIG = Signals\r
+ _SIGNUM = Union[int, Signals]\r
+ _HANDLER = Union[Callable[[Signals, FrameType], None], int, Handlers, None]\r
+else:\r
+ SIG_DFL: int = ...\r
+ SIG_IGN: int = ...\r
+\r
+ SIG_BLOCK: int = ...\r
+ SIG_UNBLOCK: int = ...\r
+ SIG_SETMASK: int = ...\r
+\r
+ _SIG = int\r
+ _SIGNUM = int\r
+ _HANDLER = Union[Callable[[int, FrameType], None], int, None]\r
+\r
+SIGABRT: _SIG = ...\r
+SIGALRM: _SIG = ...\r
+SIGBREAK: _SIG = ... # Windows\r
+SIGBUS: _SIG = ...\r
+SIGCHLD: _SIG = ...\r
+SIGCLD: _SIG = ...\r
+SIGCONT: _SIG = ...\r
+SIGEMT: _SIG = ...\r
+SIGFPE: _SIG = ...\r
+SIGHUP: _SIG = ...\r
+SIGILL: _SIG = ...\r
+SIGINFO: _SIG = ...\r
+SIGINT: _SIG = ...\r
+SIGIO: _SIG = ...\r
+SIGIOT: _SIG = ...\r
+SIGKILL: _SIG = ...\r
+SIGPIPE: _SIG = ...\r
+SIGPOLL: _SIG = ...\r
+SIGPROF: _SIG = ...\r
+SIGPWR: _SIG = ...\r
+SIGQUIT: _SIG = ...\r
+SIGRTMAX: _SIG = ...\r
+SIGRTMIN: _SIG = ...\r
+SIGSEGV: _SIG = ...\r
+SIGSTOP: _SIG = ...\r
+SIGSYS: _SIG = ...\r
+SIGTERM: _SIG = ...\r
+SIGTRAP: _SIG = ...\r
+SIGTSTP: _SIG = ...\r
+SIGTTIN: _SIG = ...\r
+SIGTTOU: _SIG = ...\r
+SIGURG: _SIG = ...\r
+SIGUSR1: _SIG = ...\r
+SIGUSR2: _SIG = ...\r
+SIGVTALRM: _SIG = ...\r
+SIGWINCH: _SIG = ...\r
+SIGXCPU: _SIG = ...\r
+SIGXFSZ: _SIG = ...\r
+\r
+# Windows\r
+CTRL_C_EVENT: _SIG = ...\r
+CTRL_BREAK_EVENT: _SIG = ...\r
+\r
+class struct_siginfo(Tuple[int, int, int, int, int, int, int]):\r
+ def __init__(self, sequence: Iterable[int]) -> None: ...\r
+ @property\r
+ def si_signo(self) -> int: ...\r
+ @property\r
+ def si_code(self) -> int: ...\r
+ @property\r
+ def si_errno(self) -> int: ...\r
+ @property\r
+ def si_pid(self) -> int: ...\r
+ @property\r
+ def si_uid(self) -> int: ...\r
+ @property\r
+ def si_status(self) -> int: ...\r
+ @property\r
+ def si_band(self) -> int: ...\r
+\r
+def alarm(time: int) -> int: ...\r
+\r
+def default_int_handler(signum: int, frame: FrameType) -> None:\r
+ raise KeyboardInterrupt()\r
+\r
+def getitimer(which: int) -> Tuple[float, float]: ...\r
+\r
+def getsignal(signalnum: _SIGNUM) -> _HANDLER:\r
+ raise ValueError()\r
+\r
+def pause() -> None: ...\r
+\r
+def pthread_kill(thread_id: int, signum: int) -> None:\r
+ raise OSError()\r
+\r
+def pthread_sigmask(how: int, mask: Iterable[int]) -> Set[_SIGNUM]:\r
+ raise OSError()\r
+\r
+def set_wakeup_fd(fd: int) -> int: ...\r
+\r
+def setitimer(which: int, seconds: float, interval: float = ...) -> Tuple[float, float]: ...\r
+\r
+def siginterrupt(signalnum: int, flag: bool) -> None:\r
+ raise OSError()\r
+\r
+def signal(signalnum: _SIGNUM, handler: _HANDLER) -> _HANDLER:\r
+ raise OSError()\r
+\r
+def sigpending() -> Any:\r
+ raise OSError()\r
+\r
+def sigtimedwait(sigset: Iterable[int], timeout: float) -> Optional[struct_siginfo]:\r
+ raise OSError()\r
+ raise ValueError()\r
+\r
+def sigwait(sigset: Iterable[int]) -> _SIGNUM:\r
+ raise OSError()\r
+\r
+def sigwaitinfo(sigset: Iterable[int]) -> struct_siginfo:\r
+ raise OSError()\r