From 7fd2d94fc620e6becdd590acb1adb468029c46d3 Mon Sep 17 00:00:00 2001 From: Nikita Sobolev Date: Sat, 3 Jun 2023 10:24:26 +0300 Subject: [PATCH 1/8] Update _socket.pyi for Python3.12 Docs: https://github.com/python/cpython/blob/3.12/Doc/library/socket.rst Source: https://github.com/python/cpython/blob/3.12/Modules/socketmodule.c#L8441 --- stdlib/_socket.pyi | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/stdlib/_socket.pyi b/stdlib/_socket.pyi index f7b0e6901bf4..5067baba4c71 100644 --- a/stdlib/_socket.pyi +++ b/stdlib/_socket.pyi @@ -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.paltform == "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: int + HV_GUID_WILDCARD: int + HV_GUID_BROADCAST: int + HV_GUID_CHILDREN: int + HV_GUID_LOOPBACK: int + HV_GUID_LOOPBACK: int + else: + ETHERTYPE_ARP: int + ETHERTYPE_IP: int + ETHERTYPE_IPV6: int + ETHERTYPE_VLAN: int From 17a3952d9cf9fca195633b92d4b7b5abaf853a22 Mon Sep 17 00:00:00 2001 From: Nikita Sobolev Date: Sat, 3 Jun 2023 10:46:57 +0300 Subject: [PATCH 2/8] Typo --- stdlib/_socket.pyi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stdlib/_socket.pyi b/stdlib/_socket.pyi index 5067baba4c71..7cb0a41d1d49 100644 --- a/stdlib/_socket.pyi +++ b/stdlib/_socket.pyi @@ -699,7 +699,7 @@ if sys.version_info >= (3, 12): IP_BLOCK_SOURCE: int IP_ADD_SOURCE_MEMBERSHIP: int IP_DROP_SOURCE_MEMBERSHIP: int - if sys.paltform == "win32": + if sys.platform == "win32": AF_HYPERV: int HV_PROTOCOL_RAW: int HVSOCKET_CONNECT_TIMEOUT: int From f047429c2d360c1b21e07b5393dd13aa54fdc777 Mon Sep 17 00:00:00 2001 From: Nikita Sobolev Date: Sat, 3 Jun 2023 11:36:25 +0300 Subject: [PATCH 3/8] Update _socket.pyi --- stdlib/_socket.pyi | 1 - 1 file changed, 1 deletion(-) diff --git a/stdlib/_socket.pyi b/stdlib/_socket.pyi index 7cb0a41d1d49..95b42802c529 100644 --- a/stdlib/_socket.pyi +++ b/stdlib/_socket.pyi @@ -711,7 +711,6 @@ if sys.version_info >= (3, 12): HV_GUID_BROADCAST: int HV_GUID_CHILDREN: int HV_GUID_LOOPBACK: int - HV_GUID_LOOPBACK: int else: ETHERTYPE_ARP: int ETHERTYPE_IP: int From 52d864a6d6e733efe65b00aed6197e12303bfab1 Mon Sep 17 00:00:00 2001 From: Nikita Sobolev Date: Sat, 3 Jun 2023 11:40:12 +0300 Subject: [PATCH 4/8] Update _socket.pyi --- stdlib/_socket.pyi | 1 + 1 file changed, 1 insertion(+) diff --git a/stdlib/_socket.pyi b/stdlib/_socket.pyi index 95b42802c529..8689cb7013b4 100644 --- a/stdlib/_socket.pyi +++ b/stdlib/_socket.pyi @@ -711,6 +711,7 @@ if sys.version_info >= (3, 12): HV_GUID_BROADCAST: int HV_GUID_CHILDREN: int HV_GUID_LOOPBACK: int + HV_GUID_PARENT: int else: ETHERTYPE_ARP: int ETHERTYPE_IP: int From 6be8af6e274414356a26111053640f01a14f72f1 Mon Sep 17 00:00:00 2001 From: Nikita Sobolev Date: Sat, 3 Jun 2023 13:15:39 +0300 Subject: [PATCH 5/8] Re-export new consts in socket.py --- stdlib/socket.pyi | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/stdlib/socket.pyi b/stdlib/socket.pyi index 6c897b919909..586db935efe8 100644 --- a/stdlib/socket.pyi +++ b/stdlib/socket.pyi @@ -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_PKTINFO as IP_PKTINFO, + IP_UNBLOCK_SOURCE as IP_UNBLOCK_SOURCE, + IP_BLOCK_SOURCE as IP_BLOCK_SOURCE, + IP_ADD_SOURCE_MEMBERSHIP as IP_ADD_SOURCE_MEMBERSHIP, + IP_DROP_SOURCE_MEMBERSHIP as IP_DROP_SOURCE_MEMBERSHIP, + ) + if sys.platform == "win32": + from _socket import ( + AF_HYPERV as AF_HYPERV, + HV_PROTOCOL_RAW as HV_PROTOCOL_RAW, + HVSOCKET_CONNECT_TIMEOUT as HVSOCKET_CONNECT_TIMEOUT, + HVSOCKET_CONNECT_TIMEOUT_MAX as HVSOCKET_CONNECT_TIMEOUT_MAX, + HVSOCKET_CONNECTED_SUSPEND as HVSOCKET_CONNECTED_SUSPEND, + HVSOCKET_ADDRESS_FLAG_PASSTHRU as HVSOCKET_ADDRESS_FLAG_PASSTHRU, + HV_GUID_ZERO as HV_GUID_ZERO, + HV_GUID_WILDCARD as HV_GUID_WILDCARD, + 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, + ) + 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 From c2d4191aff5eee20e6fae42a70ecf63844e74d5a Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sat, 3 Jun 2023 10:16:51 +0000 Subject: [PATCH 6/8] [pre-commit.ci] auto fixes from pre-commit.com hooks --- stdlib/socket.pyi | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/stdlib/socket.pyi b/stdlib/socket.pyi index 586db935efe8..ab65142459b6 100644 --- a/stdlib/socket.pyi +++ b/stdlib/socket.pyi @@ -440,26 +440,27 @@ if sys.platform == "win32": ) if sys.version_info >= (3, 12): from _socket import ( - IP_PKTINFO as IP_PKTINFO, - IP_UNBLOCK_SOURCE as IP_UNBLOCK_SOURCE, - IP_BLOCK_SOURCE as IP_BLOCK_SOURCE, 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 ( AF_HYPERV as AF_HYPERV, - HV_PROTOCOL_RAW as HV_PROTOCOL_RAW, - HVSOCKET_CONNECT_TIMEOUT as HVSOCKET_CONNECT_TIMEOUT, - HVSOCKET_CONNECT_TIMEOUT_MAX as HVSOCKET_CONNECT_TIMEOUT_MAX, - HVSOCKET_CONNECTED_SUSPEND as HVSOCKET_CONNECTED_SUSPEND, - HVSOCKET_ADDRESS_FLAG_PASSTHRU as HVSOCKET_ADDRESS_FLAG_PASSTHRU, - HV_GUID_ZERO as HV_GUID_ZERO, - HV_GUID_WILDCARD as HV_GUID_WILDCARD, 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 ( From 43e82e2f715062d89ab7a27912e03d03362c1d1e Mon Sep 17 00:00:00 2001 From: AlexWaygood Date: Sun, 4 Jun 2023 14:13:58 +0100 Subject: [PATCH 7/8] Adjust allowlists --- tests/stubtest_allowlists/darwin-py312.txt | 18 ----------- tests/stubtest_allowlists/win32-py312.txt | 36 ---------------------- 2 files changed, 54 deletions(-) diff --git a/tests/stubtest_allowlists/darwin-py312.txt b/tests/stubtest_allowlists/darwin-py312.txt index 73a929a68a5b..a8bef78c5574 100644 --- a/tests/stubtest_allowlists/darwin-py312.txt +++ b/tests/stubtest_allowlists/darwin-py312.txt @@ -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 @@ -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 diff --git a/tests/stubtest_allowlists/win32-py312.txt b/tests/stubtest_allowlists/win32-py312.txt index 38cf282e4f16..7b0f3a96fe4c 100644 --- a/tests/stubtest_allowlists/win32-py312.txt +++ b/tests/stubtest_allowlists/win32-py312.txt @@ -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 @@ -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 From 88f6cd187e9e862b03c6b399afb0f4e7709b5739 Mon Sep 17 00:00:00 2001 From: sobolevn Date: Mon, 5 Jun 2023 11:20:19 +0300 Subject: [PATCH 8/8] Fix CI --- stdlib/_socket.pyi | 12 ++++++------ stdlib/socket.pyi | 6 +++++- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/stdlib/_socket.pyi b/stdlib/_socket.pyi index 8689cb7013b4..7a0ede62838c 100644 --- a/stdlib/_socket.pyi +++ b/stdlib/_socket.pyi @@ -706,12 +706,12 @@ if sys.version_info >= (3, 12): HVSOCKET_CONNECT_TIMEOUT_MAX: int HVSOCKET_CONNECTED_SUSPEND: int HVSOCKET_ADDRESS_FLAG_PASSTHRU: int - HV_GUID_ZERO: int - HV_GUID_WILDCARD: int - HV_GUID_BROADCAST: int - HV_GUID_CHILDREN: int - HV_GUID_LOOPBACK: int - HV_GUID_PARENT: 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 diff --git a/stdlib/socket.pyi b/stdlib/socket.pyi index ab65142459b6..e1ffc573b52e 100644 --- a/stdlib/socket.pyi +++ b/stdlib/socket.pyi @@ -449,7 +449,6 @@ if sys.version_info >= (3, 12): if sys.platform == "win32": from _socket import ( - AF_HYPERV as AF_HYPERV, HV_GUID_BROADCAST as HV_GUID_BROADCAST, HV_GUID_CHILDREN as HV_GUID_CHILDREN, HV_GUID_LOOPBACK as HV_GUID_LOOPBACK, @@ -520,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 @@ -571,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