mirror of
https://github.com/davidhalter/typeshed.git
synced 2025-12-08 13:04:46 +08:00
Improve enums (#3168)
I realized while working on srittau/type-stub-pep#64 that a
few things we do in existing enum definitions in typeshed are
problematic:
- Using "= ..." doesn't allow type checkers to correctly type the
result of Enum.MEMBER.value. In fact, mypy at least infers
.value to be "Ellipsis" if you do this.
- Properties on the enum values themselves, like HTTPStatus.phrase,
should not be specified directly as attributes, because it makes
type checkers think that the properties themselves are enum
members.
I ended up doing a bit more cleanup to the signal module:
- Remove unnecessary ... initializers.
- Remove unnecessary _SIG = Signals alias.
- I don't have Windows to test, but the C code for _signal suggests
that CTRL_C_EVENT and CTRL_BREAK events are not Signals, but just ints:
1dbd084f1f/Modules/signalmodule.c (L1575)
This commit is contained in:
@@ -1,120 +1,118 @@
|
||||
"""Stub file for the 'signal' module."""
|
||||
|
||||
import sys
|
||||
from enum import IntEnum
|
||||
from typing import Any, Callable, List, Tuple, Dict, Generic, Union, Optional, Iterable, Set
|
||||
from typing import Any, Callable, Tuple, Union, Optional, Iterable, Set
|
||||
from types import FrameType
|
||||
|
||||
class ItimerError(IOError): ...
|
||||
|
||||
ITIMER_PROF: int = ...
|
||||
ITIMER_REAL: int = ...
|
||||
ITIMER_VIRTUAL: int = ...
|
||||
ITIMER_PROF: int
|
||||
ITIMER_REAL: int
|
||||
ITIMER_VIRTUAL: int
|
||||
|
||||
NSIG: int = ...
|
||||
NSIG: int
|
||||
|
||||
class Signals(IntEnum):
|
||||
SIGABRT = ...
|
||||
SIGALRM = ...
|
||||
SIGBREAK = ... # Windows
|
||||
SIGBUS = ...
|
||||
SIGCHLD = ...
|
||||
SIGCLD = ...
|
||||
SIGCONT = ...
|
||||
SIGEMT = ...
|
||||
SIGFPE = ...
|
||||
SIGHUP = ...
|
||||
SIGILL = ...
|
||||
SIGINFO = ...
|
||||
SIGINT = ...
|
||||
SIGIO = ...
|
||||
SIGIOT = ...
|
||||
SIGKILL = ...
|
||||
SIGPIPE = ...
|
||||
SIGPOLL = ...
|
||||
SIGPROF = ...
|
||||
SIGPWR = ...
|
||||
SIGQUIT = ...
|
||||
SIGRTMAX = ...
|
||||
SIGRTMIN = ...
|
||||
SIGSEGV = ...
|
||||
SIGSTOP = ...
|
||||
SIGSYS = ...
|
||||
SIGTERM = ...
|
||||
SIGTRAP = ...
|
||||
SIGTSTP = ...
|
||||
SIGTTIN = ...
|
||||
SIGTTOU = ...
|
||||
SIGURG = ...
|
||||
SIGUSR1 = ...
|
||||
SIGUSR2 = ...
|
||||
SIGVTALRM = ...
|
||||
SIGWINCH = ...
|
||||
SIGXCPU = ...
|
||||
SIGXFSZ = ...
|
||||
SIGABRT: int
|
||||
SIGALRM: int
|
||||
SIGBREAK: int # Windows
|
||||
SIGBUS: int
|
||||
SIGCHLD: int
|
||||
SIGCLD: int
|
||||
SIGCONT: int
|
||||
SIGEMT: int
|
||||
SIGFPE: int
|
||||
SIGHUP: int
|
||||
SIGILL: int
|
||||
SIGINFO: int
|
||||
SIGINT: int
|
||||
SIGIO: int
|
||||
SIGIOT: int
|
||||
SIGKILL: int
|
||||
SIGPIPE: int
|
||||
SIGPOLL: int
|
||||
SIGPROF: int
|
||||
SIGPWR: int
|
||||
SIGQUIT: int
|
||||
SIGRTMAX: int
|
||||
SIGRTMIN: int
|
||||
SIGSEGV: int
|
||||
SIGSTOP: int
|
||||
SIGSYS: int
|
||||
SIGTERM: int
|
||||
SIGTRAP: int
|
||||
SIGTSTP: int
|
||||
SIGTTIN: int
|
||||
SIGTTOU: int
|
||||
SIGURG: int
|
||||
SIGUSR1: int
|
||||
SIGUSR2: int
|
||||
SIGVTALRM: int
|
||||
SIGWINCH: int
|
||||
SIGXCPU: int
|
||||
SIGXFSZ: int
|
||||
|
||||
class Handlers(IntEnum):
|
||||
SIG_DFL = ...
|
||||
SIG_IGN = ...
|
||||
SIG_DFL: int
|
||||
SIG_IGN: int
|
||||
|
||||
SIG_DFL = Handlers.SIG_DFL
|
||||
SIG_IGN = Handlers.SIG_IGN
|
||||
|
||||
class Sigmasks(IntEnum):
|
||||
SIG_BLOCK = ...
|
||||
SIG_UNBLOCK = ...
|
||||
SIG_SETMASK = ...
|
||||
SIG_BLOCK: int
|
||||
SIG_UNBLOCK: int
|
||||
SIG_SETMASK: int
|
||||
|
||||
SIG_BLOCK = Sigmasks.SIG_BLOCK
|
||||
SIG_UNBLOCK = Sigmasks.SIG_UNBLOCK
|
||||
SIG_SETMASK = Sigmasks.SIG_SETMASK
|
||||
|
||||
_SIG = Signals
|
||||
_SIGNUM = Union[int, Signals]
|
||||
_HANDLER = Union[Callable[[Signals, FrameType], None], int, Handlers, None]
|
||||
|
||||
SIGABRT: _SIG = ...
|
||||
SIGALRM: _SIG = ...
|
||||
SIGBREAK: _SIG = ... # Windows
|
||||
SIGBUS: _SIG = ...
|
||||
SIGCHLD: _SIG = ...
|
||||
SIGCLD: _SIG = ...
|
||||
SIGCONT: _SIG = ...
|
||||
SIGEMT: _SIG = ...
|
||||
SIGFPE: _SIG = ...
|
||||
SIGHUP: _SIG = ...
|
||||
SIGILL: _SIG = ...
|
||||
SIGINFO: _SIG = ...
|
||||
SIGINT: _SIG = ...
|
||||
SIGIO: _SIG = ...
|
||||
SIGIOT: _SIG = ...
|
||||
SIGKILL: _SIG = ...
|
||||
SIGPIPE: _SIG = ...
|
||||
SIGPOLL: _SIG = ...
|
||||
SIGPROF: _SIG = ...
|
||||
SIGPWR: _SIG = ...
|
||||
SIGQUIT: _SIG = ...
|
||||
SIGRTMAX: _SIG = ...
|
||||
SIGRTMIN: _SIG = ...
|
||||
SIGSEGV: _SIG = ...
|
||||
SIGSTOP: _SIG = ...
|
||||
SIGSYS: _SIG = ...
|
||||
SIGTERM: _SIG = ...
|
||||
SIGTRAP: _SIG = ...
|
||||
SIGTSTP: _SIG = ...
|
||||
SIGTTIN: _SIG = ...
|
||||
SIGTTOU: _SIG = ...
|
||||
SIGURG: _SIG = ...
|
||||
SIGUSR1: _SIG = ...
|
||||
SIGUSR2: _SIG = ...
|
||||
SIGVTALRM: _SIG = ...
|
||||
SIGWINCH: _SIG = ...
|
||||
SIGXCPU: _SIG = ...
|
||||
SIGXFSZ: _SIG = ...
|
||||
SIGABRT: Signals
|
||||
SIGALRM: Signals
|
||||
SIGBREAK: Signals # Windows
|
||||
SIGBUS: Signals
|
||||
SIGCHLD: Signals
|
||||
SIGCLD: Signals
|
||||
SIGCONT: Signals
|
||||
SIGEMT: Signals
|
||||
SIGFPE: Signals
|
||||
SIGHUP: Signals
|
||||
SIGILL: Signals
|
||||
SIGINFO: Signals
|
||||
SIGINT: Signals
|
||||
SIGIO: Signals
|
||||
SIGIOT: Signals
|
||||
SIGKILL: Signals
|
||||
SIGPIPE: Signals
|
||||
SIGPOLL: Signals
|
||||
SIGPROF: Signals
|
||||
SIGPWR: Signals
|
||||
SIGQUIT: Signals
|
||||
SIGRTMAX: Signals
|
||||
SIGRTMIN: Signals
|
||||
SIGSEGV: Signals
|
||||
SIGSTOP: Signals
|
||||
SIGSYS: Signals
|
||||
SIGTERM: Signals
|
||||
SIGTRAP: Signals
|
||||
SIGTSTP: Signals
|
||||
SIGTTIN: Signals
|
||||
SIGTTOU: Signals
|
||||
SIGURG: Signals
|
||||
SIGUSR1: Signals
|
||||
SIGUSR2: Signals
|
||||
SIGVTALRM: Signals
|
||||
SIGWINCH: Signals
|
||||
SIGXCPU: Signals
|
||||
SIGXFSZ: Signals
|
||||
|
||||
# Windows
|
||||
CTRL_C_EVENT: _SIG = ...
|
||||
CTRL_BREAK_EVENT: _SIG = ...
|
||||
CTRL_C_EVENT: int
|
||||
CTRL_BREAK_EVENT: int
|
||||
|
||||
class struct_siginfo(Tuple[int, int, int, int, int, int, int]):
|
||||
def __init__(self, sequence: Iterable[int]) -> None: ...
|
||||
|
||||
Reference in New Issue
Block a user