Overhaul socket stubs on Windows and MacOS (#8106)

Reduce the `socket` allowlists for these platforms to a handful of missing constants
This commit is contained in:
Alex Waygood
2022-06-20 20:11:50 +01:00
committed by GitHub
parent 6a64e69054
commit c6de37df53
7 changed files with 494 additions and 355 deletions

View File

@@ -30,8 +30,6 @@ _RetAddress: TypeAlias = Any
has_ipv6: bool
# Per socketmodule.c, only these three families are portable
AF_UNIX: int
AF_INET: int
AF_INET6: int
@@ -46,58 +44,56 @@ if sys.platform == "linux":
SOCK_NONBLOCK: int
# Address families not mentioned in the docs
AF_AAL5: int
AF_APPLETALK: int
AF_ASH: int
AF_ATMPVC: int
AF_ATMSVC: int
AF_AX25: 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_NETROM: int
AF_PPPOX: int
AF_ROSE: int
AF_ROUTE: int
AF_SECURITY: int
AF_SNA: int
AF_SYSTEM: int
AF_UNSPEC: int
AF_WANPIPE: int
AF_X25: int
if sys.platform != "win32":
AF_ROUTE: int
AF_SYSTEM: int
AF_UNIX: int
if sys.platform != "darwin":
AF_IRDA: int
if sys.platform != "darwin" and sys.platform != "win32":
AF_AAL5: int
AF_ASH: int
AF_ATMPVC: int
AF_ATMSVC: int
AF_AX25: int
AF_BRIDGE: int
AF_ECONET: int
AF_KEY: int
AF_LLC: int
AF_NETBEUI: int
AF_NETROM: int
AF_PPPOX: int
AF_ROSE: int
AF_SECURITY: int
AF_WANPIPE: int
AF_X25: int
# The "many constants" referenced by the docs
SOMAXCONN: int
AI_ADDRCONFIG: int
AI_ALL: int
AI_CANONNAME: int
AI_DEFAULT: int
AI_MASK: int
AI_NUMERICHOST: int
AI_NUMERICSERV: int
AI_PASSIVE: int
AI_V4MAPPED: int
AI_V4MAPPED_CFG: int
EAI_ADDRFAMILY: int
EAI_AGAIN: int
EAI_BADFLAGS: int
EAI_BADHINTS: int
EAI_FAIL: int
EAI_FAMILY: int
EAI_MAX: int
EAI_MEMORY: int
EAI_NODATA: int
EAI_NONAME: int
EAI_OVERFLOW: int
EAI_PROTOCOL: int
EAI_SERVICE: int
EAI_SOCKTYPE: int
EAI_SYSTEM: int
INADDR_ALLHOSTS_GROUP: int
INADDR_ANY: int
INADDR_BROADCAST: int
@@ -107,103 +103,82 @@ INADDR_NONE: int
INADDR_UNSPEC_GROUP: int
IPPORT_RESERVED: int
IPPORT_USERRESERVED: int
IPPROTO_AH: int
IPPROTO_BIP: int
IPPROTO_DSTOPTS: int
IPPROTO_EGP: int
IPPROTO_EON: int
IPPROTO_ESP: int
IPPROTO_FRAGMENT: int
IPPROTO_GGP: int
IPPROTO_GRE: int
IPPROTO_HELLO: int
IPPROTO_HOPOPTS: int
if sys.platform != "win32" or sys.version_info >= (3, 8):
IPPROTO_AH: int
IPPROTO_DSTOPTS: int
IPPROTO_EGP: int
IPPROTO_ESP: int
IPPROTO_FRAGMENT: int
IPPROTO_GGP: int
IPPROTO_HOPOPTS: int
IPPROTO_ICMPV6: int
IPPROTO_IDP: int
IPPROTO_IGMP: int
IPPROTO_IPV4: int
IPPROTO_IPV6: int
IPPROTO_MAX: int
IPPROTO_ND: int
IPPROTO_NONE: int
IPPROTO_PIM: int
IPPROTO_PUP: int
IPPROTO_ROUTING: int
IPPROTO_SCTP: int
if sys.platform != "darwin":
IPPROTO_CBT: int
IPPROTO_ICLFXBM: int
IPPROTO_IGP: int
IPPROTO_L2TP: int
IPPROTO_PGM: int
IPPROTO_RDP: int
IPPROTO_ST: int
IPPROTO_ICMP: int
IPPROTO_ICMPV6: int
IPPROTO_IDP: int
IPPROTO_IGMP: int
IPPROTO_IP: int
IPPROTO_IPCOMP: int
IPPROTO_IPIP: int
IPPROTO_IPV4: int
IPPROTO_IPV6: int
IPPROTO_MAX: int
IPPROTO_MOBILE: int
IPPROTO_ND: int
IPPROTO_NONE: int
IPPROTO_PIM: int
IPPROTO_PUP: int
IPPROTO_RAW: int
IPPROTO_ROUTING: int
IPPROTO_RSVP: int
IPPROTO_SCTP: int
IPPROTO_TCP: int
IPPROTO_TP: int
IPPROTO_UDP: int
IPPROTO_VRRP: int
IPPROTO_XTP: int
IPV6_CHECKSUM: int
IPV6_DONTFRAG: int
IPV6_DSTOPTS: int
IPV6_HOPLIMIT: int
IPV6_HOPOPTS: int
IPV6_JOIN_GROUP: int
IPV6_LEAVE_GROUP: int
IPV6_MULTICAST_HOPS: int
IPV6_MULTICAST_IF: int
IPV6_MULTICAST_LOOP: int
IPV6_NEXTHOP: int
IPV6_PATHMTU: int
IPV6_PKTINFO: int
IPV6_RECVDSTOPTS: int
IPV6_RECVHOPLIMIT: int
IPV6_RECVHOPOPTS: int
IPV6_RECVPATHMTU: int
IPV6_RECVPKTINFO: int
IPV6_RECVRTHDR: int
IPV6_RECVTCLASS: int
IPV6_RTHDR: int
IPV6_RTHDRDSTOPTS: int
IPV6_RTHDR_TYPE_0: int
IPV6_TCLASS: int
IPV6_UNICAST_HOPS: int
IPV6_USE_MIN_MTU: int
IPV6_V6ONLY: int
IPX_TYPE: int
if sys.platform != "darwin" or sys.version_info >= (3, 9):
IPV6_DONTFRAG: int
IPV6_HOPLIMIT: int
IPV6_HOPOPTS: int
IPV6_PKTINFO: int
IPV6_RECVRTHDR: int
IPV6_RTHDR: int
IP_ADD_MEMBERSHIP: int
IP_DEFAULT_MULTICAST_LOOP: int
IP_DEFAULT_MULTICAST_TTL: int
IP_DROP_MEMBERSHIP: int
IP_HDRINCL: int
IP_MAX_MEMBERSHIPS: int
IP_MULTICAST_IF: int
IP_MULTICAST_LOOP: int
IP_MULTICAST_TTL: int
IP_OPTIONS: int
IP_RECVDSTADDR: int
IP_RECVOPTS: int
IP_RECVRETOPTS: int
IP_RETOPTS: int
if sys.version_info >= (3, 10):
IP_RECVTOS: int
elif sys.platform != "win32" and sys.platform != "darwin":
IP_RECVTOS: int
IP_TOS: int
IP_TRANSPARENT: int
IP_TTL: int
LOCAL_PEERCRED: int
MSG_BCAST: int
MSG_BTAG: int
MSG_CMSG_CLOEXEC: int
MSG_CONFIRM: int
MSG_CTRUNC: int
MSG_DONTROUTE: int
MSG_DONTWAIT: int
MSG_EOF: int
MSG_EOR: int
MSG_ERRQUEUE: int
MSG_ETAG: int
MSG_FASTOPEN: int
MSG_MCAST: int
MSG_MORE: int
MSG_NOSIGNAL: int
MSG_NOTIFICATION: int
if sys.platform != "darwin":
if sys.platform != "win32" or sys.version_info >= (3, 7):
MSG_ERRQUEUE: int
MSG_OOB: int
MSG_PEEK: int
MSG_TRUNC: int
@@ -215,42 +190,25 @@ NI_NAMEREQD: int
NI_NOFQDN: int
NI_NUMERICHOST: int
NI_NUMERICSERV: int
SCM_CREDENTIALS: int
SCM_CREDS: int
SCM_RIGHTS: int
SHUT_RD: int
SHUT_RDWR: int
SHUT_WR: int
SOL_ATALK: int
SOL_AX25: int
SOL_HCI: int
SOL_IP: int
SOL_IPX: int
SOL_NETROM: int
SOL_ROSE: int
SOL_SOCKET: int
SOL_TCP: int
SOL_UDP: int
SO_ACCEPTCONN: int
SO_BINDTODEVICE: int
SO_BROADCAST: int
SO_DEBUG: int
SO_DONTROUTE: int
SO_ERROR: int
SO_EXCLUSIVEADDRUSE: int
SO_KEEPALIVE: int
SO_LINGER: int
SO_MARK: int
SO_OOBINLINE: int
SO_PASSCRED: int
SO_PEERCRED: int
SO_PRIORITY: int
SO_RCVBUF: int
SO_RCVLOWAT: int
SO_RCVTIMEO: int
SO_REUSEADDR: int
SO_REUSEPORT: int
SO_SETFIB: int
SO_SNDBUF: int
SO_SNDLOWAT: int
SO_SNDTIMEO: int
@@ -258,26 +216,109 @@ SO_TYPE: int
SO_USELOOPBACK: int
if sys.platform == "linux" and sys.version_info >= (3, 11):
SO_INCOMING_CPU: int
TCP_CORK: int
TCP_DEFER_ACCEPT: int
TCP_FASTOPEN: int
TCP_INFO: int
TCP_KEEPCNT: int
TCP_KEEPIDLE: int
TCP_KEEPINTVL: int
TCP_LINGER2: int
if sys.platform != "win32" or sys.version_info >= (3, 7):
TCP_KEEPINTVL: int
if sys.platform != "darwin":
TCP_KEEPIDLE: int
TCP_MAXSEG: int
TCP_NODELAY: int
TCP_QUICKACK: int
TCP_SYNCNT: int
TCP_WINDOW_CLAMP: int
if sys.version_info >= (3, 7):
if sys.version_info >= (3, 7) and sys.platform != "win32":
TCP_NOTSENT_LOWAT: int
if sys.version_info >= (3, 10) and sys.platform == "darwin":
TCP_KEEPALIVE: int
if sys.version_info >= (3, 11) and sys.platform == "darwin":
TCP_CONNECTION_INFO: int
if sys.platform != "darwin":
MSG_BCAST: int
MSG_MCAST: int
SO_EXCLUSIVEADDRUSE: int
if sys.platform != "win32":
AI_DEFAULT: int
AI_MASK: int
AI_V4MAPPED_CFG: int
EAI_ADDRFAMILY: int
EAI_BADHINTS: int
EAI_MAX: int
EAI_OVERFLOW: int
EAI_PROTOCOL: int
EAI_SYSTEM: int
IPPROTO_EON: int
IPPROTO_GRE: int
IPPROTO_HELLO: int
IPPROTO_IPCOMP: int
IPPROTO_IPIP: int
IPPROTO_RSVP: int
IPPROTO_TP: int
IPPROTO_XTP: int
IPV6_RTHDR_TYPE_0: int
IP_DEFAULT_MULTICAST_LOOP: int
IP_DEFAULT_MULTICAST_TTL: int
IP_MAX_MEMBERSHIPS: int
IP_RECVOPTS: int
IP_RECVRETOPTS: int
IP_RETOPTS: int
LOCAL_PEERCRED: int
MSG_DONTWAIT: int
MSG_EOF: int
MSG_EOR: int
MSG_NOSIGNAL: int # Sometimes this exists on darwin, sometimes not
SCM_CREDS: int
SCM_RIGHTS: int
SO_REUSEPORT: int
if sys.platform != "win32":
if sys.platform != "darwin" or sys.version_info >= (3, 9):
IPV6_DSTOPTS: int
IPV6_NEXTHOP: int
IPV6_PATHMTU: int
IPV6_RECVDSTOPTS: int
IPV6_RECVHOPLIMIT: int
IPV6_RECVHOPOPTS: int
IPV6_RECVPATHMTU: int
IPV6_RECVPKTINFO: int
IPV6_RTHDRDSTOPTS: int
IPV6_USE_MIN_MTU: int
if sys.platform != "win32" and sys.platform != "darwin":
IPPROTO_BIP: int
IPPROTO_MOBILE: int
IPPROTO_VRRP: int
IPX_TYPE: int
IP_TRANSPARENT: int
MSG_BTAG: int
MSG_CMSG_CLOEXEC: int
MSG_CONFIRM: int
MSG_ETAG: int
MSG_FASTOPEN: int
MSG_MORE: int
MSG_NOTIFICATION: int
SCM_CREDENTIALS: int
SOL_ATALK: int
SOL_AX25: int
SOL_HCI: int
SOL_IPX: int
SOL_NETROM: int
SOL_ROSE: int
SO_BINDTODEVICE: int
SO_MARK: int
SO_PASSCRED: int
SO_PEERCRED: int
SO_PRIORITY: int
SO_SETFIB: int
TCP_CORK: int
TCP_DEFER_ACCEPT: int
TCP_INFO: int
TCP_LINGER2: int
TCP_QUICKACK: int
TCP_SYNCNT: int
TCP_WINDOW_CLAMP: int
# Specifically-documented constants
if sys.platform == "linux":
@@ -404,7 +445,6 @@ if sys.platform == "win32":
SIO_RCVALL: int
SIO_KEEPALIVE_VALS: int
SIO_LOOPBACK_FAST_PATH: int
RCVALL_IPLEVEL: int
RCVALL_MAX: int
RCVALL_OFF: int
RCVALL_ON: int
@@ -462,16 +502,18 @@ if sys.platform == "linux" and sys.version_info >= (3, 7):
SO_VM_SOCKETS_BUFFER_MIN_SIZE: int
VM_SOCKETS_INVALID_VERSION: int
AF_LINK: int # Availability: BSD, macOS
if sys.platform != "win32" or sys.version_info >= (3, 9):
AF_LINK: int
# BDADDR_* and HCI_* listed with other bluetooth constants below
SO_DOMAIN: int
SO_PASSSEC: int
SO_PEERSEC: int
SO_PROTOCOL: int
TCP_CONGESTION: int
TCP_USER_TIMEOUT: int
if sys.platform != "win32" and sys.platform != "darwin":
SO_DOMAIN: int
SO_PASSSEC: int
SO_PEERSEC: int
SO_PROTOCOL: int
TCP_CONGESTION: int
TCP_USER_TIMEOUT: int
if sys.platform == "linux" and sys.version_info >= (3, 8):
AF_QIPCRTR: int
@@ -497,18 +539,19 @@ if sys.platform == "linux":
NETLINK_W1: int
NETLINK_XFRM: int
if sys.platform != "darwin":
if sys.platform != "win32" or sys.version_info >= (3, 9):
AF_BLUETOOTH: int
BDADDR_ANY: str
BDADDR_LOCAL: str
BTPROTO_RFCOMM: int
if sys.platform != "win32" and sys.platform != "darwin":
# Linux and some BSD support is explicit in the docs
# Windows and macOS do not support in practice
AF_BLUETOOTH: int
BTPROTO_HCI: int
BTPROTO_L2CAP: int
BTPROTO_RFCOMM: int
BTPROTO_SCO: int # not in FreeBSD
BDADDR_ANY: str
BDADDR_LOCAL: str
HCI_FILTER: int # not in NetBSD or DragonFlyBSD
# not in FreeBSD, NetBSD, or DragonFlyBSD
HCI_TIME_STAMP: int
@@ -637,14 +680,14 @@ def inet_aton(__ip_string: str) -> bytes: ... # ret val 4 bytes in length
def inet_ntoa(__packed_ip: bytes) -> str: ...
def inet_pton(__address_family: int, __ip_string: str) -> bytes: ...
def inet_ntop(__address_family: int, __packed_ip: bytes) -> str: ...
def CMSG_LEN(__length: int) -> int: ...
def CMSG_SPACE(__length: int) -> int: ...
def getdefaulttimeout() -> float | None: ...
def setdefaulttimeout(__timeout: float | None) -> None: ...
def socketpair(__family: int = ..., __type: int = ..., __proto: int = ...) -> tuple[socket, socket]: ...
if sys.platform != "win32":
def sethostname(__name: str) -> None: ...
def CMSG_LEN(__length: int) -> int: ...
def CMSG_SPACE(__length: int) -> int: ...
def socketpair(__family: int = ..., __type: int = ..., __proto: int = ...) -> tuple[socket, socket]: ...
# Windows added these in 3.8, but didn't have them before
if sys.platform != "win32" or sys.version_info >= (3, 8):

View File

@@ -12,21 +12,15 @@ from typing_extensions import Literal
import _socket
from _socket import (
_FD,
EAI_ADDRFAMILY as EAI_ADDRFAMILY,
EAI_AGAIN as EAI_AGAIN,
EAI_BADFLAGS as EAI_BADFLAGS,
EAI_BADHINTS as EAI_BADHINTS,
EAI_FAIL as EAI_FAIL,
EAI_FAMILY as EAI_FAMILY,
EAI_MAX as EAI_MAX,
EAI_MEMORY as EAI_MEMORY,
EAI_NODATA as EAI_NODATA,
EAI_NONAME as EAI_NONAME,
EAI_OVERFLOW as EAI_OVERFLOW,
EAI_PROTOCOL as EAI_PROTOCOL,
EAI_SERVICE as EAI_SERVICE,
EAI_SOCKTYPE as EAI_SOCKTYPE,
EAI_SYSTEM as EAI_SYSTEM,
INADDR_ALLHOSTS_GROUP as INADDR_ALLHOSTS_GROUP,
INADDR_ANY as INADDR_ANY,
INADDR_BROADCAST as INADDR_BROADCAST,
@@ -35,88 +29,32 @@ from _socket import (
INADDR_NONE as INADDR_NONE,
INADDR_UNSPEC_GROUP as INADDR_UNSPEC_GROUP,
IP_ADD_MEMBERSHIP as IP_ADD_MEMBERSHIP,
IP_DEFAULT_MULTICAST_LOOP as IP_DEFAULT_MULTICAST_LOOP,
IP_DEFAULT_MULTICAST_TTL as IP_DEFAULT_MULTICAST_TTL,
IP_DROP_MEMBERSHIP as IP_DROP_MEMBERSHIP,
IP_HDRINCL as IP_HDRINCL,
IP_MAX_MEMBERSHIPS as IP_MAX_MEMBERSHIPS,
IP_MULTICAST_IF as IP_MULTICAST_IF,
IP_MULTICAST_LOOP as IP_MULTICAST_LOOP,
IP_MULTICAST_TTL as IP_MULTICAST_TTL,
IP_OPTIONS as IP_OPTIONS,
IP_RECVDSTADDR as IP_RECVDSTADDR,
IP_RECVOPTS as IP_RECVOPTS,
IP_RECVRETOPTS as IP_RECVRETOPTS,
IP_RETOPTS as IP_RETOPTS,
IP_TOS as IP_TOS,
IP_TRANSPARENT as IP_TRANSPARENT,
IP_TTL as IP_TTL,
IPPORT_RESERVED as IPPORT_RESERVED,
IPPORT_USERRESERVED as IPPORT_USERRESERVED,
IPPROTO_AH as IPPROTO_AH,
IPPROTO_BIP as IPPROTO_BIP,
IPPROTO_DSTOPTS as IPPROTO_DSTOPTS,
IPPROTO_EGP as IPPROTO_EGP,
IPPROTO_EON as IPPROTO_EON,
IPPROTO_ESP as IPPROTO_ESP,
IPPROTO_FRAGMENT as IPPROTO_FRAGMENT,
IPPROTO_GGP as IPPROTO_GGP,
IPPROTO_GRE as IPPROTO_GRE,
IPPROTO_HELLO as IPPROTO_HELLO,
IPPROTO_HOPOPTS as IPPROTO_HOPOPTS,
IPPROTO_ICMP as IPPROTO_ICMP,
IPPROTO_ICMPV6 as IPPROTO_ICMPV6,
IPPROTO_IDP as IPPROTO_IDP,
IPPROTO_IGMP as IPPROTO_IGMP,
IPPROTO_IP as IPPROTO_IP,
IPPROTO_IPCOMP as IPPROTO_IPCOMP,
IPPROTO_IPIP as IPPROTO_IPIP,
IPPROTO_IPV4 as IPPROTO_IPV4,
IPPROTO_IPV6 as IPPROTO_IPV6,
IPPROTO_MAX as IPPROTO_MAX,
IPPROTO_MOBILE as IPPROTO_MOBILE,
IPPROTO_ND as IPPROTO_ND,
IPPROTO_NONE as IPPROTO_NONE,
IPPROTO_PIM as IPPROTO_PIM,
IPPROTO_PUP as IPPROTO_PUP,
IPPROTO_RAW as IPPROTO_RAW,
IPPROTO_ROUTING as IPPROTO_ROUTING,
IPPROTO_RSVP as IPPROTO_RSVP,
IPPROTO_SCTP as IPPROTO_SCTP,
IPPROTO_TCP as IPPROTO_TCP,
IPPROTO_TP as IPPROTO_TP,
IPPROTO_UDP as IPPROTO_UDP,
IPPROTO_VRRP as IPPROTO_VRRP,
IPPROTO_XTP as IPPROTO_XTP,
IPV6_CHECKSUM as IPV6_CHECKSUM,
IPV6_DONTFRAG as IPV6_DONTFRAG,
IPV6_DSTOPTS as IPV6_DSTOPTS,
IPV6_HOPLIMIT as IPV6_HOPLIMIT,
IPV6_HOPOPTS as IPV6_HOPOPTS,
IPV6_JOIN_GROUP as IPV6_JOIN_GROUP,
IPV6_LEAVE_GROUP as IPV6_LEAVE_GROUP,
IPV6_MULTICAST_HOPS as IPV6_MULTICAST_HOPS,
IPV6_MULTICAST_IF as IPV6_MULTICAST_IF,
IPV6_MULTICAST_LOOP as IPV6_MULTICAST_LOOP,
IPV6_NEXTHOP as IPV6_NEXTHOP,
IPV6_PATHMTU as IPV6_PATHMTU,
IPV6_PKTINFO as IPV6_PKTINFO,
IPV6_RECVDSTOPTS as IPV6_RECVDSTOPTS,
IPV6_RECVHOPLIMIT as IPV6_RECVHOPLIMIT,
IPV6_RECVHOPOPTS as IPV6_RECVHOPOPTS,
IPV6_RECVPATHMTU as IPV6_RECVPATHMTU,
IPV6_RECVPKTINFO as IPV6_RECVPKTINFO,
IPV6_RECVRTHDR as IPV6_RECVRTHDR,
IPV6_RECVTCLASS as IPV6_RECVTCLASS,
IPV6_RTHDR as IPV6_RTHDR,
IPV6_RTHDR_TYPE_0 as IPV6_RTHDR_TYPE_0,
IPV6_RTHDRDSTOPTS as IPV6_RTHDRDSTOPTS,
IPV6_TCLASS as IPV6_TCLASS,
IPV6_UNICAST_HOPS as IPV6_UNICAST_HOPS,
IPV6_USE_MIN_MTU as IPV6_USE_MIN_MTU,
IPV6_V6ONLY as IPV6_V6ONLY,
IPX_TYPE as IPX_TYPE,
LOCAL_PEERCRED as LOCAL_PEERCRED,
NI_DGRAM as NI_DGRAM,
NI_MAXHOST as NI_MAXHOST,
NI_MAXSERV as NI_MAXSERV,
@@ -124,61 +62,35 @@ from _socket import (
NI_NOFQDN as NI_NOFQDN,
NI_NUMERICHOST as NI_NUMERICHOST,
NI_NUMERICSERV as NI_NUMERICSERV,
SCM_CREDENTIALS as SCM_CREDENTIALS,
SCM_CREDS as SCM_CREDS,
SCM_RIGHTS as SCM_RIGHTS,
SHUT_RD as SHUT_RD,
SHUT_RDWR as SHUT_RDWR,
SHUT_WR as SHUT_WR,
SO_ACCEPTCONN as SO_ACCEPTCONN,
SO_BINDTODEVICE as SO_BINDTODEVICE,
SO_BROADCAST as SO_BROADCAST,
SO_DEBUG as SO_DEBUG,
SO_DONTROUTE as SO_DONTROUTE,
SO_ERROR as SO_ERROR,
SO_EXCLUSIVEADDRUSE as SO_EXCLUSIVEADDRUSE,
SO_KEEPALIVE as SO_KEEPALIVE,
SO_LINGER as SO_LINGER,
SO_MARK as SO_MARK,
SO_OOBINLINE as SO_OOBINLINE,
SO_PASSCRED as SO_PASSCRED,
SO_PEERCRED as SO_PEERCRED,
SO_PRIORITY as SO_PRIORITY,
SO_RCVBUF as SO_RCVBUF,
SO_RCVLOWAT as SO_RCVLOWAT,
SO_RCVTIMEO as SO_RCVTIMEO,
SO_REUSEADDR as SO_REUSEADDR,
SO_REUSEPORT as SO_REUSEPORT,
SO_SETFIB as SO_SETFIB,
SO_SNDBUF as SO_SNDBUF,
SO_SNDLOWAT as SO_SNDLOWAT,
SO_SNDTIMEO as SO_SNDTIMEO,
SO_TYPE as SO_TYPE,
SO_USELOOPBACK as SO_USELOOPBACK,
SOL_ATALK as SOL_ATALK,
SOL_AX25 as SOL_AX25,
SOL_HCI as SOL_HCI,
SOL_IP as SOL_IP,
SOL_IPX as SOL_IPX,
SOL_NETROM as SOL_NETROM,
SOL_ROSE as SOL_ROSE,
SOL_SOCKET as SOL_SOCKET,
SOL_TCP as SOL_TCP,
SOL_UDP as SOL_UDP,
SOMAXCONN as SOMAXCONN,
TCP_CORK as TCP_CORK,
TCP_DEFER_ACCEPT as TCP_DEFER_ACCEPT,
TCP_FASTOPEN as TCP_FASTOPEN,
TCP_INFO as TCP_INFO,
TCP_KEEPCNT as TCP_KEEPCNT,
TCP_KEEPIDLE as TCP_KEEPIDLE,
TCP_KEEPINTVL as TCP_KEEPINTVL,
TCP_LINGER2 as TCP_LINGER2,
TCP_MAXSEG as TCP_MAXSEG,
TCP_NODELAY as TCP_NODELAY,
TCP_QUICKACK as TCP_QUICKACK,
TCP_SYNCNT as TCP_SYNCNT,
TCP_WINDOW_CLAMP as TCP_WINDOW_CLAMP,
SocketType as SocketType,
_Address as _Address,
_RetAddress as _RetAddress,
@@ -208,14 +120,150 @@ from _socket import (
timeout as timeout,
)
if sys.platform != "darwin" or sys.version_info >= (3, 9):
from _socket import (
IPV6_DONTFRAG as IPV6_DONTFRAG,
IPV6_HOPLIMIT as IPV6_HOPLIMIT,
IPV6_HOPOPTS as IPV6_HOPOPTS,
IPV6_PKTINFO as IPV6_PKTINFO,
IPV6_RECVRTHDR as IPV6_RECVRTHDR,
IPV6_RTHDR as IPV6_RTHDR,
)
if sys.platform != "darwin":
from _socket import SO_EXCLUSIVEADDRUSE as SO_EXCLUSIVEADDRUSE
if sys.version_info >= (3, 10):
from _socket import IP_RECVTOS as IP_RECVTOS
elif sys.platform != "darwin" and sys.platform != "win32":
from _socket import IP_RECVTOS as IP_RECVTOS
if sys.version_info >= (3, 7):
from _socket import close as close
if sys.platform != "win32" or sys.version_info >= (3, 7):
from _socket import TCP_KEEPINTVL as TCP_KEEPINTVL
if sys.platform != "darwin":
from _socket import TCP_KEEPIDLE as TCP_KEEPIDLE
if sys.platform != "win32" or sys.version_info >= (3, 8):
from _socket import (
IPPROTO_AH as IPPROTO_AH,
IPPROTO_DSTOPTS as IPPROTO_DSTOPTS,
IPPROTO_EGP as IPPROTO_EGP,
IPPROTO_ESP as IPPROTO_ESP,
IPPROTO_FRAGMENT as IPPROTO_FRAGMENT,
IPPROTO_GGP as IPPROTO_GGP,
IPPROTO_HOPOPTS as IPPROTO_HOPOPTS,
IPPROTO_ICMPV6 as IPPROTO_ICMPV6,
IPPROTO_IDP as IPPROTO_IDP,
IPPROTO_IGMP as IPPROTO_IGMP,
IPPROTO_IPV4 as IPPROTO_IPV4,
IPPROTO_IPV6 as IPPROTO_IPV6,
IPPROTO_MAX as IPPROTO_MAX,
IPPROTO_ND as IPPROTO_ND,
IPPROTO_NONE as IPPROTO_NONE,
IPPROTO_PIM as IPPROTO_PIM,
IPPROTO_PUP as IPPROTO_PUP,
IPPROTO_ROUTING as IPPROTO_ROUTING,
IPPROTO_SCTP as IPPROTO_SCTP,
)
if sys.platform != "darwin":
from _socket import (
IPPROTO_CBT as IPPROTO_CBT,
IPPROTO_ICLFXBM as IPPROTO_ICLFXBM,
IPPROTO_IGP as IPPROTO_IGP,
IPPROTO_L2TP as IPPROTO_L2TP,
IPPROTO_PGM as IPPROTO_PGM,
IPPROTO_RDP as IPPROTO_RDP,
IPPROTO_ST as IPPROTO_ST,
)
if sys.platform != "win32" and sys.platform != "darwin":
from _socket import (
IP_TRANSPARENT as IP_TRANSPARENT,
IPPROTO_BIP as IPPROTO_BIP,
IPPROTO_MOBILE as IPPROTO_MOBILE,
IPPROTO_VRRP as IPPROTO_VRRP,
IPX_TYPE as IPX_TYPE,
SCM_CREDENTIALS as SCM_CREDENTIALS,
SO_BINDTODEVICE as SO_BINDTODEVICE,
SO_MARK as SO_MARK,
SO_PASSCRED as SO_PASSCRED,
SO_PEERCRED as SO_PEERCRED,
SO_PRIORITY as SO_PRIORITY,
SO_SETFIB as SO_SETFIB,
SOL_ATALK as SOL_ATALK,
SOL_AX25 as SOL_AX25,
SOL_HCI as SOL_HCI,
SOL_IPX as SOL_IPX,
SOL_NETROM as SOL_NETROM,
SOL_ROSE as SOL_ROSE,
TCP_CORK as TCP_CORK,
TCP_DEFER_ACCEPT as TCP_DEFER_ACCEPT,
TCP_INFO as TCP_INFO,
TCP_LINGER2 as TCP_LINGER2,
TCP_QUICKACK as TCP_QUICKACK,
TCP_SYNCNT as TCP_SYNCNT,
TCP_WINDOW_CLAMP as TCP_WINDOW_CLAMP,
)
if sys.platform != "win32":
from _socket import CMSG_LEN as CMSG_LEN, CMSG_SPACE as CMSG_SPACE, sethostname as sethostname
from _socket import (
CMSG_LEN as CMSG_LEN,
CMSG_SPACE as CMSG_SPACE,
EAI_ADDRFAMILY as EAI_ADDRFAMILY,
EAI_BADHINTS as EAI_BADHINTS,
EAI_MAX as EAI_MAX,
EAI_OVERFLOW as EAI_OVERFLOW,
EAI_PROTOCOL as EAI_PROTOCOL,
EAI_SYSTEM as EAI_SYSTEM,
IP_DEFAULT_MULTICAST_LOOP as IP_DEFAULT_MULTICAST_LOOP,
IP_DEFAULT_MULTICAST_TTL as IP_DEFAULT_MULTICAST_TTL,
IP_MAX_MEMBERSHIPS as IP_MAX_MEMBERSHIPS,
IP_RECVOPTS as IP_RECVOPTS,
IP_RECVRETOPTS as IP_RECVRETOPTS,
IP_RETOPTS as IP_RETOPTS,
IPPROTO_EON as IPPROTO_EON,
IPPROTO_GRE as IPPROTO_GRE,
IPPROTO_HELLO as IPPROTO_HELLO,
IPPROTO_IPCOMP as IPPROTO_IPCOMP,
IPPROTO_IPIP as IPPROTO_IPIP,
IPPROTO_RSVP as IPPROTO_RSVP,
IPPROTO_TP as IPPROTO_TP,
IPPROTO_XTP as IPPROTO_XTP,
IPV6_RTHDR_TYPE_0 as IPV6_RTHDR_TYPE_0,
LOCAL_PEERCRED as LOCAL_PEERCRED,
SCM_CREDS as SCM_CREDS,
SCM_RIGHTS as SCM_RIGHTS,
SO_REUSEPORT as SO_REUSEPORT,
sethostname as sethostname,
)
if sys.platform != "darwin" or sys.version_info >= (3, 9):
from _socket import (
IPV6_DSTOPTS as IPV6_DSTOPTS,
IPV6_NEXTHOP as IPV6_NEXTHOP,
IPV6_PATHMTU as IPV6_PATHMTU,
IPV6_RECVDSTOPTS as IPV6_RECVDSTOPTS,
IPV6_RECVHOPLIMIT as IPV6_RECVHOPLIMIT,
IPV6_RECVHOPOPTS as IPV6_RECVHOPOPTS,
IPV6_RECVPATHMTU as IPV6_RECVPATHMTU,
IPV6_RECVPKTINFO as IPV6_RECVPKTINFO,
IPV6_RTHDRDSTOPTS as IPV6_RTHDRDSTOPTS,
IPV6_USE_MIN_MTU as IPV6_USE_MIN_MTU,
)
if sys.platform != "win32" or sys.version_info >= (3, 8):
from _socket import if_indextoname as if_indextoname, if_nameindex as if_nameindex, if_nametoindex as if_nametoindex
if sys.platform != "darwin":
if sys.platform != "win32" or sys.version_info >= (3, 9):
from _socket import BDADDR_ANY as BDADDR_ANY, BDADDR_LOCAL as BDADDR_LOCAL, BTPROTO_RFCOMM as BTPROTO_RFCOMM
if sys.platform == "darwin" and sys.version_info >= (3, 10):
from _socket import TCP_KEEPALIVE as TCP_KEEPALIVE
if sys.platform == "linux":
from _socket import (
ALG_OP_DECRYPT as ALG_OP_DECRYPT,
@@ -317,12 +365,13 @@ if sys.platform == "linux" and sys.version_info >= (3, 7):
SO_VM_SOCKETS_BUFFER_MAX_SIZE as SO_VM_SOCKETS_BUFFER_MAX_SIZE,
SO_VM_SOCKETS_BUFFER_MIN_SIZE as SO_VM_SOCKETS_BUFFER_MIN_SIZE,
SO_VM_SOCKETS_BUFFER_SIZE as SO_VM_SOCKETS_BUFFER_SIZE,
TCP_NOTSENT_LOWAT as TCP_NOTSENT_LOWAT,
VM_SOCKETS_INVALID_VERSION as VM_SOCKETS_INVALID_VERSION,
VMADDR_CID_ANY as VMADDR_CID_ANY,
VMADDR_CID_HOST as VMADDR_CID_HOST,
VMADDR_PORT_ANY as VMADDR_PORT_ANY,
)
if sys.platform != "win32" and sys.version_info >= (3, 7):
from _socket import TCP_NOTSENT_LOWAT as TCP_NOTSENT_LOWAT
if sys.platform == "linux" and sys.version_info >= (3, 8):
from _socket import (
CAN_BCM_CAN_FD_FRAME as CAN_BCM_CAN_FD_FRAME,
@@ -372,7 +421,6 @@ if sys.platform == "linux" and sys.version_info >= (3, 11):
from _socket import SO_INCOMING_CPU as SO_INCOMING_CPU
if sys.platform == "win32":
from _socket import (
RCVALL_IPLEVEL as RCVALL_IPLEVEL,
RCVALL_MAX as RCVALL_MAX,
RCVALL_OFF as RCVALL_OFF,
RCVALL_ON as RCVALL_ON,
@@ -388,33 +436,36 @@ EAGAIN: int
EWOULDBLOCK: int
class AddressFamily(IntEnum):
AF_UNIX: int
AF_INET: int
AF_INET6: int
AF_AAL5: int
AF_APPLETALK: int
AF_ASH: int
AF_ATMPVC: int
AF_ATMSVC: int
AF_AX25: 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_NETROM: int
AF_PPPOX: int
AF_ROSE: int
AF_ROUTE: int
AF_SECURITY: int
AF_SNA: int
AF_SYSTEM: int
AF_UNSPEC: int
AF_WANPIPE: int
AF_X25: int
if sys.platform != "darwin":
AF_IRDA: int
if sys.platform != "win32":
AF_ROUTE: int
AF_SYSTEM: int
AF_UNIX: int
if sys.platform != "darwin" and sys.platform != "win32":
AF_AAL5: int
AF_ASH: int
AF_ATMPVC: int
AF_ATMSVC: int
AF_AX25: int
AF_BRIDGE: int
AF_ECONET: int
AF_KEY: int
AF_LLC: int
AF_NETBEUI: int
AF_NETROM: int
AF_PPPOX: int
AF_ROSE: int
AF_SECURITY: int
AF_WANPIPE: int
AF_X25: int
if sys.platform == "linux":
AF_CAN: int
AF_PACKET: int
@@ -426,51 +477,61 @@ class AddressFamily(IntEnum):
AF_VSOCK: int
if sys.version_info >= (3, 8):
AF_QIPCRTR: int
AF_LINK: int # availability: BSD, macOS
if sys.platform != "darwin":
AF_BLUETOOTH: int
if sys.platform != "win32" or sys.version_info >= (3, 9):
AF_LINK: int
if sys.platform != "darwin":
AF_BLUETOOTH: int
AF_INET = AddressFamily.AF_INET
AF_INET6 = AddressFamily.AF_INET6
AF_APPLETALK = AddressFamily.AF_APPLETALK
AF_DECnet = AddressFamily.AF_DECnet
AF_IPX = AddressFamily.AF_IPX
AF_SNA = AddressFamily.AF_SNA
AF_UNSPEC = AddressFamily.AF_UNSPEC
AF_UNIX: AddressFamily
AF_INET: AddressFamily
AF_INET6: AddressFamily
AF_AAL5: AddressFamily
AF_APPLETALK: AddressFamily
AF_ASH: AddressFamily
AF_ATMPVC: AddressFamily
AF_ATMSVC: AddressFamily
AF_AX25: AddressFamily
AF_BRIDGE: AddressFamily
AF_DECnet: AddressFamily
AF_ECONET: AddressFamily
AF_IPX: AddressFamily
AF_IRDA: AddressFamily
AF_KEY: AddressFamily
AF_LLC: AddressFamily
AF_NETBEUI: AddressFamily
AF_NETROM: AddressFamily
AF_PPPOX: AddressFamily
AF_ROSE: AddressFamily
AF_ROUTE: AddressFamily
AF_SECURITY: AddressFamily
AF_SNA: AddressFamily
AF_SYSTEM: AddressFamily
AF_UNSPEC: AddressFamily
AF_WANPIPE: AddressFamily
AF_X25: AddressFamily
if sys.platform == "linux":
AF_CAN: AddressFamily
AF_PACKET: AddressFamily
AF_RDS: AddressFamily
AF_TIPC: AddressFamily
AF_ALG: AddressFamily
AF_NETLINK: AddressFamily
if sys.version_info >= (3, 7):
AF_VSOCK: AddressFamily
if sys.version_info >= (3, 8):
AF_QIPCRTR: AddressFamily
AF_LINK: AddressFamily # availability: BSD, macOS
if sys.platform != "darwin":
AF_BLUETOOTH: AddressFamily
AF_IRDA = AddressFamily.AF_IRDA
if sys.platform != "win32":
AF_ROUTE = AddressFamily.AF_ROUTE
AF_SYSTEM = AddressFamily.AF_SYSTEM
AF_UNIX = AddressFamily.AF_UNIX
if sys.platform != "win32" and sys.platform != "darwin":
AF_AAL5 = AddressFamily.AF_AAL5
AF_ASH = AddressFamily.AF_ASH
AF_ATMPVC = AddressFamily.AF_ATMPVC
AF_ATMSVC = AddressFamily.AF_ATMSVC
AF_AX25 = AddressFamily.AF_AX25
AF_BRIDGE = AddressFamily.AF_BRIDGE
AF_ECONET = AddressFamily.AF_ECONET
AF_KEY = AddressFamily.AF_KEY
AF_LLC = AddressFamily.AF_LLC
AF_NETBEUI = AddressFamily.AF_NETBEUI
AF_NETROM = AddressFamily.AF_NETROM
AF_PPPOX = AddressFamily.AF_PPPOX
AF_ROSE = AddressFamily.AF_ROSE
AF_SECURITY = AddressFamily.AF_SECURITY
AF_WANPIPE = AddressFamily.AF_WANPIPE
AF_X25 = AddressFamily.AF_X25
if sys.platform == "linux":
AF_CAN = AddressFamily.AF_CAN
AF_PACKET = AddressFamily.AF_PACKET
AF_RDS = AddressFamily.AF_RDS
AF_TIPC = AddressFamily.AF_TIPC
AF_ALG = AddressFamily.AF_ALG
AF_NETLINK = AddressFamily.AF_NETLINK
if sys.version_info >= (3, 7):
AF_VSOCK = AddressFamily.AF_VSOCK
if sys.version_info >= (3, 8):
AF_QIPCRTR = AddressFamily.AF_QIPCRTR
if sys.platform != "win32" or sys.version_info >= (3, 9):
AF_LINK = AddressFamily.AF_LINK
if sys.platform != "darwin":
AF_BLUETOOTH = AddressFamily.AF_BLUETOOTH
class SocketKind(IntEnum):
SOCK_STREAM: int
@@ -482,80 +543,99 @@ class SocketKind(IntEnum):
SOCK_CLOEXEC: int
SOCK_NONBLOCK: int
SOCK_STREAM: SocketKind
SOCK_DGRAM: SocketKind
SOCK_RAW: SocketKind
SOCK_RDM: SocketKind
SOCK_SEQPACKET: SocketKind
SOCK_STREAM = SocketKind.SOCK_STREAM
SOCK_DGRAM = SocketKind.SOCK_DGRAM
SOCK_RAW = SocketKind.SOCK_RAW
SOCK_RDM = SocketKind.SOCK_RDM
SOCK_SEQPACKET = SocketKind.SOCK_SEQPACKET
if sys.platform == "linux":
SOCK_CLOEXEC: SocketKind
SOCK_NONBLOCK: SocketKind
SOCK_CLOEXEC = SocketKind.SOCK_CLOEXEC
SOCK_NONBLOCK = SocketKind.SOCK_NONBLOCK
class MsgFlag(IntFlag):
MSG_BCAST: int
MSG_BTAG: int
MSG_CMSG_CLOEXEC: int
MSG_CONFIRM: int
MSG_CTRUNC: int
MSG_DONTROUTE: int
MSG_DONTWAIT: int
MSG_EOF: int
MSG_EOR: int
MSG_ERRQUEUE: int
MSG_ETAG: int
MSG_FASTOPEN: int
MSG_MCAST: int
MSG_MORE: int
MSG_NOSIGNAL: int
MSG_NOTIFICATION: int
MSG_OOB: int
MSG_PEEK: int
MSG_TRUNC: int
MSG_WAITALL: int
MSG_BCAST: MsgFlag
MSG_BTAG: MsgFlag
MSG_CMSG_CLOEXEC: MsgFlag
MSG_CONFIRM: MsgFlag
MSG_CTRUNC: MsgFlag
MSG_DONTROUTE: MsgFlag
MSG_DONTWAIT: MsgFlag
MSG_EOF: MsgFlag
MSG_EOR: MsgFlag
MSG_ERRQUEUE: MsgFlag
MSG_ETAG: MsgFlag
MSG_FASTOPEN: MsgFlag
MSG_MCAST: MsgFlag
MSG_MORE: MsgFlag
MSG_NOSIGNAL: MsgFlag
MSG_NOTIFICATION: MsgFlag
MSG_OOB: MsgFlag
MSG_PEEK: MsgFlag
MSG_TRUNC: MsgFlag
MSG_WAITALL: MsgFlag
if sys.platform != "darwin":
MSG_BCAST: int
MSG_MCAST: int
if sys.platform != "win32" or sys.version_info >= (3, 7):
MSG_ERRQUEUE: int
if sys.platform != "win32" and sys.platform != "darwin":
MSG_BTAG: int
MSG_CMSG_CLOEXEC: int
MSG_CONFIRM: int
MSG_ETAG: int
MSG_FASTOPEN: int
MSG_MORE: int
MSG_NOTIFICATION: int
if sys.platform != "win32":
MSG_DONTWAIT: int
MSG_EOF: int
MSG_EOR: int
MSG_NOSIGNAL: int # sometimes this exists on darwin, sometimes not
MSG_CTRUNC = MsgFlag.MSG_CTRUNC
MSG_DONTROUTE = MsgFlag.MSG_DONTROUTE
MSG_OOB = MsgFlag.MSG_OOB
MSG_PEEK = MsgFlag.MSG_PEEK
MSG_TRUNC = MsgFlag.MSG_TRUNC
MSG_WAITALL = MsgFlag.MSG_WAITALL
if sys.platform != "darwin":
MSG_BCAST = MsgFlag.MSG_BCAST
MSG_MCAST = MsgFlag.MSG_MCAST
if sys.platform != "win32" or sys.version_info >= (3, 7):
MSG_ERRQUEUE = MsgFlag.MSG_ERRQUEUE
if sys.platform != "win32":
MSG_DONTWAIT = MsgFlag.MSG_DONTWAIT
MSG_EOF = MsgFlag.MSG_EOF
MSG_EOR = MsgFlag.MSG_EOR
MSG_NOSIGNAL = MsgFlag.MSG_NOSIGNAL # Sometimes this exists on darwin, sometimes not
if sys.platform != "win32" and sys.platform != "darwin":
MSG_BTAG = MsgFlag.MSG_BTAG
MSG_CMSG_CLOEXEC = MsgFlag.MSG_CMSG_CLOEXEC
MSG_CONFIRM = MsgFlag.MSG_CONFIRM
MSG_ETAG = MsgFlag.MSG_ETAG
MSG_FASTOPEN = MsgFlag.MSG_FASTOPEN
MSG_MORE = MsgFlag.MSG_MORE
MSG_NOTIFICATION = MsgFlag.MSG_NOTIFICATION
class AddressInfo(IntFlag):
AI_ADDRCONFIG: int
AI_ALL: int
AI_CANONNAME: int
AI_DEFAULT: int
AI_MASK: int
AI_NUMERICHOST: int
AI_NUMERICSERV: int
AI_PASSIVE: int
AI_V4MAPPED: int
AI_V4MAPPED_CFG: int
if sys.platform != "win32":
AI_DEFAULT: int
AI_MASK: int
AI_V4MAPPED_CFG: int
AI_ADDRCONFIG: AddressInfo
AI_ALL: AddressInfo
AI_CANONNAME: AddressInfo
AI_DEFAULT: AddressInfo
AI_MASK: AddressInfo
AI_NUMERICHOST: AddressInfo
AI_NUMERICSERV: AddressInfo
AI_PASSIVE: AddressInfo
AI_V4MAPPED: AddressInfo
AI_V4MAPPED_CFG: AddressInfo
AI_ADDRCONFIG = AddressInfo.AI_ADDRCONFIG
AI_ALL = AddressInfo.AI_ALL
AI_CANONNAME = AddressInfo.AI_CANONNAME
AI_NUMERICHOST = AddressInfo.AI_NUMERICHOST
AI_NUMERICSERV = AddressInfo.AI_NUMERICSERV
AI_PASSIVE = AddressInfo.AI_PASSIVE
AI_V4MAPPED = AddressInfo.AI_V4MAPPED
if sys.platform != "win32":
AI_DEFAULT = AddressInfo.AI_DEFAULT
AI_MASK = AddressInfo.AI_MASK
AI_V4MAPPED_CFG = AddressInfo.AI_V4MAPPED_CFG
if sys.platform == "win32":
errorTab: dict[int, str] # undocumented

View File

@@ -1,7 +1,10 @@
from socket import AF_UNIX as AF_UNIX
import sys
from typing import Any
from typing_extensions import Literal
if sys.platform != "win32":
from socket import AF_UNIX as AF_UNIX
unix_socket_available: bool
class Server:

View File

@@ -2,3 +2,6 @@ _?curses.A_ITALIC
_?curses.color_pair
xxlimited.Xxo.x_exports
distutils.util.__warningregistry__
# Exists at runtime, missing from stub
socket.TCP_CONNECTION_INFO

View File

@@ -10,12 +10,19 @@ select.KQ_FILTER_NETDEV # system dependent
select.kqueue.__init__ # default C signature is wrong
select.POLLMSG # system dependent
# Sometimes this exists on darwin, sometimes not
(_socket.MSG_NOSIGNAL)?
(socket.MsgFlag.MSG_NOSIGNAL)?
(socket.MSG_NOSIGNAL)?
# Exists at runtime, but missing from stubs
distutils.msvccompiler.MSVCCompiler.get_msvc_paths
distutils.msvccompiler.MSVCCompiler.set_path_env_var
distutils.msvccompiler.MacroExpander
mimetypes.MimeTypes.read_windows_registry
selectors.DefaultSelector.fileno
socket.PF_SYSTEM
socket.SYSPROTO_CONTROL
posix.NGROUPS_MAX
posix.error.characters_written

View File

@@ -1,3 +1,4 @@
_socket.*
_posixsubprocess.cloexec_pipe
os.EX_NOTFOUND
os.SF_MNOWAIT
@@ -10,6 +11,7 @@ select.EPOLL_RDHUP
selectors.KqueueSelector
signal.SIGEMT
signal.SIGINFO
socket.[A-Z0-9_]+
# Exists at runtime, but missing from stubs
distutils.msvccompiler.MSVCCompiler.get_msvc_paths

View File

@@ -24,7 +24,6 @@ _collections_abc.Set.__rsub__
_collections_abc.Set.__rxor__
_csv.Dialect.__init__ # C __init__ signature is inaccurate
_socket.*
_threading_local.local.__new__
_weakref.ref.* # Alias for _weakref.ReferenceType, problems should be fixed there
_weakref.CallableProxyType.__getattr__ # Should have all attributes of proxy
@@ -237,6 +236,7 @@ xml.etree.cElementTree.Element.__iter__ # Doesn't exist at runtime, but instanc
# Exists at runtime, but missing from stubs
# ==========
_json.encode_basestring
_socket.CAPI
_thread.LockType.acquire_lock
_thread.LockType.locked_lock
_thread.LockType.release_lock
@@ -290,6 +290,7 @@ multiprocessing.managers.SyncManager.Pool
multiprocessing.pool.Pool.Process
multiprocessing.pool.ThreadPool.Process
multiprocessing.synchronize.Semaphore.get_value
socket.CAPI
tkinter.Misc.config
tkinter.font.Font.counter
tkinter.simpledialog.Dialog.apply
@@ -404,6 +405,7 @@ multiprocessing.managers.DictProxy.values
# GetSetDescriptor that always raises AttributeError
builtins.OSError.characters_written
# Aliases for OSError
_socket.error.characters_written
builtins.EnvironmentError.characters_written
builtins.IOError.characters_written
dbm.dumb.error.characters_written
@@ -522,7 +524,6 @@ os.O_[A-Z_]+
(posix.O_[A-Z_]+)?
(posix.ST_[A-Z]+)?
socket.AF_DECnet
socket.[A-Z0-9_]+
(termios.[A-Z0-9_]+)?
# Loadable SQLite extensions are disabled on GitHub runners