mirror of
https://github.com/davidhalter/typeshed.git
synced 2025-12-06 20:24:30 +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:
@@ -10,8 +10,8 @@ if sys.version_info >= (3,):
|
||||
from enum import Enum
|
||||
|
||||
class PlistFormat(Enum):
|
||||
FMT_XML = ...
|
||||
FMT_BINARY = ...
|
||||
FMT_XML: int
|
||||
FMT_BINARY: int
|
||||
FMT_XML = PlistFormat.FMT_XML
|
||||
FMT_BINARY = PlistFormat.FMT_BINARY
|
||||
|
||||
|
||||
@@ -411,45 +411,45 @@ if sys.version_info >= (3, 4):
|
||||
from enum import IntEnum
|
||||
|
||||
class AddressFamily(IntEnum):
|
||||
AF_UNIX = ...
|
||||
AF_INET = ...
|
||||
AF_INET6 = ...
|
||||
AF_APPLETALK = ...
|
||||
AF_ASH = ...
|
||||
AF_ATMPVC = ...
|
||||
AF_ATMSVC = ...
|
||||
AF_AX25 = ...
|
||||
AF_BLUETOOTH = ...
|
||||
AF_BRIDGE = ...
|
||||
AF_DECnet = ...
|
||||
AF_ECONET = ...
|
||||
AF_IPX = ...
|
||||
AF_IRDA = ...
|
||||
AF_KEY = ...
|
||||
AF_LLC = ...
|
||||
AF_NETBEUI = ...
|
||||
AF_NETLINK = ...
|
||||
AF_NETROM = ...
|
||||
AF_PACKET = ...
|
||||
AF_PPPOX = ...
|
||||
AF_ROSE = ...
|
||||
AF_ROUTE = ...
|
||||
AF_SECURITY = ...
|
||||
AF_SNA = ...
|
||||
AF_TIPC = ...
|
||||
AF_UNSPEC = ...
|
||||
AF_WANPIPE = ...
|
||||
AF_X25 = ...
|
||||
AF_LINK = ...
|
||||
AF_UNIX: int
|
||||
AF_INET: int
|
||||
AF_INET6: int
|
||||
AF_APPLETALK: int
|
||||
AF_ASH: int
|
||||
AF_ATMPVC: int
|
||||
AF_ATMSVC: int
|
||||
AF_AX25: int
|
||||
AF_BLUETOOTH: int
|
||||
AF_BRIDGE: int
|
||||
AF_DECnet: int
|
||||
AF_ECONET: int
|
||||
AF_IPX: int
|
||||
AF_IRDA: int
|
||||
AF_KEY: int
|
||||
AF_LLC: int
|
||||
AF_NETBEUI: int
|
||||
AF_NETLINK: int
|
||||
AF_NETROM: int
|
||||
AF_PACKET: int
|
||||
AF_PPPOX: int
|
||||
AF_ROSE: int
|
||||
AF_ROUTE: int
|
||||
AF_SECURITY: int
|
||||
AF_SNA: int
|
||||
AF_TIPC: int
|
||||
AF_UNSPEC: int
|
||||
AF_WANPIPE: int
|
||||
AF_X25: int
|
||||
AF_LINK: int
|
||||
|
||||
class SocketKind(IntEnum):
|
||||
SOCK_STREAM = ...
|
||||
SOCK_DGRAM = ...
|
||||
SOCK_RAW = ...
|
||||
SOCK_RDM = ...
|
||||
SOCK_SEQPACKET = ...
|
||||
SOCK_CLOEXEC = ...
|
||||
SOCK_NONBLOCK = ...
|
||||
SOCK_STREAM: int
|
||||
SOCK_DGRAM: int
|
||||
SOCK_RAW: int
|
||||
SOCK_RDM: int
|
||||
SOCK_SEQPACKET: int
|
||||
SOCK_CLOEXEC: int
|
||||
SOCK_NONBLOCK: int
|
||||
else:
|
||||
AddressFamily = int
|
||||
SocketKind = int
|
||||
@@ -458,23 +458,23 @@ if sys.version_info >= (3, 6):
|
||||
from enum import IntFlag
|
||||
|
||||
class AddressInfo(IntFlag):
|
||||
AI_ADDRCONFIG = ...
|
||||
AI_ALL = ...
|
||||
AI_CANONNAME = ...
|
||||
AI_NUMERICHOST = ...
|
||||
AI_NUMERICSERV = ...
|
||||
AI_PASSIVE = ...
|
||||
AI_V4MAPPED = ...
|
||||
AI_ADDRCONFIG: int
|
||||
AI_ALL: int
|
||||
AI_CANONNAME: int
|
||||
AI_NUMERICHOST: int
|
||||
AI_NUMERICSERV: int
|
||||
AI_PASSIVE: int
|
||||
AI_V4MAPPED: int
|
||||
|
||||
class MsgFlag(IntFlag):
|
||||
MSG_CTRUNC = ...
|
||||
MSG_DONTROUTE = ...
|
||||
MSG_DONTWAIT = ...
|
||||
MSG_EOR = ...
|
||||
MSG_OOB = ...
|
||||
MSG_PEEK = ...
|
||||
MSG_TRUNC = ...
|
||||
MSG_WAITALL = ...
|
||||
MSG_CTRUNC: int
|
||||
MSG_DONTROUTE: int
|
||||
MSG_DONTWAIT: int
|
||||
MSG_EOR: int
|
||||
MSG_OOB: int
|
||||
MSG_PEEK: int
|
||||
MSG_TRUNC: int
|
||||
MSG_WAITALL: int
|
||||
else:
|
||||
AddressInfo = int
|
||||
MsgFlag = int
|
||||
|
||||
@@ -1,67 +1,65 @@
|
||||
import sys
|
||||
|
||||
from enum import IntEnum
|
||||
|
||||
class HTTPStatus(IntEnum):
|
||||
def __init__(self, *a) -> None: ...
|
||||
@property
|
||||
def phrase(self) -> str: ...
|
||||
@property
|
||||
def description(self) -> str: ...
|
||||
|
||||
phrase: str
|
||||
description: str
|
||||
|
||||
CONTINUE = ...
|
||||
SWITCHING_PROTOCOLS = ...
|
||||
PROCESSING = ...
|
||||
OK = ...
|
||||
CREATED = ...
|
||||
ACCEPTED = ...
|
||||
NON_AUTHORITATIVE_INFORMATION = ...
|
||||
NO_CONTENT = ...
|
||||
RESET_CONTENT = ...
|
||||
PARTIAL_CONTENT = ...
|
||||
MULTI_STATUS = ...
|
||||
ALREADY_REPORTED = ...
|
||||
IM_USED = ...
|
||||
MULTIPLE_CHOICES = ...
|
||||
MOVED_PERMANENTLY = ...
|
||||
FOUND = ...
|
||||
SEE_OTHER = ...
|
||||
NOT_MODIFIED = ...
|
||||
USE_PROXY = ...
|
||||
TEMPORARY_REDIRECT = ...
|
||||
PERMANENT_REDIRECT = ...
|
||||
BAD_REQUEST = ...
|
||||
UNAUTHORIZED = ...
|
||||
PAYMENT_REQUIRED = ...
|
||||
FORBIDDEN = ...
|
||||
NOT_FOUND = ...
|
||||
METHOD_NOT_ALLOWED = ...
|
||||
NOT_ACCEPTABLE = ...
|
||||
PROXY_AUTHENTICATION_REQUIRED = ...
|
||||
REQUEST_TIMEOUT = ...
|
||||
CONFLICT = ...
|
||||
GONE = ...
|
||||
LENGTH_REQUIRED = ...
|
||||
PRECONDITION_FAILED = ...
|
||||
REQUEST_ENTITY_TOO_LARGE = ...
|
||||
REQUEST_URI_TOO_LONG = ...
|
||||
UNSUPPORTED_MEDIA_TYPE = ...
|
||||
REQUESTED_RANGE_NOT_SATISFIABLE = ...
|
||||
EXPECTATION_FAILED = ...
|
||||
UNPROCESSABLE_ENTITY = ...
|
||||
LOCKED = ...
|
||||
FAILED_DEPENDENCY = ...
|
||||
UPGRADE_REQUIRED = ...
|
||||
PRECONDITION_REQUIRED = ...
|
||||
TOO_MANY_REQUESTS = ...
|
||||
REQUEST_HEADER_FIELDS_TOO_LARGE = ...
|
||||
INTERNAL_SERVER_ERROR = ...
|
||||
NOT_IMPLEMENTED = ...
|
||||
BAD_GATEWAY = ...
|
||||
SERVICE_UNAVAILABLE = ...
|
||||
GATEWAY_TIMEOUT = ...
|
||||
HTTP_VERSION_NOT_SUPPORTED = ...
|
||||
VARIANT_ALSO_NEGOTIATES = ...
|
||||
INSUFFICIENT_STORAGE = ...
|
||||
LOOP_DETECTED = ...
|
||||
NOT_EXTENDED = ...
|
||||
NETWORK_AUTHENTICATION_REQUIRED = ...
|
||||
CONTINUE: int
|
||||
SWITCHING_PROTOCOLS: int
|
||||
PROCESSING: int
|
||||
OK: int
|
||||
CREATED: int
|
||||
ACCEPTED: int
|
||||
NON_AUTHORITATIVE_INFORMATION: int
|
||||
NO_CONTENT: int
|
||||
RESET_CONTENT: int
|
||||
PARTIAL_CONTENT: int
|
||||
MULTI_STATUS: int
|
||||
ALREADY_REPORTED: int
|
||||
IM_USED: int
|
||||
MULTIPLE_CHOICES: int
|
||||
MOVED_PERMANENTLY: int
|
||||
FOUND: int
|
||||
SEE_OTHER: int
|
||||
NOT_MODIFIED: int
|
||||
USE_PROXY: int
|
||||
TEMPORARY_REDIRECT: int
|
||||
PERMANENT_REDIRECT: int
|
||||
BAD_REQUEST: int
|
||||
UNAUTHORIZED: int
|
||||
PAYMENT_REQUIRED: int
|
||||
FORBIDDEN: int
|
||||
NOT_FOUND: int
|
||||
METHOD_NOT_ALLOWED: int
|
||||
NOT_ACCEPTABLE: int
|
||||
PROXY_AUTHENTICATION_REQUIRED: int
|
||||
REQUEST_TIMEOUT: int
|
||||
CONFLICT: int
|
||||
GONE: int
|
||||
LENGTH_REQUIRED: int
|
||||
PRECONDITION_FAILED: int
|
||||
REQUEST_ENTITY_TOO_LARGE: int
|
||||
REQUEST_URI_TOO_LONG: int
|
||||
UNSUPPORTED_MEDIA_TYPE: int
|
||||
REQUESTED_RANGE_NOT_SATISFIABLE: int
|
||||
EXPECTATION_FAILED: int
|
||||
UNPROCESSABLE_ENTITY: int
|
||||
LOCKED: int
|
||||
FAILED_DEPENDENCY: int
|
||||
UPGRADE_REQUIRED: int
|
||||
PRECONDITION_REQUIRED: int
|
||||
TOO_MANY_REQUESTS: int
|
||||
REQUEST_HEADER_FIELDS_TOO_LARGE: int
|
||||
INTERNAL_SERVER_ERROR: int
|
||||
NOT_IMPLEMENTED: int
|
||||
BAD_GATEWAY: int
|
||||
SERVICE_UNAVAILABLE: int
|
||||
GATEWAY_TIMEOUT: int
|
||||
HTTP_VERSION_NOT_SUPPORTED: int
|
||||
VARIANT_ALSO_NEGOTIATES: int
|
||||
INSUFFICIENT_STORAGE: int
|
||||
LOOP_DETECTED: int
|
||||
NOT_EXTENDED: int
|
||||
NETWORK_AUTHENTICATION_REQUIRED: int
|
||||
|
||||
@@ -7,31 +7,31 @@
|
||||
|
||||
import sys
|
||||
from typing import (
|
||||
List, Iterator, overload, Callable, Tuple, Sequence, Dict,
|
||||
Generic, AnyStr, Match, Pattern, Any, Optional, Union
|
||||
List, Iterator, overload, Callable, Tuple,
|
||||
AnyStr, Match, Pattern, Any, Optional, Union
|
||||
)
|
||||
|
||||
# ----- re variables and constants -----
|
||||
if sys.version_info >= (3, 6):
|
||||
import enum
|
||||
class RegexFlag(enum.IntFlag):
|
||||
A = 0
|
||||
ASCII = 0
|
||||
DEBUG = 0
|
||||
I = 0
|
||||
IGNORECASE = 0
|
||||
L = 0
|
||||
LOCALE = 0
|
||||
M = 0
|
||||
MULTILINE = 0
|
||||
S = 0
|
||||
DOTALL = 0
|
||||
X = 0
|
||||
VERBOSE = 0
|
||||
U = 0
|
||||
UNICODE = 0
|
||||
T = 0
|
||||
TEMPLATE = 0
|
||||
A: int
|
||||
ASCII: int
|
||||
DEBUG: int
|
||||
I: int
|
||||
IGNORECASE: int
|
||||
L: int
|
||||
LOCALE: int
|
||||
M: int
|
||||
MULTILINE: int
|
||||
S: int
|
||||
DOTALL: int
|
||||
X: int
|
||||
VERBOSE: int
|
||||
U: int
|
||||
UNICODE: int
|
||||
T: int
|
||||
TEMPLATE: int
|
||||
|
||||
A = RegexFlag.A
|
||||
ASCII = RegexFlag.ASCII
|
||||
@@ -52,23 +52,23 @@ if sys.version_info >= (3, 6):
|
||||
TEMPLATE = RegexFlag.TEMPLATE
|
||||
_FlagsType = Union[int, RegexFlag]
|
||||
else:
|
||||
A = 0
|
||||
ASCII = 0
|
||||
DEBUG = 0
|
||||
I = 0
|
||||
IGNORECASE = 0
|
||||
L = 0
|
||||
LOCALE = 0
|
||||
M = 0
|
||||
MULTILINE = 0
|
||||
S = 0
|
||||
DOTALL = 0
|
||||
X = 0
|
||||
VERBOSE = 0
|
||||
U = 0
|
||||
UNICODE = 0
|
||||
T = 0
|
||||
TEMPLATE = 0
|
||||
A: int
|
||||
ASCII: int
|
||||
DEBUG: int
|
||||
I: int
|
||||
IGNORECASE: int
|
||||
L: int
|
||||
LOCALE: int
|
||||
M: int
|
||||
MULTILINE: int
|
||||
S: int
|
||||
DOTALL: int
|
||||
X: int
|
||||
VERBOSE: int
|
||||
U: int
|
||||
UNICODE: int
|
||||
T: int
|
||||
TEMPLATE: int
|
||||
_FlagsType = int
|
||||
|
||||
if sys.version_info < (3, 7):
|
||||
|
||||
@@ -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