Skip to content

Update socket stubs for Python3.12 #10247

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 9 commits into from
Jun 5, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions stdlib/_socket.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -692,3 +692,28 @@ if sys.platform != "win32" or sys.version_info >= (3, 8):
def if_nameindex() -> list[tuple[int, str]]: ...
def if_nametoindex(__name: str) -> int: ...
def if_indextoname(__index: int) -> str: ...

if sys.version_info >= (3, 12):
IP_PKTINFO: int
IP_UNBLOCK_SOURCE: int
IP_BLOCK_SOURCE: int
IP_ADD_SOURCE_MEMBERSHIP: int
IP_DROP_SOURCE_MEMBERSHIP: int
if sys.platform == "win32":
AF_HYPERV: int
HV_PROTOCOL_RAW: int
HVSOCKET_CONNECT_TIMEOUT: int
HVSOCKET_CONNECT_TIMEOUT_MAX: int
HVSOCKET_CONNECTED_SUSPEND: int
HVSOCKET_ADDRESS_FLAG_PASSTHRU: int
HV_GUID_ZERO: str
HV_GUID_WILDCARD: str
HV_GUID_BROADCAST: str
HV_GUID_CHILDREN: str
HV_GUID_LOOPBACK: str
HV_GUID_PARENT: str
else:
ETHERTYPE_ARP: int
ETHERTYPE_IP: int
ETHERTYPE_IPV6: int
ETHERTYPE_VLAN: int
35 changes: 35 additions & 0 deletions stdlib/socket.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -438,6 +438,36 @@ if sys.platform == "win32":
SIO_LOOPBACK_FAST_PATH as SIO_LOOPBACK_FAST_PATH,
SIO_RCVALL as SIO_RCVALL,
)
if sys.version_info >= (3, 12):
from _socket import (
IP_ADD_SOURCE_MEMBERSHIP as IP_ADD_SOURCE_MEMBERSHIP,
IP_BLOCK_SOURCE as IP_BLOCK_SOURCE,
IP_DROP_SOURCE_MEMBERSHIP as IP_DROP_SOURCE_MEMBERSHIP,
IP_PKTINFO as IP_PKTINFO,
IP_UNBLOCK_SOURCE as IP_UNBLOCK_SOURCE,
)

if sys.platform == "win32":
from _socket import (
HV_GUID_BROADCAST as HV_GUID_BROADCAST,
HV_GUID_CHILDREN as HV_GUID_CHILDREN,
HV_GUID_LOOPBACK as HV_GUID_LOOPBACK,
HV_GUID_PARENT as HV_GUID_PARENT,
HV_GUID_WILDCARD as HV_GUID_WILDCARD,
HV_GUID_ZERO as HV_GUID_ZERO,
HV_PROTOCOL_RAW as HV_PROTOCOL_RAW,
HVSOCKET_ADDRESS_FLAG_PASSTHRU as HVSOCKET_ADDRESS_FLAG_PASSTHRU,
HVSOCKET_CONNECT_TIMEOUT as HVSOCKET_CONNECT_TIMEOUT,
HVSOCKET_CONNECT_TIMEOUT_MAX as HVSOCKET_CONNECT_TIMEOUT_MAX,
HVSOCKET_CONNECTED_SUSPEND as HVSOCKET_CONNECTED_SUSPEND,
)
else:
from _socket import (
ETHERTYPE_ARP as ETHERTYPE_ARP,
ETHERTYPE_IP as ETHERTYPE_IP,
ETHERTYPE_IPV6 as ETHERTYPE_IPV6,
ETHERTYPE_VLAN as ETHERTYPE_VLAN,
)

# Re-exported from errno
EBADF: int
Expand Down Expand Up @@ -489,6 +519,8 @@ class AddressFamily(IntEnum):
AF_LINK: int
if sys.platform != "darwin":
AF_BLUETOOTH: int
if sys.platform == "win32" and sys.version_info >= (3, 12):
AF_HYPERV: int

AF_INET = AddressFamily.AF_INET
AF_INET6 = AddressFamily.AF_INET6
Expand Down Expand Up @@ -540,6 +572,9 @@ if sys.platform != "win32" or sys.version_info >= (3, 9):
if sys.platform != "darwin":
AF_BLUETOOTH = AddressFamily.AF_BLUETOOTH

if sys.platform == "win32" and sys.version_info >= (3, 12):
AF_HYPERV = AddressFamily.AF_HYPERV

class SocketKind(IntEnum):
SOCK_STREAM: int
SOCK_DGRAM: int
Expand Down
18 changes: 0 additions & 18 deletions tests/stubtest_allowlists/darwin-py312.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,6 @@ _?curses.color_pair
_curses.unget_wch
_curses.window.get_wch
_posixsubprocess.fork_exec
_socket.ETHERTYPE_ARP
_socket.ETHERTYPE_IP
_socket.ETHERTYPE_IPV6
_socket.ETHERTYPE_VLAN
_socket.IP_ADD_SOURCE_MEMBERSHIP
_socket.IP_BLOCK_SOURCE
_socket.IP_DROP_SOURCE_MEMBERSHIP
_socket.IP_PKTINFO
_socket.IP_UNBLOCK_SOURCE
curses.unget_wch
curses.window.get_wch
os.PRIO_DARWIN_BG
Expand All @@ -22,15 +13,6 @@ posix.PRIO_DARWIN_BG
posix.PRIO_DARWIN_NONUI
posix.PRIO_DARWIN_PROCESS
posix.PRIO_DARWIN_THREAD
socket.ETHERTYPE_ARP
socket.ETHERTYPE_IP
socket.ETHERTYPE_IPV6
socket.ETHERTYPE_VLAN
socket.IP_ADD_SOURCE_MEMBERSHIP
socket.IP_BLOCK_SOURCE
socket.IP_DROP_SOURCE_MEMBERSHIP
socket.IP_PKTINFO
socket.IP_UNBLOCK_SOURCE
socket.TCP_CONNECTION_INFO
syslog.LOG_MASK
syslog.LOG_UPTO
Expand Down
36 changes: 0 additions & 36 deletions tests/stubtest_allowlists/win32-py312.txt
Original file line number Diff line number Diff line change
@@ -1,21 +1,3 @@

_socket.AF_HYPERV
_socket.HV_GUID_BROADCAST
_socket.HV_GUID_CHILDREN
_socket.HV_GUID_LOOPBACK
_socket.HV_GUID_PARENT
_socket.HV_GUID_WILDCARD
_socket.HV_GUID_ZERO
_socket.HV_PROTOCOL_RAW
_socket.HVSOCKET_ADDRESS_FLAG_PASSTHRU
_socket.HVSOCKET_CONNECT_TIMEOUT
_socket.HVSOCKET_CONNECT_TIMEOUT_MAX
_socket.HVSOCKET_CONNECTED_SUSPEND
_socket.IP_ADD_SOURCE_MEMBERSHIP
_socket.IP_BLOCK_SOURCE
_socket.IP_DROP_SOURCE_MEMBERSHIP
_socket.IP_PKTINFO
_socket.IP_UNBLOCK_SOURCE
_winapi.CreateFileMapping
_winapi.MapViewOfFile
_winapi.NeedCurrentDirectoryForExePath
Expand All @@ -40,22 +22,4 @@ os.path.isdir
os.set_blocking
os.stat_result.st_birthtime
os.stat_result.st_birthtime_ns
socket.AddressFamily.AF_HYPERV
socket.AF_HYPERV
socket.HV_GUID_BROADCAST
socket.HV_GUID_CHILDREN
socket.HV_GUID_LOOPBACK
socket.HV_GUID_PARENT
socket.HV_GUID_WILDCARD
socket.HV_GUID_ZERO
socket.HV_PROTOCOL_RAW
socket.HVSOCKET_ADDRESS_FLAG_PASSTHRU
socket.HVSOCKET_CONNECT_TIMEOUT
socket.HVSOCKET_CONNECT_TIMEOUT_MAX
socket.HVSOCKET_CONNECTED_SUSPEND
socket.IP_ADD_SOURCE_MEMBERSHIP
socket.IP_BLOCK_SOURCE
socket.IP_DROP_SOURCE_MEMBERSHIP
socket.IP_PKTINFO
socket.IP_UNBLOCK_SOURCE
subprocess.STARTUPINFO.copy