Skip to content

Commit 8c73bec

Browse files
authored
[socket/_socket] Add Python 3.14 Linux Bluetooth socket constants (#15893)
1 parent dde362c commit 8c73bec

3 files changed

Lines changed: 206 additions & 1 deletion

File tree

stdlib/@tests/stubtest_allowlists/linux.txt

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,78 @@ select.poll # Actually a function; we have a class so it can be used as a type
2929
# Bluetooth constants which aren't on the GitHub Actions runners, see #15207
3030
(_?socket\.AF_BLUETOOTH)?
3131
(_?socket\.BDADDR_ANY)?
32+
(_?socket\.BDADDR_BREDR)?
33+
(_?socket\.BDADDR_LE_PUBLIC)?
34+
(_?socket\.BDADDR_LE_RANDOM)?
3235
(_?socket\.BDADDR_LOCAL)?
36+
(_?socket\.BT_CHANNEL_POLICY)?
37+
(_?socket\.BT_CHANNEL_POLICY_BREDR_ONLY)?
38+
(_?socket\.BT_CHANNEL_POLICY_BREDR_PREFERRED)?
39+
(_?socket\.BT_CODEC)?
40+
(_?socket\.BT_DEFER_SETUP)?
41+
(_?socket\.BT_FLUSHABLE)?
42+
(_?socket\.BT_FLUSHABLE_OFF)?
43+
(_?socket\.BT_FLUSHABLE_ON)?
44+
(_?socket\.BT_ISO_QOS)?
45+
(_?socket\.BT_MODE)?
46+
(_?socket\.BT_MODE_BASIC)?
47+
(_?socket\.BT_MODE_ERTM)?
48+
(_?socket\.BT_MODE_EXT_FLOWCTL)?
49+
(_?socket\.BT_MODE_LE_FLOWCTL)?
50+
(_?socket\.BT_MODE_STREAMING)?
51+
(_?socket\.BT_PHY)?
52+
(_?socket\.BT_PHY_BR_1M_1SLOT)?
53+
(_?socket\.BT_PHY_BR_1M_3SLOT)?
54+
(_?socket\.BT_PHY_BR_1M_5SLOT)?
55+
(_?socket\.BT_PHY_EDR_2M_1SLOT)?
56+
(_?socket\.BT_PHY_EDR_2M_3SLOT)?
57+
(_?socket\.BT_PHY_EDR_2M_5SLOT)?
58+
(_?socket\.BT_PHY_EDR_3M_1SLOT)?
59+
(_?socket\.BT_PHY_EDR_3M_3SLOT)?
60+
(_?socket\.BT_PHY_EDR_3M_5SLOT)?
61+
(_?socket\.BT_PHY_LE_1M_RX)?
62+
(_?socket\.BT_PHY_LE_1M_TX)?
63+
(_?socket\.BT_PHY_LE_2M_RX)?
64+
(_?socket\.BT_PHY_LE_2M_TX)?
65+
(_?socket\.BT_PHY_LE_CODED_RX)?
66+
(_?socket\.BT_PHY_LE_CODED_TX)?
67+
(_?socket\.BT_PKT_STATUS)?
68+
(_?socket\.BT_POWER)?
69+
(_?socket\.BT_POWER_FORCE_ACTIVE_OFF)?
70+
(_?socket\.BT_POWER_FORCE_ACTIVE_ON)?
71+
(_?socket\.BT_RCVMTU)?
72+
(_?socket\.BT_SECURITY)?
73+
(_?socket\.BT_SECURITY_FIPS)?
74+
(_?socket\.BT_SECURITY_HIGH)?
75+
(_?socket\.BT_SECURITY_LOW)?
76+
(_?socket\.BT_SECURITY_MEDIUM)?
77+
(_?socket\.BT_SECURITY_SDP)?
78+
(_?socket\.BT_SNDMTU)?
79+
(_?socket\.BT_VOICE)?
80+
(_?socket\.BT_VOICE_CVSD_16BIT)?
81+
(_?socket\.BT_VOICE_TRANSPARENT)?
82+
(_?socket\.BT_VOICE_TRANSPARENT_16BIT)?
3383
(_?socket\.BTPROTO_HCI)?
3484
(_?socket\.BTPROTO_L2CAP)?
3585
(_?socket\.BTPROTO_RFCOMM)?
3686
(_?socket\.BTPROTO_SCO)?
87+
(_?socket\.HCI_CHANNEL_CONTROL)?
88+
(_?socket\.HCI_CHANNEL_LOGGING)?
89+
(_?socket\.HCI_CHANNEL_MONITOR)?
90+
(_?socket\.HCI_CHANNEL_RAW)?
91+
(_?socket\.HCI_CHANNEL_USER)?
92+
(_?socket\.HCI_DEV_NONE)?
93+
(_?socket\.L2CAP_LM)?
94+
(_?socket\.L2CAP_LM_AUTH)?
95+
(_?socket\.L2CAP_LM_ENCRYPT)?
96+
(_?socket\.L2CAP_LM_MASTER)?
97+
(_?socket\.L2CAP_LM_RELIABLE)?
98+
(_?socket\.L2CAP_LM_SECURE)?
99+
(_?socket\.L2CAP_LM_TRUSTED)?
100+
(_?socket\.SOL_BLUETOOTH)?
101+
(_?socket\.SOL_L2CAP)?
102+
(_?socket\.SOL_RFCOMM)?
103+
(_?socket\.SOL_SCO)?
37104

38105
# These seem like they should be available on Linux, but they're not
39106
# on GitHub Actions runners for some reason.

stdlib/_socket.pyi

Lines changed: 72 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,11 @@ _CMSGArg: TypeAlias = tuple[int, int, ReadableBuffer]
1111
# Addresses can be either tuples of varying lengths (AF_INET, AF_INET6,
1212
# AF_NETLINK, AF_TIPC) or strings/buffers (AF_UNIX).
1313
# See getsockaddrarg() in socketmodule.c.
14-
_Address: TypeAlias = tuple[Any, ...] | str | ReadableBuffer
14+
if sys.version_info >= (3, 14):
15+
# A bare int is accepted for Bluetooth HCI device IDs.
16+
_Address: TypeAlias = tuple[Any, ...] | str | ReadableBuffer | int
17+
else:
18+
_Address: TypeAlias = tuple[Any, ...] | str | ReadableBuffer
1519
_RetAddress: TypeAlias = Any
1620

1721
# ===== Constants =====
@@ -250,8 +254,75 @@ if sys.version_info >= (3, 14):
250254
TCP_QUICKACK: Final[int]
251255

252256
if sys.platform == "linux":
257+
BDADDR_BREDR: Final[int]
258+
BDADDR_LE_PUBLIC: Final[int]
259+
BDADDR_LE_RANDOM: Final[int]
260+
BT_CHANNEL_POLICY: Final[int]
261+
BT_CHANNEL_POLICY_BREDR_ONLY: Final[int]
262+
BT_CHANNEL_POLICY_BREDR_PREFERRED: Final[int]
263+
BT_CODEC: Final[int]
264+
BT_DEFER_SETUP: Final[int]
265+
BT_FLUSHABLE: Final[int]
266+
BT_FLUSHABLE_OFF: Final[int]
267+
BT_FLUSHABLE_ON: Final[int]
268+
BT_ISO_QOS: Final[int]
269+
BT_MODE: Final[int]
270+
BT_MODE_BASIC: Final[int]
271+
BT_MODE_ERTM: Final[int]
272+
BT_MODE_EXT_FLOWCTL: Final[int]
273+
BT_MODE_LE_FLOWCTL: Final[int]
274+
BT_MODE_STREAMING: Final[int]
275+
BT_PHY: Final[int]
276+
BT_PHY_BR_1M_1SLOT: Final[int]
277+
BT_PHY_BR_1M_3SLOT: Final[int]
278+
BT_PHY_BR_1M_5SLOT: Final[int]
279+
BT_PHY_EDR_2M_1SLOT: Final[int]
280+
BT_PHY_EDR_2M_3SLOT: Final[int]
281+
BT_PHY_EDR_2M_5SLOT: Final[int]
282+
BT_PHY_EDR_3M_1SLOT: Final[int]
283+
BT_PHY_EDR_3M_3SLOT: Final[int]
284+
BT_PHY_EDR_3M_5SLOT: Final[int]
285+
BT_PHY_LE_1M_RX: Final[int]
286+
BT_PHY_LE_1M_TX: Final[int]
287+
BT_PHY_LE_2M_RX: Final[int]
288+
BT_PHY_LE_2M_TX: Final[int]
289+
BT_PHY_LE_CODED_RX: Final[int]
290+
BT_PHY_LE_CODED_TX: Final[int]
291+
BT_PKT_STATUS: Final[int]
292+
BT_POWER: Final[int]
293+
BT_POWER_FORCE_ACTIVE_OFF: Final[int]
294+
BT_POWER_FORCE_ACTIVE_ON: Final[int]
295+
BT_RCVMTU: Final[int]
296+
BT_SECURITY: Final[int]
297+
BT_SECURITY_FIPS: Final[int]
298+
BT_SECURITY_HIGH: Final[int]
299+
BT_SECURITY_LOW: Final[int]
300+
BT_SECURITY_MEDIUM: Final[int]
301+
BT_SECURITY_SDP: Final[int]
302+
BT_SNDMTU: Final[int]
303+
BT_VOICE: Final[int]
304+
BT_VOICE_CVSD_16BIT: Final[int]
305+
BT_VOICE_TRANSPARENT: Final[int]
306+
BT_VOICE_TRANSPARENT_16BIT: Final[int]
307+
HCI_CHANNEL_CONTROL: Final[int]
308+
HCI_CHANNEL_LOGGING: Final[int]
309+
HCI_CHANNEL_MONITOR: Final[int]
310+
HCI_CHANNEL_RAW: Final[int]
311+
HCI_CHANNEL_USER: Final[int]
312+
HCI_DEV_NONE: Final[int]
253313
IP_FREEBIND: Final[int]
254314
IP_RECVORIGDSTADDR: Final[int]
315+
L2CAP_LM: Final[int]
316+
L2CAP_LM_AUTH: Final[int]
317+
L2CAP_LM_ENCRYPT: Final[int]
318+
L2CAP_LM_MASTER: Final[int]
319+
L2CAP_LM_RELIABLE: Final[int]
320+
L2CAP_LM_SECURE: Final[int]
321+
L2CAP_LM_TRUSTED: Final[int]
322+
SOL_BLUETOOTH: Final[int]
323+
SOL_L2CAP: Final[int]
324+
SOL_RFCOMM: Final[int]
325+
SOL_SCO: Final[int]
255326
VMADDR_CID_LOCAL: Final[int]
256327

257328
if sys.platform != "win32" and sys.platform != "darwin":

stdlib/socket.pyi

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1133,8 +1133,75 @@ if sys.version_info >= (3, 14):
11331133

11341134
if sys.platform == "linux":
11351135
from _socket import (
1136+
BDADDR_BREDR as BDADDR_BREDR,
1137+
BDADDR_LE_PUBLIC as BDADDR_LE_PUBLIC,
1138+
BDADDR_LE_RANDOM as BDADDR_LE_RANDOM,
1139+
BT_CHANNEL_POLICY as BT_CHANNEL_POLICY,
1140+
BT_CHANNEL_POLICY_BREDR_ONLY as BT_CHANNEL_POLICY_BREDR_ONLY,
1141+
BT_CHANNEL_POLICY_BREDR_PREFERRED as BT_CHANNEL_POLICY_BREDR_PREFERRED,
1142+
BT_CODEC as BT_CODEC,
1143+
BT_DEFER_SETUP as BT_DEFER_SETUP,
1144+
BT_FLUSHABLE as BT_FLUSHABLE,
1145+
BT_FLUSHABLE_OFF as BT_FLUSHABLE_OFF,
1146+
BT_FLUSHABLE_ON as BT_FLUSHABLE_ON,
1147+
BT_ISO_QOS as BT_ISO_QOS,
1148+
BT_MODE as BT_MODE,
1149+
BT_MODE_BASIC as BT_MODE_BASIC,
1150+
BT_MODE_ERTM as BT_MODE_ERTM,
1151+
BT_MODE_EXT_FLOWCTL as BT_MODE_EXT_FLOWCTL,
1152+
BT_MODE_LE_FLOWCTL as BT_MODE_LE_FLOWCTL,
1153+
BT_MODE_STREAMING as BT_MODE_STREAMING,
1154+
BT_PHY as BT_PHY,
1155+
BT_PHY_BR_1M_1SLOT as BT_PHY_BR_1M_1SLOT,
1156+
BT_PHY_BR_1M_3SLOT as BT_PHY_BR_1M_3SLOT,
1157+
BT_PHY_BR_1M_5SLOT as BT_PHY_BR_1M_5SLOT,
1158+
BT_PHY_EDR_2M_1SLOT as BT_PHY_EDR_2M_1SLOT,
1159+
BT_PHY_EDR_2M_3SLOT as BT_PHY_EDR_2M_3SLOT,
1160+
BT_PHY_EDR_2M_5SLOT as BT_PHY_EDR_2M_5SLOT,
1161+
BT_PHY_EDR_3M_1SLOT as BT_PHY_EDR_3M_1SLOT,
1162+
BT_PHY_EDR_3M_3SLOT as BT_PHY_EDR_3M_3SLOT,
1163+
BT_PHY_EDR_3M_5SLOT as BT_PHY_EDR_3M_5SLOT,
1164+
BT_PHY_LE_1M_RX as BT_PHY_LE_1M_RX,
1165+
BT_PHY_LE_1M_TX as BT_PHY_LE_1M_TX,
1166+
BT_PHY_LE_2M_RX as BT_PHY_LE_2M_RX,
1167+
BT_PHY_LE_2M_TX as BT_PHY_LE_2M_TX,
1168+
BT_PHY_LE_CODED_RX as BT_PHY_LE_CODED_RX,
1169+
BT_PHY_LE_CODED_TX as BT_PHY_LE_CODED_TX,
1170+
BT_PKT_STATUS as BT_PKT_STATUS,
1171+
BT_POWER as BT_POWER,
1172+
BT_POWER_FORCE_ACTIVE_OFF as BT_POWER_FORCE_ACTIVE_OFF,
1173+
BT_POWER_FORCE_ACTIVE_ON as BT_POWER_FORCE_ACTIVE_ON,
1174+
BT_RCVMTU as BT_RCVMTU,
1175+
BT_SECURITY as BT_SECURITY,
1176+
BT_SECURITY_FIPS as BT_SECURITY_FIPS,
1177+
BT_SECURITY_HIGH as BT_SECURITY_HIGH,
1178+
BT_SECURITY_LOW as BT_SECURITY_LOW,
1179+
BT_SECURITY_MEDIUM as BT_SECURITY_MEDIUM,
1180+
BT_SECURITY_SDP as BT_SECURITY_SDP,
1181+
BT_SNDMTU as BT_SNDMTU,
1182+
BT_VOICE as BT_VOICE,
1183+
BT_VOICE_CVSD_16BIT as BT_VOICE_CVSD_16BIT,
1184+
BT_VOICE_TRANSPARENT as BT_VOICE_TRANSPARENT,
1185+
BT_VOICE_TRANSPARENT_16BIT as BT_VOICE_TRANSPARENT_16BIT,
1186+
HCI_CHANNEL_CONTROL as HCI_CHANNEL_CONTROL,
1187+
HCI_CHANNEL_LOGGING as HCI_CHANNEL_LOGGING,
1188+
HCI_CHANNEL_MONITOR as HCI_CHANNEL_MONITOR,
1189+
HCI_CHANNEL_RAW as HCI_CHANNEL_RAW,
1190+
HCI_CHANNEL_USER as HCI_CHANNEL_USER,
1191+
HCI_DEV_NONE as HCI_DEV_NONE,
11361192
IP_FREEBIND as IP_FREEBIND,
11371193
IP_RECVORIGDSTADDR as IP_RECVORIGDSTADDR,
1194+
L2CAP_LM as L2CAP_LM,
1195+
L2CAP_LM_AUTH as L2CAP_LM_AUTH,
1196+
L2CAP_LM_ENCRYPT as L2CAP_LM_ENCRYPT,
1197+
L2CAP_LM_MASTER as L2CAP_LM_MASTER,
1198+
L2CAP_LM_RELIABLE as L2CAP_LM_RELIABLE,
1199+
L2CAP_LM_SECURE as L2CAP_LM_SECURE,
1200+
L2CAP_LM_TRUSTED as L2CAP_LM_TRUSTED,
1201+
SOL_BLUETOOTH as SOL_BLUETOOTH,
1202+
SOL_L2CAP as SOL_L2CAP,
1203+
SOL_RFCOMM as SOL_RFCOMM,
1204+
SOL_SCO as SOL_SCO,
11381205
VMADDR_CID_LOCAL as VMADDR_CID_LOCAL,
11391206
)
11401207

0 commit comments

Comments
 (0)