From 61b540f84f2963996849ff21c2c03418ae483cc0 Mon Sep 17 00:00:00 2001 From: Divyanshudevtalla Date: Tue, 27 Jan 2026 22:20:26 +0530 Subject: [PATCH 01/19] socket : add python 3.14 bluetooth constants for windows and linux --- stdlib/_socket.pyi | 76 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 75 insertions(+), 1 deletion(-) diff --git a/stdlib/_socket.pyi b/stdlib/_socket.pyi index 372b35f22f17..aae72936e676 100644 --- a/stdlib/_socket.pyi +++ b/stdlib/_socket.pyi @@ -11,7 +11,7 @@ _CMSGArg: TypeAlias = tuple[int, int, ReadableBuffer] # Addresses can be either tuples of varying lengths (AF_INET, AF_INET6, # AF_NETLINK, AF_TIPC) or strings/buffers (AF_UNIX). # See getsockaddrarg() in socketmodule.c. -_Address: TypeAlias = tuple[Any, ...] | str | ReadableBuffer +_Address: TypeAlias = tuple[Any, ...] | str | ReadableBuffer | int _RetAddress: TypeAlias = Any # ===== Constants ===== @@ -36,6 +36,75 @@ if sys.platform == "linux": # Availability: Linux >= 2.6.27 SOCK_CLOEXEC: Final[int] SOCK_NONBLOCK: Final[int] + BDADDR_BREDR: Final[int] + BDADDR_LE_PUBLIC: Final[int] + BDADDR_LE_RANDOM: Final[int] + BT_CHANNEL_POLICY: Final[int] + BT_CHANNEL_POLICY_BREDR_ONLY: Final[int] + BT_CHANNEL_POLICY_BREDR_PREFERRED: Final[int] + BT_CODEC: Final[int] + BT_DEFER_SETUP: Final[int] + BT_FLUSHABLE: Final[int] + BT_FLUSHABLE_OFF: Final[int] + BT_FLUSHABLE_ON: Final[int] + BT_ISO_QOS: Final[int] + BT_MODE: Final[int] + BT_MODE_BASIC: Final[int] + BT_MODE_ERTM: Final[int] + BT_MODE_EXT_FLOWCTL: Final[int] + BT_MODE_LE_FLOWCTL: Final[int] + BT_MODE_STREAMING: Final[int] + BT_PHY: Final[int] + BT_PHY_BR_1M_1SLOT: Final[int] + BT_PHY_BR_1M_3SLOT: Final[int] + BT_PHY_BR_1M_5SLOT: Final[int] + BT_PHY_EDR_2M_1SLOT: Final[int] + BT_PHY_EDR_2M_3SLOT: Final[int] + BT_PHY_EDR_2M_5SLOT: Final[int] + BT_PHY_EDR_3M_1SLOT: Final[int] + BT_PHY_EDR_3M_3SLOT: Final[int] + BT_PHY_EDR_3M_5SLOT: Final[int] + BT_PHY_LE_1M_RX: Final[int] + BT_PHY_LE_1M_TX: Final[int] + BT_PHY_LE_2M_RX: Final[int] + BT_PHY_LE_2M_TX: Final[int] + BT_PHY_LE_CODED_RX: Final[int] + BT_PHY_LE_CODED_TX: Final[int] + BT_PKT_STATUS: Final[int] + BT_POWER: Final[int] + BT_POWER_FORCE_ACTIVE_OFF: Final[int] + BT_POWER_FORCE_ACTIVE_ON: Final[int] + BT_RCVMTU: Final[int] + BT_SECURITY: Final[int] + BT_SECURITY_FIPS: Final[int] + BT_SECURITY_HIGH: Final[int] + BT_SECURITY_LOW: Final[int] + BT_SECURITY_MEDIUM: Final[int] + BT_SECURITY_SDP: Final[int] + BT_SNDMTU: Final[int] + BT_VOICE: Final[int] + BT_VOICE_CVSD_16BIT: Final[int] + BT_VOICE_TRANSPARENT: Final[int] + BT_VOICE_TRANSPARENT_16BIT: Final[int] + HCI_CHANNEL_CONTROL: Final[int] + HCI_CHANNEL_LOGGING: Final[int] + HCI_CHANNEL_MONITOR: Final[int] + HCI_CHANNEL_RAW: Final[int] + HCI_CHANNEL_USER: Final[int] + HCI_DEV_NONE: Final[int] + L2CAP_LM: Final[int] + L2CAP_LM_AUTH: Final[int] + L2CAP_LM_ENCRYPT: Final[int] + L2CAP_LM_MASTER: Final[int] + L2CAP_LM_RELIABLE: Final[int] + L2CAP_LM_SECURE: Final[int] + L2CAP_LM_TRUSTED: Final[int] + SOL_BLUETOOTH: Final[int] + SOL_L2CAP: Final[int] + SOL_RFCOMM: Final[int] + SOL_SCO: Final[int] + + # -------------------- # Many constants of these forms, documented in the Unix documentation on @@ -76,6 +145,11 @@ if sys.platform != "linux": SO_USELOOPBACK: Final[int] if sys.platform == "win32": SO_EXCLUSIVEADDRUSE: Final[int] + SO_BTH_ENCRYPT: Final[int] + SO_BTH_MTU: Final[int] + SO_BTH_MTU_MAX: Final[int] + SO_BTH_MTU_MIN: Final[int] + SOL_RFCOMM: Final[int] if sys.platform != "win32": SO_REUSEPORT: Final[int] if sys.platform != "darwin" or sys.version_info >= (3, 13): From f460d101088895dfe0149ea024c59a68a5377c07 Mon Sep 17 00:00:00 2001 From: Divyanshudevtalla Date: Tue, 27 Jan 2026 22:37:06 +0530 Subject: [PATCH 02/19] socket: add Python 3.14 bluetooth constant with version guards --- stdlib/_socket.pyi | 139 +++++++++++++++++++++++---------------------- 1 file changed, 70 insertions(+), 69 deletions(-) diff --git a/stdlib/_socket.pyi b/stdlib/_socket.pyi index aae72936e676..ace3263fc2ad 100644 --- a/stdlib/_socket.pyi +++ b/stdlib/_socket.pyi @@ -34,75 +34,76 @@ SOCK_SEQPACKET: Final[int] if sys.platform == "linux": # Availability: Linux >= 2.6.27 - SOCK_CLOEXEC: Final[int] - SOCK_NONBLOCK: Final[int] - BDADDR_BREDR: Final[int] - BDADDR_LE_PUBLIC: Final[int] - BDADDR_LE_RANDOM: Final[int] - BT_CHANNEL_POLICY: Final[int] - BT_CHANNEL_POLICY_BREDR_ONLY: Final[int] - BT_CHANNEL_POLICY_BREDR_PREFERRED: Final[int] - BT_CODEC: Final[int] - BT_DEFER_SETUP: Final[int] - BT_FLUSHABLE: Final[int] - BT_FLUSHABLE_OFF: Final[int] - BT_FLUSHABLE_ON: Final[int] - BT_ISO_QOS: Final[int] - BT_MODE: Final[int] - BT_MODE_BASIC: Final[int] - BT_MODE_ERTM: Final[int] - BT_MODE_EXT_FLOWCTL: Final[int] - BT_MODE_LE_FLOWCTL: Final[int] - BT_MODE_STREAMING: Final[int] - BT_PHY: Final[int] - BT_PHY_BR_1M_1SLOT: Final[int] - BT_PHY_BR_1M_3SLOT: Final[int] - BT_PHY_BR_1M_5SLOT: Final[int] - BT_PHY_EDR_2M_1SLOT: Final[int] - BT_PHY_EDR_2M_3SLOT: Final[int] - BT_PHY_EDR_2M_5SLOT: Final[int] - BT_PHY_EDR_3M_1SLOT: Final[int] - BT_PHY_EDR_3M_3SLOT: Final[int] - BT_PHY_EDR_3M_5SLOT: Final[int] - BT_PHY_LE_1M_RX: Final[int] - BT_PHY_LE_1M_TX: Final[int] - BT_PHY_LE_2M_RX: Final[int] - BT_PHY_LE_2M_TX: Final[int] - BT_PHY_LE_CODED_RX: Final[int] - BT_PHY_LE_CODED_TX: Final[int] - BT_PKT_STATUS: Final[int] - BT_POWER: Final[int] - BT_POWER_FORCE_ACTIVE_OFF: Final[int] - BT_POWER_FORCE_ACTIVE_ON: Final[int] - BT_RCVMTU: Final[int] - BT_SECURITY: Final[int] - BT_SECURITY_FIPS: Final[int] - BT_SECURITY_HIGH: Final[int] - BT_SECURITY_LOW: Final[int] - BT_SECURITY_MEDIUM: Final[int] - BT_SECURITY_SDP: Final[int] - BT_SNDMTU: Final[int] - BT_VOICE: Final[int] - BT_VOICE_CVSD_16BIT: Final[int] - BT_VOICE_TRANSPARENT: Final[int] - BT_VOICE_TRANSPARENT_16BIT: Final[int] - HCI_CHANNEL_CONTROL: Final[int] - HCI_CHANNEL_LOGGING: Final[int] - HCI_CHANNEL_MONITOR: Final[int] - HCI_CHANNEL_RAW: Final[int] - HCI_CHANNEL_USER: Final[int] - HCI_DEV_NONE: Final[int] - L2CAP_LM: Final[int] - L2CAP_LM_AUTH: Final[int] - L2CAP_LM_ENCRYPT: Final[int] - L2CAP_LM_MASTER: Final[int] - L2CAP_LM_RELIABLE: Final[int] - L2CAP_LM_SECURE: Final[int] - L2CAP_LM_TRUSTED: Final[int] - SOL_BLUETOOTH: Final[int] - SOL_L2CAP: Final[int] - SOL_RFCOMM: Final[int] - SOL_SCO: Final[int] + if sys.version_info >= (3, 14): + SOCK_CLOEXEC: Final[int] + SOCK_NONBLOCK: Final[int] + BDADDR_BREDR: Final[int] + BDADDR_LE_PUBLIC: Final[int] + BDADDR_LE_RANDOM: Final[int] + BT_CHANNEL_POLICY: Final[int] + BT_CHANNEL_POLICY_BREDR_ONLY: Final[int] + BT_CHANNEL_POLICY_BREDR_PREFERRED: Final[int] + BT_CODEC: Final[int] + BT_DEFER_SETUP: Final[int] + BT_FLUSHABLE: Final[int] + BT_FLUSHABLE_OFF: Final[int] + BT_FLUSHABLE_ON: Final[int] + BT_ISO_QOS: Final[int] + BT_MODE: Final[int] + BT_MODE_BASIC: Final[int] + BT_MODE_ERTM: Final[int] + BT_MODE_EXT_FLOWCTL: Final[int] + BT_MODE_LE_FLOWCTL: Final[int] + BT_MODE_STREAMING: Final[int] + BT_PHY: Final[int] + BT_PHY_BR_1M_1SLOT: Final[int] + BT_PHY_BR_1M_3SLOT: Final[int] + BT_PHY_BR_1M_5SLOT: Final[int] + BT_PHY_EDR_2M_1SLOT: Final[int] + BT_PHY_EDR_2M_3SLOT: Final[int] + BT_PHY_EDR_2M_5SLOT: Final[int] + BT_PHY_EDR_3M_1SLOT: Final[int] + BT_PHY_EDR_3M_3SLOT: Final[int] + BT_PHY_EDR_3M_5SLOT: Final[int] + BT_PHY_LE_1M_RX: Final[int] + BT_PHY_LE_1M_TX: Final[int] + BT_PHY_LE_2M_RX: Final[int] + BT_PHY_LE_2M_TX: Final[int] + BT_PHY_LE_CODED_RX: Final[int] + BT_PHY_LE_CODED_TX: Final[int] + BT_PKT_STATUS: Final[int] + BT_POWER: Final[int] + BT_POWER_FORCE_ACTIVE_OFF: Final[int] + BT_POWER_FORCE_ACTIVE_ON: Final[int] + BT_RCVMTU: Final[int] + BT_SECURITY: Final[int] + BT_SECURITY_FIPS: Final[int] + BT_SECURITY_HIGH: Final[int] + BT_SECURITY_LOW: Final[int] + BT_SECURITY_MEDIUM: Final[int] + BT_SECURITY_SDP: Final[int] + BT_SNDMTU: Final[int] + BT_VOICE: Final[int] + BT_VOICE_CVSD_16BIT: Final[int] + BT_VOICE_TRANSPARENT: Final[int] + BT_VOICE_TRANSPARENT_16BIT: Final[int] + HCI_CHANNEL_CONTROL: Final[int] + HCI_CHANNEL_LOGGING: Final[int] + HCI_CHANNEL_MONITOR: Final[int] + HCI_CHANNEL_RAW: Final[int] + HCI_CHANNEL_USER: Final[int] + HCI_DEV_NONE: Final[int] + L2CAP_LM: Final[int] + L2CAP_LM_AUTH: Final[int] + L2CAP_LM_ENCRYPT: Final[int] + L2CAP_LM_MASTER: Final[int] + L2CAP_LM_RELIABLE: Final[int] + L2CAP_LM_SECURE: Final[int] + L2CAP_LM_TRUSTED: Final[int] + SOL_BLUETOOTH: Final[int] + SOL_L2CAP: Final[int] + SOL_RFCOMM: Final[int] + SOL_SCO: Final[int] From 541eb421702a70a5e52caccf0e494813b7ed0dee Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 27 Jan 2026 17:14:12 +0000 Subject: [PATCH 03/19] [pre-commit.ci] auto fixes from pre-commit.com hooks --- stdlib/_socket.pyi | 2 -- 1 file changed, 2 deletions(-) diff --git a/stdlib/_socket.pyi b/stdlib/_socket.pyi index ace3263fc2ad..34bbf0a8e109 100644 --- a/stdlib/_socket.pyi +++ b/stdlib/_socket.pyi @@ -104,8 +104,6 @@ if sys.platform == "linux": SOL_L2CAP: Final[int] SOL_RFCOMM: Final[int] SOL_SCO: Final[int] - - # -------------------- # Many constants of these forms, documented in the Unix documentation on From 8875184ddaa8c4fbb17c054751c6053b8b27eb9c Mon Sep 17 00:00:00 2001 From: Divyanshudevtalla Date: Wed, 28 Jan 2026 10:45:28 +0530 Subject: [PATCH 04/19] address review: move constants to semi-documented and add allowlist entries --- stdlib/@tests/stubtest_allowlists/linux.txt | 67 ++++++++- stdlib/_socket.pyi | 143 ++++++++++---------- 2 files changed, 136 insertions(+), 74 deletions(-) diff --git a/stdlib/@tests/stubtest_allowlists/linux.txt b/stdlib/@tests/stubtest_allowlists/linux.txt index b652654f9780..f3952f4b093c 100644 --- a/stdlib/@tests/stubtest_allowlists/linux.txt +++ b/stdlib/@tests/stubtest_allowlists/linux.txt @@ -35,7 +35,72 @@ select.poll # Actually a function; we have a class so it can be used as a type (_?socket\.BTPROTO_L2CAP)? (_?socket\.BTPROTO_RFCOMM)? (_?socket\.BTPROTO_SCO)? - +_socket.BDADDR_BREDR +_socket.BDADDR_LE_PUBLIC +_socket.BDADDR_LE_RANDOM +_socket.BT_CHANNEL_POLICY +_socket.BT_CHANNEL_POLICY_BREDR_ONLY +_socket.BT_CHANNEL_POLICY_BREDR_PREFERRED +_socket.BT_CODEC +_socket.BT_DEFER_SETUP +_socket.BT_FLUSHABLE +_socket.BT_FLUSHABLE_OFF +_socket.BT_FLUSHABLE_ON +_socket.BT_ISO_QOS +_socket.BT_MODE +_socket.BT_MODE_BASIC +_socket.BT_MODE_ERTM +_socket.BT_MODE_EXT_FLOWCTL +_socket.BT_MODE_LE_FLOWCTL +_socket.BT_MODE_STREAMING +_socket.BT_PHY +_socket.BT_PHY_BR_1M_1SLOT +_socket.BT_PHY_BR_1M_3SLOT +_socket.BT_PHY_BR_1M_5SLOT +_socket.BT_PHY_EDR_2M_1SLOT +_socket.BT_PHY_EDR_2M_3SLOT +_socket.BT_PHY_EDR_2M_5SLOT +_socket.BT_PHY_EDR_3M_1SLOT +_socket.BT_PHY_EDR_3M_3SLOT +_socket.BT_PHY_EDR_3M_5SLOT +_socket.BT_PHY_LE_1M_RX +_socket.BT_PHY_LE_1M_TX +_socket.BT_PHY_LE_2M_RX +_socket.BT_PHY_LE_2M_TX +_socket.BT_PHY_LE_CODED_RX +_socket.BT_PHY_LE_CODED_TX +_socket.BT_PKT_STATUS +_socket.BT_POWER +_socket.BT_POWER_FORCE_ACTIVE_OFF +_socket.BT_POWER_FORCE_ACTIVE_ON +_socket.BT_RCVMTU +_socket.BT_SECURITY +_socket.BT_SECURITY_FIPS +_socket.BT_SECURITY_HIGH +_socket.BT_SECURITY_LOW +_socket.BT_SECURITY_MEDIUM +_socket.BT_SECURITY_SDP +_socket.BT_SNDMTU +_socket.BT_VOICE +_socket.BT_VOICE_CVSD_16BIT +_socket.BT_VOICE_TRANSPARENT +_socket.BT_VOICE_TRANSPARENT_16BIT +_socket.HCI_CHANNEL_CONTROL +_socket.HCI_CHANNEL_LOGGING +_socket.HCI_CHANNEL_MONITOR +_socket.HCI_CHANNEL_RAW +_socket.HCI_CHANNEL_USER +_socket.HCI_DEV_NONE +_socket.L2CAP_LM +_socket.L2CAP_LM_AUTH +_socket.L2CAP_LM_ENCRYPT +_socket.L2CAP_LM_MASTER +_socket.L2CAP_LM_RELIABLE +_socket.L2CAP_LM_SECURE +_socket.L2CAP_LM_TRUSTED +_socket.SOL_BLUETOOTH +_socket.SOL_L2CAP +_socket.SOL_SCO # These seem like they should be available on Linux, but they're not # on GitHub Actions runners for some reason. _?socket.IPX_TYPE diff --git a/stdlib/_socket.pyi b/stdlib/_socket.pyi index ace3263fc2ad..f5ad5b8f38de 100644 --- a/stdlib/_socket.pyi +++ b/stdlib/_socket.pyi @@ -11,7 +11,7 @@ _CMSGArg: TypeAlias = tuple[int, int, ReadableBuffer] # Addresses can be either tuples of varying lengths (AF_INET, AF_INET6, # AF_NETLINK, AF_TIPC) or strings/buffers (AF_UNIX). # See getsockaddrarg() in socketmodule.c. -_Address: TypeAlias = tuple[Any, ...] | str | ReadableBuffer | int +_Address: TypeAlias = tuple[Any, ...] | str | ReadableBuffer | int #int is included because of device_id not packed in a tuple is now accepted for BTPROTO_HCI _RetAddress: TypeAlias = Any # ===== Constants ===== @@ -34,78 +34,8 @@ SOCK_SEQPACKET: Final[int] if sys.platform == "linux": # Availability: Linux >= 2.6.27 - if sys.version_info >= (3, 14): - SOCK_CLOEXEC: Final[int] - SOCK_NONBLOCK: Final[int] - BDADDR_BREDR: Final[int] - BDADDR_LE_PUBLIC: Final[int] - BDADDR_LE_RANDOM: Final[int] - BT_CHANNEL_POLICY: Final[int] - BT_CHANNEL_POLICY_BREDR_ONLY: Final[int] - BT_CHANNEL_POLICY_BREDR_PREFERRED: Final[int] - BT_CODEC: Final[int] - BT_DEFER_SETUP: Final[int] - BT_FLUSHABLE: Final[int] - BT_FLUSHABLE_OFF: Final[int] - BT_FLUSHABLE_ON: Final[int] - BT_ISO_QOS: Final[int] - BT_MODE: Final[int] - BT_MODE_BASIC: Final[int] - BT_MODE_ERTM: Final[int] - BT_MODE_EXT_FLOWCTL: Final[int] - BT_MODE_LE_FLOWCTL: Final[int] - BT_MODE_STREAMING: Final[int] - BT_PHY: Final[int] - BT_PHY_BR_1M_1SLOT: Final[int] - BT_PHY_BR_1M_3SLOT: Final[int] - BT_PHY_BR_1M_5SLOT: Final[int] - BT_PHY_EDR_2M_1SLOT: Final[int] - BT_PHY_EDR_2M_3SLOT: Final[int] - BT_PHY_EDR_2M_5SLOT: Final[int] - BT_PHY_EDR_3M_1SLOT: Final[int] - BT_PHY_EDR_3M_3SLOT: Final[int] - BT_PHY_EDR_3M_5SLOT: Final[int] - BT_PHY_LE_1M_RX: Final[int] - BT_PHY_LE_1M_TX: Final[int] - BT_PHY_LE_2M_RX: Final[int] - BT_PHY_LE_2M_TX: Final[int] - BT_PHY_LE_CODED_RX: Final[int] - BT_PHY_LE_CODED_TX: Final[int] - BT_PKT_STATUS: Final[int] - BT_POWER: Final[int] - BT_POWER_FORCE_ACTIVE_OFF: Final[int] - BT_POWER_FORCE_ACTIVE_ON: Final[int] - BT_RCVMTU: Final[int] - BT_SECURITY: Final[int] - BT_SECURITY_FIPS: Final[int] - BT_SECURITY_HIGH: Final[int] - BT_SECURITY_LOW: Final[int] - BT_SECURITY_MEDIUM: Final[int] - BT_SECURITY_SDP: Final[int] - BT_SNDMTU: Final[int] - BT_VOICE: Final[int] - BT_VOICE_CVSD_16BIT: Final[int] - BT_VOICE_TRANSPARENT: Final[int] - BT_VOICE_TRANSPARENT_16BIT: Final[int] - HCI_CHANNEL_CONTROL: Final[int] - HCI_CHANNEL_LOGGING: Final[int] - HCI_CHANNEL_MONITOR: Final[int] - HCI_CHANNEL_RAW: Final[int] - HCI_CHANNEL_USER: Final[int] - HCI_DEV_NONE: Final[int] - L2CAP_LM: Final[int] - L2CAP_LM_AUTH: Final[int] - L2CAP_LM_ENCRYPT: Final[int] - L2CAP_LM_MASTER: Final[int] - L2CAP_LM_RELIABLE: Final[int] - L2CAP_LM_SECURE: Final[int] - L2CAP_LM_TRUSTED: Final[int] - SOL_BLUETOOTH: Final[int] - SOL_L2CAP: Final[int] - SOL_RFCOMM: Final[int] - SOL_SCO: Final[int] - - + SOCK_CLOEXEC: Final[int] + SOCK_NONBLOCK: Final[int] # -------------------- # Many constants of these forms, documented in the Unix documentation on @@ -708,6 +638,73 @@ if sys.version_info >= (3, 12): # -------------------- # Semi-documented constants + BDADDR_BREDR: Final[int] + BDADDR_LE_PUBLIC: Final[int] + BDADDR_LE_RANDOM: Final[int] + BT_CHANNEL_POLICY: Final[int] + BT_CHANNEL_POLICY_BREDR_ONLY: Final[int] + BT_CHANNEL_POLICY_BREDR_PREFERRED: Final[int] + BT_CODEC: Final[int] + BT_DEFER_SETUP: Final[int] + BT_FLUSHABLE: Final[int] + BT_FLUSHABLE_OFF: Final[int] + BT_FLUSHABLE_ON: Final[int] + BT_ISO_QOS: Final[int] + BT_MODE: Final[int] + BT_MODE_BASIC: Final[int] + BT_MODE_ERTM: Final[int] + BT_MODE_EXT_FLOWCTL: Final[int] + BT_MODE_LE_FLOWCTL: Final[int] + BT_MODE_STREAMING: Final[int] + BT_PHY: Final[int] + BT_PHY_BR_1M_1SLOT: Final[int] + BT_PHY_BR_1M_3SLOT: Final[int] + BT_PHY_BR_1M_5SLOT: Final[int] + BT_PHY_EDR_2M_1SLOT: Final[int] + BT_PHY_EDR_2M_3SLOT: Final[int] + BT_PHY_EDR_2M_5SLOT: Final[int] + BT_PHY_EDR_3M_1SLOT: Final[int] + BT_PHY_EDR_3M_3SLOT: Final[int] + BT_PHY_EDR_3M_5SLOT: Final[int] + BT_PHY_LE_1M_RX: Final[int] + BT_PHY_LE_1M_TX: Final[int] + BT_PHY_LE_2M_RX: Final[int] + BT_PHY_LE_2M_TX: Final[int] + BT_PHY_LE_CODED_RX: Final[int] + BT_PHY_LE_CODED_TX: Final[int] + BT_PKT_STATUS: Final[int] + BT_POWER: Final[int] + BT_POWER_FORCE_ACTIVE_OFF: Final[int] + BT_POWER_FORCE_ACTIVE_ON: Final[int] + BT_RCVMTU: Final[int] + BT_SECURITY: Final[int] + BT_SECURITY_FIPS: Final[int] + BT_SECURITY_HIGH: Final[int] + BT_SECURITY_LOW: Final[int] + BT_SECURITY_MEDIUM: Final[int] + BT_SECURITY_SDP: Final[int] + BT_SNDMTU: Final[int] + BT_VOICE: Final[int] + BT_VOICE_CVSD_16BIT: Final[int] + BT_VOICE_TRANSPARENT: Final[int] + BT_VOICE_TRANSPARENT_16BIT: Final[int] + HCI_CHANNEL_CONTROL: Final[int] + HCI_CHANNEL_LOGGING: Final[int] + HCI_CHANNEL_MONITOR: Final[int] + HCI_CHANNEL_RAW: Final[int] + HCI_CHANNEL_USER: Final[int] + HCI_DEV_NONE: Final[int] + L2CAP_LM: Final[int] + L2CAP_LM_AUTH: Final[int] + L2CAP_LM_ENCRYPT: Final[int] + L2CAP_LM_MASTER: Final[int] + L2CAP_LM_RELIABLE: Final[int] + L2CAP_LM_SECURE: Final[int] + L2CAP_LM_TRUSTED: Final[int] + SOL_BLUETOOTH: Final[int] + SOL_L2CAP: Final[int] + SOL_RFCOMM: Final[int] + SOL_SCO: Final[int] # These are alluded to under the "Socket families" section in the docs # https://docs.python.org/3/library/socket.html#socket-families # -------------------- From d8ee6b55025e32b0a50a8194b96ae71240f4a327 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 28 Jan 2026 05:54:02 +0000 Subject: [PATCH 05/19] [pre-commit.ci] auto fixes from pre-commit.com hooks --- stdlib/_socket.pyi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stdlib/_socket.pyi b/stdlib/_socket.pyi index 8c0ce4e05696..f9a7017d7220 100644 --- a/stdlib/_socket.pyi +++ b/stdlib/_socket.pyi @@ -11,7 +11,7 @@ _CMSGArg: TypeAlias = tuple[int, int, ReadableBuffer] # Addresses can be either tuples of varying lengths (AF_INET, AF_INET6, # AF_NETLINK, AF_TIPC) or strings/buffers (AF_UNIX). # See getsockaddrarg() in socketmodule.c. -_Address: TypeAlias = tuple[Any, ...] | str | ReadableBuffer | int #int is included because of device_id not packed in a tuple is now accepted for BTPROTO_HCI +_Address: TypeAlias = tuple[Any, ...] | str | ReadableBuffer | int #int is included because of device_id not packed in a tuple is now accepted for BTPROTO_HCI _RetAddress: TypeAlias = Any # ===== Constants ===== @@ -36,7 +36,7 @@ if sys.platform == "linux": # Availability: Linux >= 2.6.27 <<<<<<< HEAD SOCK_CLOEXEC: Final[int] - SOCK_NONBLOCK: Final[int] + SOCK_NONBLOCK: Final[int] ======= if sys.version_info >= (3, 14): SOCK_CLOEXEC: Final[int] From 717f7cba45dbec962885704ea8c6a203c6452644 Mon Sep 17 00:00:00 2001 From: Divyanshudevtalla Date: Wed, 28 Jan 2026 11:33:36 +0530 Subject: [PATCH 06/19] fix: resolve merge conflict and update allowlist --- stdlib/_socket.pyi | 145 ++++++++++++++++++++++----------------------- 1 file changed, 71 insertions(+), 74 deletions(-) diff --git a/stdlib/_socket.pyi b/stdlib/_socket.pyi index 8c0ce4e05696..54ea7a6ec13e 100644 --- a/stdlib/_socket.pyi +++ b/stdlib/_socket.pyi @@ -34,81 +34,11 @@ SOCK_SEQPACKET: Final[int] if sys.platform == "linux": # Availability: Linux >= 2.6.27 -<<<<<<< HEAD - SOCK_CLOEXEC: Final[int] - SOCK_NONBLOCK: Final[int] -======= - if sys.version_info >= (3, 14): SOCK_CLOEXEC: Final[int] SOCK_NONBLOCK: Final[int] - BDADDR_BREDR: Final[int] - BDADDR_LE_PUBLIC: Final[int] - BDADDR_LE_RANDOM: Final[int] - BT_CHANNEL_POLICY: Final[int] - BT_CHANNEL_POLICY_BREDR_ONLY: Final[int] - BT_CHANNEL_POLICY_BREDR_PREFERRED: Final[int] - BT_CODEC: Final[int] - BT_DEFER_SETUP: Final[int] - BT_FLUSHABLE: Final[int] - BT_FLUSHABLE_OFF: Final[int] - BT_FLUSHABLE_ON: Final[int] - BT_ISO_QOS: Final[int] - BT_MODE: Final[int] - BT_MODE_BASIC: Final[int] - BT_MODE_ERTM: Final[int] - BT_MODE_EXT_FLOWCTL: Final[int] - BT_MODE_LE_FLOWCTL: Final[int] - BT_MODE_STREAMING: Final[int] - BT_PHY: Final[int] - BT_PHY_BR_1M_1SLOT: Final[int] - BT_PHY_BR_1M_3SLOT: Final[int] - BT_PHY_BR_1M_5SLOT: Final[int] - BT_PHY_EDR_2M_1SLOT: Final[int] - BT_PHY_EDR_2M_3SLOT: Final[int] - BT_PHY_EDR_2M_5SLOT: Final[int] - BT_PHY_EDR_3M_1SLOT: Final[int] - BT_PHY_EDR_3M_3SLOT: Final[int] - BT_PHY_EDR_3M_5SLOT: Final[int] - BT_PHY_LE_1M_RX: Final[int] - BT_PHY_LE_1M_TX: Final[int] - BT_PHY_LE_2M_RX: Final[int] - BT_PHY_LE_2M_TX: Final[int] - BT_PHY_LE_CODED_RX: Final[int] - BT_PHY_LE_CODED_TX: Final[int] - BT_PKT_STATUS: Final[int] - BT_POWER: Final[int] - BT_POWER_FORCE_ACTIVE_OFF: Final[int] - BT_POWER_FORCE_ACTIVE_ON: Final[int] - BT_RCVMTU: Final[int] - BT_SECURITY: Final[int] - BT_SECURITY_FIPS: Final[int] - BT_SECURITY_HIGH: Final[int] - BT_SECURITY_LOW: Final[int] - BT_SECURITY_MEDIUM: Final[int] - BT_SECURITY_SDP: Final[int] - BT_SNDMTU: Final[int] - BT_VOICE: Final[int] - BT_VOICE_CVSD_16BIT: Final[int] - BT_VOICE_TRANSPARENT: Final[int] - BT_VOICE_TRANSPARENT_16BIT: Final[int] - HCI_CHANNEL_CONTROL: Final[int] - HCI_CHANNEL_LOGGING: Final[int] - HCI_CHANNEL_MONITOR: Final[int] - HCI_CHANNEL_RAW: Final[int] - HCI_CHANNEL_USER: Final[int] - HCI_DEV_NONE: Final[int] - L2CAP_LM: Final[int] - L2CAP_LM_AUTH: Final[int] - L2CAP_LM_ENCRYPT: Final[int] - L2CAP_LM_MASTER: Final[int] - L2CAP_LM_RELIABLE: Final[int] - L2CAP_LM_SECURE: Final[int] - L2CAP_LM_TRUSTED: Final[int] - SOL_BLUETOOTH: Final[int] - SOL_L2CAP: Final[int] - SOL_RFCOMM: Final[int] - SOL_SCO: Final[int] ->>>>>>> 541eb421702a70a5e52caccf0e494813b7ed0dee + + + # -------------------- # Many constants of these forms, documented in the Unix documentation on @@ -708,7 +638,74 @@ if sys.version_info >= (3, 12): ETHERTYPE_IP: Final[int] ETHERTYPE_IPV6: Final[int] ETHERTYPE_VLAN: Final[int] - + BDADDR_BREDR: Final[int] + BDADDR_LE_PUBLIC: Final[int] + BDADDR_LE_RANDOM: Final[int] + BT_CHANNEL_POLICY: Final[int] + BT_CHANNEL_POLICY_BREDR_ONLY: Final[int] + BT_CHANNEL_POLICY_BREDR_PREFERRED: Final[int] + BT_CODEC: Final[int] + BT_DEFER_SETUP: Final[int] + BT_FLUSHABLE: Final[int] + BT_FLUSHABLE_OFF: Final[int] + BT_FLUSHABLE_ON: Final[int] + BT_ISO_QOS: Final[int] + BT_MODE: Final[int] + BT_MODE_BASIC: Final[int] + BT_MODE_ERTM: Final[int] + BT_MODE_EXT_FLOWCTL: Final[int] + BT_MODE_LE_FLOWCTL: Final[int] + BT_MODE_STREAMING: Final[int] + BT_PHY: Final[int] + BT_PHY_BR_1M_1SLOT: Final[int] + BT_PHY_BR_1M_3SLOT: Final[int] + BT_PHY_BR_1M_5SLOT: Final[int] + BT_PHY_EDR_2M_1SLOT: Final[int] + BT_PHY_EDR_2M_3SLOT: Final[int] + BT_PHY_EDR_2M_5SLOT: Final[int] + BT_PHY_EDR_3M_1SLOT: Final[int] + BT_PHY_EDR_3M_3SLOT: Final[int] + BT_PHY_EDR_3M_5SLOT: Final[int] + BT_PHY_LE_1M_RX: Final[int] + BT_PHY_LE_1M_TX: Final[int] + BT_PHY_LE_2M_RX: Final[int] + BT_PHY_LE_2M_TX: Final[int] + BT_PHY_LE_CODED_RX: Final[int] + BT_PHY_LE_CODED_TX: Final[int] + BT_PKT_STATUS: Final[int] + BT_POWER: Final[int] + BT_POWER_FORCE_ACTIVE_OFF: Final[int] + BT_POWER_FORCE_ACTIVE_ON: Final[int] + BT_RCVMTU: Final[int] + BT_SECURITY: Final[int] + BT_SECURITY_FIPS: Final[int] + BT_SECURITY_HIGH: Final[int] + BT_SECURITY_LOW: Final[int] + BT_SECURITY_MEDIUM: Final[int] + BT_SECURITY_SDP: Final[int] + BT_SNDMTU: Final[int] + BT_VOICE: Final[int] + BT_VOICE_CVSD_16BIT: Final[int] + BT_VOICE_TRANSPARENT: Final[int] + BT_VOICE_TRANSPARENT_16BIT: Final[int] + HCI_CHANNEL_CONTROL: Final[int] + HCI_CHANNEL_LOGGING: Final[int] + HCI_CHANNEL_MONITOR: Final[int] + HCI_CHANNEL_RAW: Final[int] + HCI_CHANNEL_USER: Final[int] + HCI_DEV_NONE: Final[int] + L2CAP_LM: Final[int] + L2CAP_LM_AUTH: Final[int] + L2CAP_LM_ENCRYPT: Final[int] + L2CAP_LM_MASTER: Final[int] + L2CAP_LM_RELIABLE: Final[int] + L2CAP_LM_SECURE: Final[int] + L2CAP_LM_TRUSTED: Final[int] + SOL_BLUETOOTH: Final[int] + SOL_L2CAP: Final[int] + SOL_RFCOMM: Final[int] + SOL_SCO: Final[int] + # -------------------- # Semi-documented constants BDADDR_BREDR: Final[int] From 3efa725c7f9aa48f686b139f530c814d74788f81 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 28 Jan 2026 06:11:10 +0000 Subject: [PATCH 07/19] [pre-commit.ci] auto fixes from pre-commit.com hooks --- stdlib/_socket.pyi | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/stdlib/_socket.pyi b/stdlib/_socket.pyi index 52eb1a9fbb0a..3711b7d62c20 100644 --- a/stdlib/_socket.pyi +++ b/stdlib/_socket.pyi @@ -44,9 +44,9 @@ if sys.platform == "linux": >>>>>>> d8ee6b55025e32b0a50a8194b96ae71240f4a327 SOCK_CLOEXEC: Final[int] SOCK_NONBLOCK: Final[int] - - - + + + # -------------------- # Many constants of these forms, documented in the Unix documentation on @@ -713,7 +713,7 @@ if sys.version_info >= (3, 12): SOL_L2CAP: Final[int] SOL_RFCOMM: Final[int] SOL_SCO: Final[int] - + # -------------------- # Semi-documented constants BDADDR_BREDR: Final[int] From b9f25b757e4d8c9a62eae1e8b2fe858fd18f14d6 Mon Sep 17 00:00:00 2001 From: Divyanshudevtalla Date: Wed, 28 Jan 2026 13:15:06 +0530 Subject: [PATCH 08/19] fix : resolve all CI faillures by updating socket.pyi and cleaning markers --- stdlib/_socket.pyi | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/stdlib/_socket.pyi b/stdlib/_socket.pyi index 52eb1a9fbb0a..9e9bc2f8e30d 100644 --- a/stdlib/_socket.pyi +++ b/stdlib/_socket.pyi @@ -34,19 +34,9 @@ SOCK_SEQPACKET: Final[int] if sys.platform == "linux": # Availability: Linux >= 2.6.27 -<<<<<<< HEAD -======= -<<<<<<< HEAD - SOCK_CLOEXEC: Final[int] - SOCK_NONBLOCK: Final[int] -======= if sys.version_info >= (3, 14): ->>>>>>> d8ee6b55025e32b0a50a8194b96ae71240f4a327 SOCK_CLOEXEC: Final[int] SOCK_NONBLOCK: Final[int] - - - # -------------------- # Many constants of these forms, documented in the Unix documentation on From 096518f04c76798433146dc58cae462b41bf114b Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 28 Jan 2026 11:22:37 +0000 Subject: [PATCH 09/19] [pre-commit.ci] auto fixes from pre-commit.com hooks --- stdlib/@tests/stubtest_allowlists/common.txt | 2 +- stdlib/_socket.pyi | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/stdlib/@tests/stubtest_allowlists/common.txt b/stdlib/@tests/stubtest_allowlists/common.txt index 11944a8fbcd1..354437f2a8e8 100644 --- a/stdlib/@tests/stubtest_allowlists/common.txt +++ b/stdlib/@tests/stubtest_allowlists/common.txt @@ -616,4 +616,4 @@ _socket.L2CAP_LM_SECURE _socket.L2CAP_LM_TRUSTED _socket.SOL_BLUETOOTH _socket.SOL_L2CAP -_socket.SOL_SCO \ No newline at end of file +_socket.SOL_SCO diff --git a/stdlib/_socket.pyi b/stdlib/_socket.pyi index ad26b61a0d73..49092a64d0bd 100644 --- a/stdlib/_socket.pyi +++ b/stdlib/_socket.pyi @@ -11,7 +11,9 @@ _CMSGArg: TypeAlias = tuple[int, int, ReadableBuffer] # Addresses can be either tuples of varying lengths (AF_INET, AF_INET6, # AF_NETLINK, AF_TIPC) or strings/buffers (AF_UNIX). # See getsockaddrarg() in socketmodule.c. -_Address: TypeAlias = tuple[Any, ...] | str | ReadableBuffer | int #int is included because of device_id not packed in a tuple is now accepted for BTPROTO_HCI +_Address: TypeAlias = ( + tuple[Any, ...] | str | ReadableBuffer | int +) # int is included because of device_id not packed in a tuple is now accepted for BTPROTO_HCI _RetAddress: TypeAlias = Any # ===== Constants ===== @@ -579,7 +581,7 @@ if sys.platform == "linux": SO_VM_SOCKETS_BUFFER_SIZE: Final = 0 SO_VM_SOCKETS_BUFFER_MIN_SIZE: Final = 1 VM_SOCKETS_INVALID_VERSION: Final = 0xFFFFFFFF # undocumented - #Bluetooth constants new in 3.14 + # Bluetooth constants new in 3.14 if sys.version_info >= (3, 14): BDADDR_BREDR: int BDADDR_LE_PUBLIC: int @@ -739,8 +741,6 @@ if sys.version_info >= (3, 12): SOL_L2CAP: Final[int] SOL_RFCOMM: Final[int] SOL_SCO: Final[int] - - # These are alluded to under the "Socket families" section in the docs # https://docs.python.org/3/library/socket.html#socket-families From e5a8806721778e630e79832c069dd19a7f2320d4 Mon Sep 17 00:00:00 2001 From: Divyanshudevtalla Date: Wed, 28 Jan 2026 22:37:44 +0530 Subject: [PATCH 10/19] refactor: remove duplicates,sort alphabatecally, and update allowlist --- stdlib/@tests/stubtest_allowlists/common.txt | 67 ---------- stdlib/@tests/stubtest_allowlists/linux.txt | 130 +++++++++---------- stdlib/_socket.pyi | 57 ++------ 3 files changed, 75 insertions(+), 179 deletions(-) diff --git a/stdlib/@tests/stubtest_allowlists/common.txt b/stdlib/@tests/stubtest_allowlists/common.txt index 11944a8fbcd1..d8956df6b327 100644 --- a/stdlib/@tests/stubtest_allowlists/common.txt +++ b/stdlib/@tests/stubtest_allowlists/common.txt @@ -550,70 +550,3 @@ xml.etree.cElementTree.XMLParser.__init__ # Defined in C so has general signatu # These would ideally be special-cased by type checkers; see https://github.com/python/mypy/issues/2220 xml.etree.ElementTree.Element.__iter__ xml.etree.cElementTree.Element.__iter__ -_socket.BDADDR_BREDR -_socket.BDADDR_LE_PUBLIC -_socket.BDADDR_LE_RANDOM -_socket.BT_CHANNEL_POLICY -_socket.BT_CHANNEL_POLICY_BREDR_ONLY -_socket.BT_CHANNEL_POLICY_BREDR_PREFERRED -_socket.BT_CODEC -_socket.BT_DEFER_SETUP -_socket.BT_FLUSHABLE -_socket.BT_FLUSHABLE_OFF -_socket.BT_FLUSHABLE_ON -_socket.BT_ISO_QOS -_socket.BT_MODE -_socket.BT_MODE_BASIC -_socket.BT_MODE_ERTM -_socket.BT_MODE_STREAM -_socket.BT_PHY -_socket.BT_PHY_BR_1M_1SLOT -_socket.BT_PHY_EDR_2M_1SLOT -_socket.BT_PHY_EDR_2M_3SLOT -_socket.BT_PHY_EDR_2M_5SLOT -_socket.BT_PHY_EDR_3M_1SLOT -_socket.BT_PHY_EDR_3M_3SLOT -_socket.BT_PHY_EDR_3M_5SLOT -_socket.BT_PHY_LE_1M_RX -_socket.BT_PHY_LE_1M_TX -_socket.BT_PHY_LE_2M_RX -_socket.BT_PHY_LE_2M_TX -_socket.BT_PHY_LE_CODED_RX -_socket.BT_PHY_LE_CODED_TX -_socket.BT_PKT_STATUS -_socket.BT_POWER -_socket.BT_POWER_FORCE_ACTIVE_OFF -_socket.BT_POWER_FORCE_ACTIVE_ON -_socket.BT_RCVMTU -_socket.BT_SCM_PKT_STATUS -_socket.BT_SNDMTU -_socket.BT_VOICE -_socket.BT_VOICE_FOR_MSBC -_socket.SOL_SCO -_socket.SOL_RFCOMM -_socket.SOL_L2CAP -_socket.BT_SECURITY -_socket.BT_SECURITY_FIPS -_socket.BT_SECURITY_HIGH -_socket.BT_SECURITY_LOW -_socket.BT_SECURITY_MEDIUM -_socket.BT_SECURITY_SDP -_socket.BT_VOICE_CVSD_16BIT -_socket.BT_VOICE_TRANSPARENT -_socket.BT_VOICE_TRANSPARENT_16BIT -_socket.HCI_CHANNEL_CONTROL -_socket.HCI_CHANNEL_LOGGING -_socket.HCI_CHANNEL_MONITOR -_socket.HCI_CHANNEL_RAW -_socket.HCI_CHANNEL_USER -_socket.HCI_DEV_NONE -_socket.L2CAP_LM -_socket.L2CAP_LM_AUTH -_socket.L2CAP_LM_ENCRYPT -_socket.L2CAP_LM_MASTER -_socket.L2CAP_LM_RELIABLE -_socket.L2CAP_LM_SECURE -_socket.L2CAP_LM_TRUSTED -_socket.SOL_BLUETOOTH -_socket.SOL_L2CAP -_socket.SOL_SCO \ No newline at end of file diff --git a/stdlib/@tests/stubtest_allowlists/linux.txt b/stdlib/@tests/stubtest_allowlists/linux.txt index f3952f4b093c..7f8f74995690 100644 --- a/stdlib/@tests/stubtest_allowlists/linux.txt +++ b/stdlib/@tests/stubtest_allowlists/linux.txt @@ -35,72 +35,70 @@ select.poll # Actually a function; we have a class so it can be used as a type (_?socket\.BTPROTO_L2CAP)? (_?socket\.BTPROTO_RFCOMM)? (_?socket\.BTPROTO_SCO)? -_socket.BDADDR_BREDR -_socket.BDADDR_LE_PUBLIC -_socket.BDADDR_LE_RANDOM -_socket.BT_CHANNEL_POLICY -_socket.BT_CHANNEL_POLICY_BREDR_ONLY -_socket.BT_CHANNEL_POLICY_BREDR_PREFERRED -_socket.BT_CODEC -_socket.BT_DEFER_SETUP -_socket.BT_FLUSHABLE -_socket.BT_FLUSHABLE_OFF -_socket.BT_FLUSHABLE_ON -_socket.BT_ISO_QOS -_socket.BT_MODE -_socket.BT_MODE_BASIC -_socket.BT_MODE_ERTM -_socket.BT_MODE_EXT_FLOWCTL -_socket.BT_MODE_LE_FLOWCTL -_socket.BT_MODE_STREAMING -_socket.BT_PHY -_socket.BT_PHY_BR_1M_1SLOT -_socket.BT_PHY_BR_1M_3SLOT -_socket.BT_PHY_BR_1M_5SLOT -_socket.BT_PHY_EDR_2M_1SLOT -_socket.BT_PHY_EDR_2M_3SLOT -_socket.BT_PHY_EDR_2M_5SLOT -_socket.BT_PHY_EDR_3M_1SLOT -_socket.BT_PHY_EDR_3M_3SLOT -_socket.BT_PHY_EDR_3M_5SLOT -_socket.BT_PHY_LE_1M_RX -_socket.BT_PHY_LE_1M_TX -_socket.BT_PHY_LE_2M_RX -_socket.BT_PHY_LE_2M_TX -_socket.BT_PHY_LE_CODED_RX -_socket.BT_PHY_LE_CODED_TX -_socket.BT_PKT_STATUS -_socket.BT_POWER -_socket.BT_POWER_FORCE_ACTIVE_OFF -_socket.BT_POWER_FORCE_ACTIVE_ON -_socket.BT_RCVMTU -_socket.BT_SECURITY -_socket.BT_SECURITY_FIPS -_socket.BT_SECURITY_HIGH -_socket.BT_SECURITY_LOW -_socket.BT_SECURITY_MEDIUM -_socket.BT_SECURITY_SDP -_socket.BT_SNDMTU -_socket.BT_VOICE -_socket.BT_VOICE_CVSD_16BIT -_socket.BT_VOICE_TRANSPARENT -_socket.BT_VOICE_TRANSPARENT_16BIT -_socket.HCI_CHANNEL_CONTROL -_socket.HCI_CHANNEL_LOGGING -_socket.HCI_CHANNEL_MONITOR -_socket.HCI_CHANNEL_RAW -_socket.HCI_CHANNEL_USER -_socket.HCI_DEV_NONE -_socket.L2CAP_LM -_socket.L2CAP_LM_AUTH -_socket.L2CAP_LM_ENCRYPT -_socket.L2CAP_LM_MASTER -_socket.L2CAP_LM_RELIABLE -_socket.L2CAP_LM_SECURE -_socket.L2CAP_LM_TRUSTED -_socket.SOL_BLUETOOTH -_socket.SOL_L2CAP -_socket.SOL_SCO +(_?socket\.BDADDR_BREDR)? +(_?socket\.BDADDR_LE_PUBLIC)? +(_?socket\.BDADDR_LE_RANDOM)? +(_?socket\.BT_CHANNEL_POLICY)? +(_?socket\.BT_CHANNEL_POLICY_BREDR_ONLY)? +(_?socket\.BT_CHANNEL_POLICY_BREDR_PREFERRED)? +(_?socket\.BT_CODEC)? +(_?socket\.BT_DEFER_SETUP)? +(_?socket\.BT_FLUSHABLE)? +(_?socket\.BT_FLUSHABLE_OFF)? +(_?socket\.BT_FLUSHABLE_ON)? +(_?socket\.BT_ISO_QOS)? +(_?socket\.BT_MODE)? +(_?socket\.BT_MODE_BASIC)? +(_?socket\.BT_MODE_ERTM)? +(_?socket\.BT_MODE_EXT_FLOWCTL)? +(_?socket\.BT_MODE_LE_FLOWCTL)? +(_?socket\.BT_MODE_STREAMING)? +(_?socket\.BT_PHY)? +(_?socket\.BT_PHY_BR_1M_1SLOT)? +(_?socket\.BT_PHY_BR_1M_3SLOT)? +(_?socket\.BT_PHY_BR_1M_5SLOT)? +(_?socket\.BT_PHY_EDR_2M_1SLOT)? +(_?socket\.BT_PHY_EDR_2M_3SLOT)? +(_?socket\.BT_PHY_EDR_2M_5SLOT)? +(_?socket\.BT_PHY_EDR_3M_1SLOT)? +(_?socket\.BT_PHY_EDR_3M_3SLOT)? +(_?socket\.BT_PHY_EDR_3M_5SLOT)? +(_?socket\.BT_PHY_LE_1M_RX)? +(_?socket\.BT_PHY_LE_1M_TX)? +(_?socket\.BT_PHY_LE_2M_TX)? +(_?socket\.BT_PHY_LE_CODED_RX)? +(_?socket\.BT_PHY_LE_CODED_TX)? +(_?socket\.BT_PKT_STATUS)? +(_?socket\.BT_POWER)? +(_?socket\.BT_POWER_FORCE_ACTIVE_OFF)? +(_?socket\.BT_POWER_FORCE_ACTIVE_ON)? +(_?socket\.BT_RCVMTU)? +(_?socket\.BT_SECURITY)? +(_?socket\.BT_SECURITY_FIPS)? +(_?socket\.BT_SECURITY_HIGH)? +(_?socket\.BT_SECURITY_LOW)? +(_?socket\.BT_SECURITY_MEDIUM)? +(_?socket\.BT_SECURITY_SDP)? +(_?socket\.BT_SNDMTU)? +(_?socket\.BT_VOICE)? +(_?socket\.BT_VOICE_CVSD_16BIT)? +(_?socket\.BT_VOICE_TRANSPARENT)? +(_?socket\.BT_VOICE_TRANSPARENT_16BIT)? +(_?socket\.HCI_CHANNEL_CONTROL)? +(_?socket\.HCI_CHANNEL_LOGGING)? +(_?socket\.HCI_CHANNEL_MONITOR)? +(_?socket\.HCI_CHANNEL_USER)? +(_?socket\.HCI_DEV_NONE)? +(_?socket\.L2CAP_LM)? +(_?socket\.L2CAP_LM_AUTH)? +(_?socket\.L2CAP_LM_ENCRYPT)? +(_?socket\.L2CAP_LM_MASTER)? +(_?socket\.L2CAP_LM_RELIABLE)? +(_?socket\.L2CAP_LM_SECURE)? +(_?socket\.L2CAP_LM_TRUSTED)? +(_?socket\.SOL_BLUETOOTH)? +(_?socket\.SOL_L2CAP)? +(_?socket\.SOL_SCO)? # These seem like they should be available on Linux, but they're not # on GitHub Actions runners for some reason. _?socket.IPX_TYPE diff --git a/stdlib/_socket.pyi b/stdlib/_socket.pyi index ad26b61a0d73..7ca202de8b09 100644 --- a/stdlib/_socket.pyi +++ b/stdlib/_socket.pyi @@ -584,20 +584,19 @@ if sys.platform == "linux": BDADDR_BREDR: int BDADDR_LE_PUBLIC: int BDADDR_LE_RANDOM: int - BT_CHANNEL_POLICY: int BT_CHANNEL_POLICY_BREDR_ONLY: int BT_CHANNEL_POLICY_BREDR_PREFERRED: int + BT_CHANNEL_POLICY: int BT_CODEC: int BT_DEFER_SETUP: int - BT_FLUSHABLE: int BT_FLUSHABLE_OFF: int BT_FLUSHABLE_ON: int + BT_FLUSHABLE: int BT_ISO_QOS: int - BT_MODE: int BT_MODE_BASIC: int BT_MODE_ERTM: int BT_MODE_STREAM: int - BT_PHY: int + BT_MODE: int BT_PHY_BR_1M_1SLOT: int BT_PHY_EDR_2M_1SLOT: int BT_PHY_EDR_2M_3SLOT: int @@ -611,15 +610,16 @@ if sys.platform == "linux": BT_PHY_LE_2M_TX: int BT_PHY_LE_CODED_RX: int BT_PHY_LE_CODED_TX: int + BT_PHY: int BT_PKT_STATUS: int - BT_POWER: int BT_POWER_FORCE_ACTIVE_OFF: int BT_POWER_FORCE_ACTIVE_ON: int + BT_POWER: int BT_RCVMTU: int BT_SCM_PKT_STATUS: int BT_SNDMTU: int - BT_VOICE: int BT_VOICE_FOR_MSBC: int + BT_VOICE: int # Documented as only available on BSD, macOS, but empirically sometimes # available on Windows if sys.platform != "linux": @@ -672,69 +672,34 @@ if sys.version_info >= (3, 12): ETHERTYPE_VLAN: Final[int] # -------------------- # Semi-documented constants - BDADDR_BREDR: Final[int] - BDADDR_LE_PUBLIC: Final[int] - BDADDR_LE_RANDOM: Final[int] - BT_CHANNEL_POLICY: Final[int] - BT_CHANNEL_POLICY_BREDR_ONLY: Final[int] - BT_CHANNEL_POLICY_BREDR_PREFERRED: Final[int] - BT_CODEC: Final[int] - BT_DEFER_SETUP: Final[int] - BT_FLUSHABLE: Final[int] - BT_FLUSHABLE_OFF: Final[int] - BT_FLUSHABLE_ON: Final[int] - BT_ISO_QOS: Final[int] - BT_MODE: Final[int] - BT_MODE_BASIC: Final[int] - BT_MODE_ERTM: Final[int] + BT_MODE_EXT_FLOWCTL: Final[int] BT_MODE_LE_FLOWCTL: Final[int] BT_MODE_STREAMING: Final[int] - BT_PHY: Final[int] - BT_PHY_BR_1M_1SLOT: Final[int] BT_PHY_BR_1M_3SLOT: Final[int] - BT_PHY_BR_1M_5SLOT: Final[int] - BT_PHY_EDR_2M_1SLOT: Final[int] - BT_PHY_EDR_2M_3SLOT: Final[int] - BT_PHY_EDR_2M_5SLOT: Final[int] - BT_PHY_EDR_3M_1SLOT: Final[int] - BT_PHY_EDR_3M_3SLOT: Final[int] - BT_PHY_EDR_3M_5SLOT: Final[int] - BT_PHY_LE_1M_RX: Final[int] - BT_PHY_LE_1M_TX: Final[int] - BT_PHY_LE_2M_RX: Final[int] - BT_PHY_LE_2M_TX: Final[int] - BT_PHY_LE_CODED_RX: Final[int] - BT_PHY_LE_CODED_TX: Final[int] - BT_PKT_STATUS: Final[int] - BT_POWER: Final[int] - BT_POWER_FORCE_ACTIVE_OFF: Final[int] - BT_POWER_FORCE_ACTIVE_ON: Final[int] - BT_RCVMTU: Final[int] - BT_SECURITY: Final[int] + BT_PHY_BR_1M_5SLOT: Final[int] BT_SECURITY_FIPS: Final[int] BT_SECURITY_HIGH: Final[int] BT_SECURITY_LOW: Final[int] BT_SECURITY_MEDIUM: Final[int] BT_SECURITY_SDP: Final[int] - BT_SNDMTU: Final[int] - BT_VOICE: Final[int] + BT_SECURITY: Final[int] BT_VOICE_CVSD_16BIT: Final[int] - BT_VOICE_TRANSPARENT: Final[int] BT_VOICE_TRANSPARENT_16BIT: Final[int] + BT_VOICE_TRANSPARENT: Final[int] HCI_CHANNEL_CONTROL: Final[int] HCI_CHANNEL_LOGGING: Final[int] HCI_CHANNEL_MONITOR: Final[int] HCI_CHANNEL_RAW: Final[int] HCI_CHANNEL_USER: Final[int] HCI_DEV_NONE: Final[int] - L2CAP_LM: Final[int] L2CAP_LM_AUTH: Final[int] L2CAP_LM_ENCRYPT: Final[int] L2CAP_LM_MASTER: Final[int] L2CAP_LM_RELIABLE: Final[int] L2CAP_LM_SECURE: Final[int] L2CAP_LM_TRUSTED: Final[int] + L2CAP_LM: Final[int] SOL_BLUETOOTH: Final[int] SOL_L2CAP: Final[int] SOL_RFCOMM: Final[int] From f2eb6ac4633285ad3e8023d2b851bbaa3b34de6c Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 28 Jan 2026 17:21:15 +0000 Subject: [PATCH 11/19] [pre-commit.ci] auto fixes from pre-commit.com hooks --- stdlib/@tests/stubtest_allowlists/linux.txt | 2 +- stdlib/_socket.pyi | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/stdlib/@tests/stubtest_allowlists/linux.txt b/stdlib/@tests/stubtest_allowlists/linux.txt index 7f8f74995690..b841dea1aa1d 100644 --- a/stdlib/@tests/stubtest_allowlists/linux.txt +++ b/stdlib/@tests/stubtest_allowlists/linux.txt @@ -39,7 +39,7 @@ select.poll # Actually a function; we have a class so it can be used as a type (_?socket\.BDADDR_LE_PUBLIC)? (_?socket\.BDADDR_LE_RANDOM)? (_?socket\.BT_CHANNEL_POLICY)? -(_?socket\.BT_CHANNEL_POLICY_BREDR_ONLY)? +(_?socket\.BT_CHANNEL_POLICY_BREDR_ONLY)? (_?socket\.BT_CHANNEL_POLICY_BREDR_PREFERRED)? (_?socket\.BT_CODEC)? (_?socket\.BT_DEFER_SETUP)? diff --git a/stdlib/_socket.pyi b/stdlib/_socket.pyi index ec4a68246d8d..29c9292050cf 100644 --- a/stdlib/_socket.pyi +++ b/stdlib/_socket.pyi @@ -674,21 +674,21 @@ if sys.version_info >= (3, 12): ETHERTYPE_VLAN: Final[int] # -------------------- # Semi-documented constants - + BT_MODE_EXT_FLOWCTL: Final[int] BT_MODE_LE_FLOWCTL: Final[int] BT_MODE_STREAMING: Final[int] BT_PHY_BR_1M_3SLOT: Final[int] - BT_PHY_BR_1M_5SLOT: Final[int] + BT_PHY_BR_1M_5SLOT: Final[int] BT_SECURITY_FIPS: Final[int] BT_SECURITY_HIGH: Final[int] BT_SECURITY_LOW: Final[int] BT_SECURITY_MEDIUM: Final[int] BT_SECURITY_SDP: Final[int] - BT_SECURITY: Final[int] + BT_SECURITY: Final[int] BT_VOICE_CVSD_16BIT: Final[int] BT_VOICE_TRANSPARENT_16BIT: Final[int] - BT_VOICE_TRANSPARENT: Final[int] + BT_VOICE_TRANSPARENT: Final[int] HCI_CHANNEL_CONTROL: Final[int] HCI_CHANNEL_LOGGING: Final[int] HCI_CHANNEL_MONITOR: Final[int] From 16415a643ae546b0f5c3e0947572e1be68181af7 Mon Sep 17 00:00:00 2001 From: Divyanshudevtalla Date: Thu, 29 Jan 2026 11:04:42 +0530 Subject: [PATCH 12/19] Fix : add missing runtime constants to linux-py314 allowlist --- stdlib/@tests/stubtest_allowlists/linux-py314.txt | 8 ++++++++ stdlib/@tests/stubtest_allowlists/win32-py312.txt | 7 +++++++ stdlib/@tests/stubtest_allowlists/win32-py313.txt | 7 +++++++ stdlib/_socket.pyi | 4 ++-- 4 files changed, 24 insertions(+), 2 deletions(-) diff --git a/stdlib/@tests/stubtest_allowlists/linux-py314.txt b/stdlib/@tests/stubtest_allowlists/linux-py314.txt index 98f33e427a30..996788019618 100644 --- a/stdlib/@tests/stubtest_allowlists/linux-py314.txt +++ b/stdlib/@tests/stubtest_allowlists/linux-py314.txt @@ -5,3 +5,11 @@ # Starting with Python 3.14.1, these methods accept None for some of their # parameters, but would raise a TypeError with Python 3.14.0. mmap.mmap.madvise + +# Bluetooth constants new in 3.14 but missing at runtime on Ubuntu test runners +_socket.BT_MODE_STREAM +_socket.BT_PHY_LE_2M_RX +_socket.BT_SCM_PKT_STATUS +_socket.BT_VOICE_FOR_MSBC +_socket.HCI_CHANNEL_RAW +_socket.SOL_RFCOMM diff --git a/stdlib/@tests/stubtest_allowlists/win32-py312.txt b/stdlib/@tests/stubtest_allowlists/win32-py312.txt index f0e828de25f6..ed5adb61c74d 100644 --- a/stdlib/@tests/stubtest_allowlists/win32-py312.txt +++ b/stdlib/@tests/stubtest_allowlists/win32-py312.txt @@ -56,3 +56,10 @@ crypt nis ossaudiodev spwd + +# Bluetooth constants added for Python 3.14+ but missing at runtime on Windows test runners +_socket.SO_BTH_ENCRYPT +_socket.SO_BTH_MTU +_socket.SO_BTH_MTU_MAX +_socket.SO_BTH_MTU_MIN +_socket.SOL_RFCOMM diff --git a/stdlib/@tests/stubtest_allowlists/win32-py313.txt b/stdlib/@tests/stubtest_allowlists/win32-py313.txt index 070fce3e9c49..930a86257358 100644 --- a/stdlib/@tests/stubtest_allowlists/win32-py313.txt +++ b/stdlib/@tests/stubtest_allowlists/win32-py313.txt @@ -6,3 +6,10 @@ # (Hard to add types for unless we add stubs for the undocumented _overlapped module...) asyncio.IocpProactor.finish_socket_func asyncio.windows_events.IocpProactor.finish_socket_func + +# Bluetooth constants added for Python 3.14+ but missing at runtime on Windows test runners +_socket.SO_BTH_ENCRYPT +_socket.SO_BTH_MTU +_socket.SO_BTH_MTU_MAX +_socket.SO_BTH_MTU_MIN +_socket.SOL_RFCOMM \ No newline at end of file diff --git a/stdlib/_socket.pyi b/stdlib/_socket.pyi index ec4a68246d8d..8df3b045d00a 100644 --- a/stdlib/_socket.pyi +++ b/stdlib/_socket.pyi @@ -12,8 +12,8 @@ _CMSGArg: TypeAlias = tuple[int, int, ReadableBuffer] # AF_NETLINK, AF_TIPC) or strings/buffers (AF_UNIX). # See getsockaddrarg() in socketmodule.c. _Address: TypeAlias = ( - tuple[Any, ...] | str | ReadableBuffer | int -) # int is included because of device_id not packed in a tuple is now accepted for BTPROTO_HCI + tuple[Any, ...] | str | ReadableBuffer | int) + # int is included because of device_id not packed in a tuple is now accepted for BTPROTO_HCI _RetAddress: TypeAlias = Any # ===== Constants ===== From d73e6e7ecce043b77def492c612aaba3e5e41c64 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 29 Jan 2026 06:01:32 +0000 Subject: [PATCH 13/19] [pre-commit.ci] auto fixes from pre-commit.com hooks --- stdlib/@tests/stubtest_allowlists/win32-py313.txt | 2 +- stdlib/_socket.pyi | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/stdlib/@tests/stubtest_allowlists/win32-py313.txt b/stdlib/@tests/stubtest_allowlists/win32-py313.txt index 930a86257358..9211eac5fb9a 100644 --- a/stdlib/@tests/stubtest_allowlists/win32-py313.txt +++ b/stdlib/@tests/stubtest_allowlists/win32-py313.txt @@ -12,4 +12,4 @@ _socket.SO_BTH_ENCRYPT _socket.SO_BTH_MTU _socket.SO_BTH_MTU_MAX _socket.SO_BTH_MTU_MIN -_socket.SOL_RFCOMM \ No newline at end of file +_socket.SOL_RFCOMM diff --git a/stdlib/_socket.pyi b/stdlib/_socket.pyi index c6f2a8d9389d..00f4886059ff 100644 --- a/stdlib/_socket.pyi +++ b/stdlib/_socket.pyi @@ -11,9 +11,8 @@ _CMSGArg: TypeAlias = tuple[int, int, ReadableBuffer] # Addresses can be either tuples of varying lengths (AF_INET, AF_INET6, # AF_NETLINK, AF_TIPC) or strings/buffers (AF_UNIX). # See getsockaddrarg() in socketmodule.c. -_Address: TypeAlias = ( - tuple[Any, ...] | str | ReadableBuffer | int) - # int is included because of device_id not packed in a tuple is now accepted for BTPROTO_HCI +_Address: TypeAlias = tuple[Any, ...] | str | ReadableBuffer | int +# int is included because of device_id not packed in a tuple is now accepted for BTPROTO_HCI _RetAddress: TypeAlias = Any # ===== Constants ===== From a7e5293c2ac1155b178adc6b2a368d513322f390 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 29 Jan 2026 06:01:32 +0000 Subject: [PATCH 14/19] [pre-commit.ci] auto fixes from pre-commit.com hooks --- stdlib/@tests/stubtest_allowlists/linux-py312.txt | 5 +++++ stdlib/@tests/stubtest_allowlists/linux.txt | 5 +++++ stdlib/@tests/stubtest_allowlists/py310.txt | 7 +++++++ stdlib/@tests/stubtest_allowlists/win32-py310.txt | 7 +++++++ stdlib/@tests/stubtest_allowlists/win32-py313.txt | 2 +- stdlib/@tests/stubtest_allowlists/win32.txt | 7 +++++++ stdlib/_socket.pyi | 5 ++--- 7 files changed, 34 insertions(+), 4 deletions(-) diff --git a/stdlib/@tests/stubtest_allowlists/linux-py312.txt b/stdlib/@tests/stubtest_allowlists/linux-py312.txt index 9d9984713dcb..9f2a01e8a115 100644 --- a/stdlib/@tests/stubtest_allowlists/linux-py312.txt +++ b/stdlib/@tests/stubtest_allowlists/linux-py312.txt @@ -21,3 +21,8 @@ msilib(.[a-z]+)? # doesn't exist in all installations (nis)? + +# Bluetooth constants added for Python 3.14+ but missing at runtime on Ubuntu test runners + +_socket.HCI_CHANNEL_RAW +_socket.SOL_RFCOMM \ No newline at end of file diff --git a/stdlib/@tests/stubtest_allowlists/linux.txt b/stdlib/@tests/stubtest_allowlists/linux.txt index b841dea1aa1d..6621f9a36448 100644 --- a/stdlib/@tests/stubtest_allowlists/linux.txt +++ b/stdlib/@tests/stubtest_allowlists/linux.txt @@ -132,3 +132,8 @@ termios.TIOCTTYGSTRUCT tkinter.Tk.createfilehandler # Methods that come from __getattr__() at runtime tkinter.Tk.deletefilehandler # Methods that come from __getattr__() at runtime + +# Bluetooth constants added for Python 3.14+ but missing at runtime on Ubuntu test runners + +_socket.HCI_CHANNEL_RAW +_socket.SOL_RFCOMM \ No newline at end of file diff --git a/stdlib/@tests/stubtest_allowlists/py310.txt b/stdlib/@tests/stubtest_allowlists/py310.txt index b11ea3c6c7db..f68edbbb1855 100644 --- a/stdlib/@tests/stubtest_allowlists/py310.txt +++ b/stdlib/@tests/stubtest_allowlists/py310.txt @@ -307,3 +307,10 @@ _pickle.Pickler.persistent_id _pickle.Unpickler.persistent_load pickle.Pickler.persistent_id pickle.Unpickler.persistent_load + +# Bluetooth constants added for Python 3.14+ but missing at runtime on Windows test runners +_socket.SO_BTH_ENCRYPT +_socket.SO_BTH_MTU +_socket.SO_BTH_MTU_MAX +_socket.SO_BTH_MTU_MIN +_socket.SOL_RFCOMM diff --git a/stdlib/@tests/stubtest_allowlists/win32-py310.txt b/stdlib/@tests/stubtest_allowlists/win32-py310.txt index f067989f1418..9372bf775d46 100644 --- a/stdlib/@tests/stubtest_allowlists/win32-py310.txt +++ b/stdlib/@tests/stubtest_allowlists/win32-py310.txt @@ -80,3 +80,10 @@ crypt nis ossaudiodev spwd + +# Bluetooth constants added for Python 3.14+ but missing at runtime on Windows test runners +_socket.SO_BTH_ENCRYPT +_socket.SO_BTH_MTU +_socket.SO_BTH_MTU_MAX +_socket.SO_BTH_MTU_MIN +_socket.SOL_RFCOMM diff --git a/stdlib/@tests/stubtest_allowlists/win32-py313.txt b/stdlib/@tests/stubtest_allowlists/win32-py313.txt index 930a86257358..9211eac5fb9a 100644 --- a/stdlib/@tests/stubtest_allowlists/win32-py313.txt +++ b/stdlib/@tests/stubtest_allowlists/win32-py313.txt @@ -12,4 +12,4 @@ _socket.SO_BTH_ENCRYPT _socket.SO_BTH_MTU _socket.SO_BTH_MTU_MAX _socket.SO_BTH_MTU_MIN -_socket.SOL_RFCOMM \ No newline at end of file +_socket.SOL_RFCOMM diff --git a/stdlib/@tests/stubtest_allowlists/win32.txt b/stdlib/@tests/stubtest_allowlists/win32.txt index b56fe5a2042e..b55650a9a619 100644 --- a/stdlib/@tests/stubtest_allowlists/win32.txt +++ b/stdlib/@tests/stubtest_allowlists/win32.txt @@ -39,3 +39,10 @@ tty multiprocessing.popen_fork # exists on Windows but fails to import multiprocessing.popen_forkserver # exists on Windows but fails to import multiprocessing.popen_spawn_posix # exists on Windows but fails to import + +# Bluetooth constants added for Python 3.14+ but missing at runtime on Windows test runners +_socket.SO_BTH_ENCRYPT +_socket.SO_BTH_MTU +_socket.SO_BTH_MTU_MAX +_socket.SO_BTH_MTU_MIN +_socket.SOL_RFCOMM diff --git a/stdlib/_socket.pyi b/stdlib/_socket.pyi index c6f2a8d9389d..00f4886059ff 100644 --- a/stdlib/_socket.pyi +++ b/stdlib/_socket.pyi @@ -11,9 +11,8 @@ _CMSGArg: TypeAlias = tuple[int, int, ReadableBuffer] # Addresses can be either tuples of varying lengths (AF_INET, AF_INET6, # AF_NETLINK, AF_TIPC) or strings/buffers (AF_UNIX). # See getsockaddrarg() in socketmodule.c. -_Address: TypeAlias = ( - tuple[Any, ...] | str | ReadableBuffer | int) - # int is included because of device_id not packed in a tuple is now accepted for BTPROTO_HCI +_Address: TypeAlias = tuple[Any, ...] | str | ReadableBuffer | int +# int is included because of device_id not packed in a tuple is now accepted for BTPROTO_HCI _RetAddress: TypeAlias = Any # ===== Constants ===== From 457e7fe427330a03acff0fab70076b68b8361adf Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 29 Jan 2026 06:45:08 +0000 Subject: [PATCH 15/19] [pre-commit.ci] auto fixes from pre-commit.com hooks --- stdlib/@tests/stubtest_allowlists/linux-py312.txt | 2 +- stdlib/@tests/stubtest_allowlists/linux.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/stdlib/@tests/stubtest_allowlists/linux-py312.txt b/stdlib/@tests/stubtest_allowlists/linux-py312.txt index 9f2a01e8a115..3e407fe6fa34 100644 --- a/stdlib/@tests/stubtest_allowlists/linux-py312.txt +++ b/stdlib/@tests/stubtest_allowlists/linux-py312.txt @@ -25,4 +25,4 @@ msilib(.[a-z]+)? # Bluetooth constants added for Python 3.14+ but missing at runtime on Ubuntu test runners _socket.HCI_CHANNEL_RAW -_socket.SOL_RFCOMM \ No newline at end of file +_socket.SOL_RFCOMM diff --git a/stdlib/@tests/stubtest_allowlists/linux.txt b/stdlib/@tests/stubtest_allowlists/linux.txt index 6621f9a36448..798e268e3813 100644 --- a/stdlib/@tests/stubtest_allowlists/linux.txt +++ b/stdlib/@tests/stubtest_allowlists/linux.txt @@ -136,4 +136,4 @@ tkinter.Tk.deletefilehandler # Methods that come from __getattr__() at runtime # Bluetooth constants added for Python 3.14+ but missing at runtime on Ubuntu test runners _socket.HCI_CHANNEL_RAW -_socket.SOL_RFCOMM \ No newline at end of file +_socket.SOL_RFCOMM From e0056abb99f4bd29571a87e5a399775d8ad82766 Mon Sep 17 00:00:00 2001 From: Divyanshudevtalla Date: Thu, 29 Jan 2026 14:10:30 +0530 Subject: [PATCH 16/19] Fix : update plateform allowlist --- stdlib/@tests/stubtest_allowlists/common.txt | 7 +++++++ stdlib/@tests/stubtest_allowlists/darwin-py310.txt | 7 +++++++ stdlib/@tests/stubtest_allowlists/darwin.txt | 7 +++++++ stdlib/@tests/stubtest_allowlists/py310.txt | 1 + stdlib/@tests/stubtest_allowlists/py314.txt | 7 +++++++ stdlib/@tests/stubtest_allowlists/win32-py314.txt | 7 +++++++ stdlib/@tests/stubtest_allowlists/win32.txt | 1 + 7 files changed, 37 insertions(+) diff --git a/stdlib/@tests/stubtest_allowlists/common.txt b/stdlib/@tests/stubtest_allowlists/common.txt index d8956df6b327..815cfaff7c91 100644 --- a/stdlib/@tests/stubtest_allowlists/common.txt +++ b/stdlib/@tests/stubtest_allowlists/common.txt @@ -550,3 +550,10 @@ xml.etree.cElementTree.XMLParser.__init__ # Defined in C so has general signatu # These would ideally be special-cased by type checkers; see https://github.com/python/mypy/issues/2220 xml.etree.ElementTree.Element.__iter__ xml.etree.cElementTree.Element.__iter__ + +# Bluetooth constants added for Python 3.14+ but missing at runtime on Windows test runners +_socket.SO_BTH_ENCRYPT +_socket.SO_BTH_MTU +_socket.SO_BTH_MTU_MAX +_socket.SO_BTH_MTU_MIN +_socket.SOL_RFCOMM diff --git a/stdlib/@tests/stubtest_allowlists/darwin-py310.txt b/stdlib/@tests/stubtest_allowlists/darwin-py310.txt index e2a10b3ed34f..847f72556136 100644 --- a/stdlib/@tests/stubtest_allowlists/darwin-py310.txt +++ b/stdlib/@tests/stubtest_allowlists/darwin-py310.txt @@ -80,3 +80,10 @@ _msi msilib(.[a-z]+)? ossaudiodev spwd + +# Bluetooth constants added for Python 3.14+ but missing at runtime on Windows test runners +_socket.SO_BTH_ENCRYPT +_socket.SO_BTH_MTU +_socket.SO_BTH_MTU_MAX +_socket.SO_BTH_MTU_MIN +_socket.SOL_RFCOMM \ No newline at end of file diff --git a/stdlib/@tests/stubtest_allowlists/darwin.txt b/stdlib/@tests/stubtest_allowlists/darwin.txt index bee977f6d21d..ff0c75b6634b 100644 --- a/stdlib/@tests/stubtest_allowlists/darwin.txt +++ b/stdlib/@tests/stubtest_allowlists/darwin.txt @@ -56,3 +56,10 @@ tkinter.Tk.deletefilehandler # Methods that come from __getattr__() at runtime (_?locale.dgettext)? (_?locale.gettext)? (_?locale.textdomain)? + +# Bluetooth constants added for Python 3.14+ but missing at runtime on Windows test runners +_socket.SO_BTH_ENCRYPT +_socket.SO_BTH_MTU +_socket.SO_BTH_MTU_MAX +_socket.SO_BTH_MTU_MIN +_socket.SOL_RFCOMM diff --git a/stdlib/@tests/stubtest_allowlists/py310.txt b/stdlib/@tests/stubtest_allowlists/py310.txt index f68edbbb1855..1919feefdaa0 100644 --- a/stdlib/@tests/stubtest_allowlists/py310.txt +++ b/stdlib/@tests/stubtest_allowlists/py310.txt @@ -314,3 +314,4 @@ _socket.SO_BTH_MTU _socket.SO_BTH_MTU_MAX _socket.SO_BTH_MTU_MIN _socket.SOL_RFCOMM + diff --git a/stdlib/@tests/stubtest_allowlists/py314.txt b/stdlib/@tests/stubtest_allowlists/py314.txt index 2ed18b5a2fea..0c40d98eabae 100644 --- a/stdlib/@tests/stubtest_allowlists/py314.txt +++ b/stdlib/@tests/stubtest_allowlists/py314.txt @@ -228,3 +228,10 @@ builtins.property.__set_name__ # Doesn't actually exist collections\.UserList\.index # ignoring pos-or-keyword parameter dataclasses.KW_ONLY # white lies around defaults importlib.metadata._meta.SimplePath.joinpath # Runtime definition of protocol is incorrect + +# Bluetooth constants added for Python 3.14+ but missing at runtime on Windows test runners +_socket.SO_BTH_ENCRYPT +_socket.SO_BTH_MTU +_socket.SO_BTH_MTU_MAX +_socket.SO_BTH_MTU_MIN +_socket.SOL_RFCOMM \ No newline at end of file diff --git a/stdlib/@tests/stubtest_allowlists/win32-py314.txt b/stdlib/@tests/stubtest_allowlists/win32-py314.txt index 070fce3e9c49..930a86257358 100644 --- a/stdlib/@tests/stubtest_allowlists/win32-py314.txt +++ b/stdlib/@tests/stubtest_allowlists/win32-py314.txt @@ -6,3 +6,10 @@ # (Hard to add types for unless we add stubs for the undocumented _overlapped module...) asyncio.IocpProactor.finish_socket_func asyncio.windows_events.IocpProactor.finish_socket_func + +# Bluetooth constants added for Python 3.14+ but missing at runtime on Windows test runners +_socket.SO_BTH_ENCRYPT +_socket.SO_BTH_MTU +_socket.SO_BTH_MTU_MAX +_socket.SO_BTH_MTU_MIN +_socket.SOL_RFCOMM \ No newline at end of file diff --git a/stdlib/@tests/stubtest_allowlists/win32.txt b/stdlib/@tests/stubtest_allowlists/win32.txt index b55650a9a619..020168e6460a 100644 --- a/stdlib/@tests/stubtest_allowlists/win32.txt +++ b/stdlib/@tests/stubtest_allowlists/win32.txt @@ -46,3 +46,4 @@ _socket.SO_BTH_MTU _socket.SO_BTH_MTU_MAX _socket.SO_BTH_MTU_MIN _socket.SOL_RFCOMM + From db48b4027539d719887c9759c19868ddd8a7c84e Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 29 Jan 2026 08:43:05 +0000 Subject: [PATCH 17/19] [pre-commit.ci] auto fixes from pre-commit.com hooks --- stdlib/@tests/stubtest_allowlists/darwin-py310.txt | 2 +- stdlib/@tests/stubtest_allowlists/py310.txt | 1 - stdlib/@tests/stubtest_allowlists/py314.txt | 2 +- stdlib/@tests/stubtest_allowlists/win32-py314.txt | 2 +- stdlib/@tests/stubtest_allowlists/win32.txt | 1 - 5 files changed, 3 insertions(+), 5 deletions(-) diff --git a/stdlib/@tests/stubtest_allowlists/darwin-py310.txt b/stdlib/@tests/stubtest_allowlists/darwin-py310.txt index 847f72556136..fabe50b2d515 100644 --- a/stdlib/@tests/stubtest_allowlists/darwin-py310.txt +++ b/stdlib/@tests/stubtest_allowlists/darwin-py310.txt @@ -86,4 +86,4 @@ _socket.SO_BTH_ENCRYPT _socket.SO_BTH_MTU _socket.SO_BTH_MTU_MAX _socket.SO_BTH_MTU_MIN -_socket.SOL_RFCOMM \ No newline at end of file +_socket.SOL_RFCOMM diff --git a/stdlib/@tests/stubtest_allowlists/py310.txt b/stdlib/@tests/stubtest_allowlists/py310.txt index 1919feefdaa0..f68edbbb1855 100644 --- a/stdlib/@tests/stubtest_allowlists/py310.txt +++ b/stdlib/@tests/stubtest_allowlists/py310.txt @@ -314,4 +314,3 @@ _socket.SO_BTH_MTU _socket.SO_BTH_MTU_MAX _socket.SO_BTH_MTU_MIN _socket.SOL_RFCOMM - diff --git a/stdlib/@tests/stubtest_allowlists/py314.txt b/stdlib/@tests/stubtest_allowlists/py314.txt index 0c40d98eabae..e00e1f0678dc 100644 --- a/stdlib/@tests/stubtest_allowlists/py314.txt +++ b/stdlib/@tests/stubtest_allowlists/py314.txt @@ -234,4 +234,4 @@ _socket.SO_BTH_ENCRYPT _socket.SO_BTH_MTU _socket.SO_BTH_MTU_MAX _socket.SO_BTH_MTU_MIN -_socket.SOL_RFCOMM \ No newline at end of file +_socket.SOL_RFCOMM diff --git a/stdlib/@tests/stubtest_allowlists/win32-py314.txt b/stdlib/@tests/stubtest_allowlists/win32-py314.txt index 930a86257358..9211eac5fb9a 100644 --- a/stdlib/@tests/stubtest_allowlists/win32-py314.txt +++ b/stdlib/@tests/stubtest_allowlists/win32-py314.txt @@ -12,4 +12,4 @@ _socket.SO_BTH_ENCRYPT _socket.SO_BTH_MTU _socket.SO_BTH_MTU_MAX _socket.SO_BTH_MTU_MIN -_socket.SOL_RFCOMM \ No newline at end of file +_socket.SOL_RFCOMM diff --git a/stdlib/@tests/stubtest_allowlists/win32.txt b/stdlib/@tests/stubtest_allowlists/win32.txt index 020168e6460a..b55650a9a619 100644 --- a/stdlib/@tests/stubtest_allowlists/win32.txt +++ b/stdlib/@tests/stubtest_allowlists/win32.txt @@ -46,4 +46,3 @@ _socket.SO_BTH_MTU _socket.SO_BTH_MTU_MAX _socket.SO_BTH_MTU_MIN _socket.SOL_RFCOMM - From e8bff1266d8ff8bf5ff3d097942a5e118cd36f51 Mon Sep 17 00:00:00 2001 From: Divyanshudevtalla Date: Thu, 29 Jan 2026 14:29:52 +0530 Subject: [PATCH 18/19] updating fixes --- stdlib/@tests/stubtest_allowlists/common.txt | 6 ------ 1 file changed, 6 deletions(-) diff --git a/stdlib/@tests/stubtest_allowlists/common.txt b/stdlib/@tests/stubtest_allowlists/common.txt index 815cfaff7c91..87f165bdab58 100644 --- a/stdlib/@tests/stubtest_allowlists/common.txt +++ b/stdlib/@tests/stubtest_allowlists/common.txt @@ -551,9 +551,3 @@ xml.etree.cElementTree.XMLParser.__init__ # Defined in C so has general signatu xml.etree.ElementTree.Element.__iter__ xml.etree.cElementTree.Element.__iter__ -# Bluetooth constants added for Python 3.14+ but missing at runtime on Windows test runners -_socket.SO_BTH_ENCRYPT -_socket.SO_BTH_MTU -_socket.SO_BTH_MTU_MAX -_socket.SO_BTH_MTU_MIN -_socket.SOL_RFCOMM From 4cf8971137a1932131f209168c7409e685a9d855 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 29 Jan 2026 09:05:04 +0000 Subject: [PATCH 19/19] [pre-commit.ci] auto fixes from pre-commit.com hooks --- stdlib/@tests/stubtest_allowlists/common.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/stdlib/@tests/stubtest_allowlists/common.txt b/stdlib/@tests/stubtest_allowlists/common.txt index 87f165bdab58..d8956df6b327 100644 --- a/stdlib/@tests/stubtest_allowlists/common.txt +++ b/stdlib/@tests/stubtest_allowlists/common.txt @@ -550,4 +550,3 @@ xml.etree.cElementTree.XMLParser.__init__ # Defined in C so has general signatu # These would ideally be special-cased by type checkers; see https://github.com/python/mypy/issues/2220 xml.etree.ElementTree.Element.__iter__ xml.etree.cElementTree.Element.__iter__ -