pyobjc-framework-IOBluetooth 12.0__tar.gz → 12.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pyobjc_framework_iobluetooth-12.0 → pyobjc_framework_iobluetooth-12.2}/Lib/IOBluetooth/_metadata.py +59 -31
- {pyobjc_framework_iobluetooth-12.0 → pyobjc_framework_iobluetooth-12.2}/Lib/pyobjc_framework_IOBluetooth.egg-info/PKG-INFO +5 -6
- {pyobjc_framework_iobluetooth-12.0 → pyobjc_framework_iobluetooth-12.2}/Lib/pyobjc_framework_IOBluetooth.egg-info/SOURCES.txt +2 -2
- pyobjc_framework_iobluetooth-12.2/Lib/pyobjc_framework_IOBluetooth.egg-info/pyobjc-build-info.txt +3 -0
- pyobjc_framework_iobluetooth-12.2/Lib/pyobjc_framework_IOBluetooth.egg-info/requires.txt +2 -0
- {pyobjc_framework_iobluetooth-12.0 → pyobjc_framework_iobluetooth-12.2}/Modules/pyobjc-compat.h +24 -50
- {pyobjc_framework_iobluetooth-12.0 → pyobjc_framework_iobluetooth-12.2}/PKG-INFO +5 -6
- {pyobjc_framework_iobluetooth-12.0 → pyobjc_framework_iobluetooth-12.2}/PyObjCTest/test_iobluetoothsdpserviceRecord.py +5 -0
- {pyobjc_framework_iobluetooth-12.0 → pyobjc_framework_iobluetooth-12.2}/metadata/IOBluetooth.fwinfo +12 -12
- pyobjc_framework_iobluetooth-12.2/metadata/raw/arm64-26.5.fwinfo +20786 -0
- pyobjc_framework_iobluetooth-12.2/metadata/raw/x86_64-26.5.fwinfo +20786 -0
- {pyobjc_framework_iobluetooth-12.0 → pyobjc_framework_iobluetooth-12.2}/pyobjc_setup.py +4 -5
- {pyobjc_framework_iobluetooth-12.0 → pyobjc_framework_iobluetooth-12.2}/setup.py +1 -1
- pyobjc_framework_iobluetooth-12.0/Lib/pyobjc_framework_IOBluetooth.egg-info/pyobjc-build-info.txt +0 -3
- pyobjc_framework_iobluetooth-12.0/Lib/pyobjc_framework_IOBluetooth.egg-info/requires.txt +0 -2
- pyobjc_framework_iobluetooth-12.0/metadata/raw/arm64-26.0.fwinfo +0 -13168
- pyobjc_framework_iobluetooth-12.0/metadata/raw/x86_64-26.0.fwinfo +0 -13168
- {pyobjc_framework_iobluetooth-12.0 → pyobjc_framework_iobluetooth-12.2}/Lib/IOBluetooth/__init__.py +0 -0
- {pyobjc_framework_iobluetooth-12.0 → pyobjc_framework_iobluetooth-12.2}/Lib/IOBluetooth/_funcmacros.py +0 -0
- {pyobjc_framework_iobluetooth-12.0 → pyobjc_framework_iobluetooth-12.2}/Lib/pyobjc_framework_IOBluetooth.egg-info/dependency_links.txt +0 -0
- {pyobjc_framework_iobluetooth-12.0 → pyobjc_framework_iobluetooth-12.2}/Lib/pyobjc_framework_IOBluetooth.egg-info/not-zip-safe +0 -0
- {pyobjc_framework_iobluetooth-12.0 → pyobjc_framework_iobluetooth-12.2}/Lib/pyobjc_framework_IOBluetooth.egg-info/top_level.txt +0 -0
- {pyobjc_framework_iobluetooth-12.0 → pyobjc_framework_iobluetooth-12.2}/License.txt +0 -0
- {pyobjc_framework_iobluetooth-12.0 → pyobjc_framework_iobluetooth-12.2}/MANIFEST.in +0 -0
- {pyobjc_framework_iobluetooth-12.0 → pyobjc_framework_iobluetooth-12.2}/Modules/_IOBluetooth.m +0 -0
- {pyobjc_framework_iobluetooth-12.0 → pyobjc_framework_iobluetooth-12.2}/Modules/_IOBluetooth_protocols.m +0 -0
- {pyobjc_framework_iobluetooth-12.0 → pyobjc_framework_iobluetooth-12.2}/Modules/pyobjc-api.h +0 -0
- {pyobjc_framework_iobluetooth-12.0 → pyobjc_framework_iobluetooth-12.2}/PyObjCTest/__init__.py +0 -0
- {pyobjc_framework_iobluetooth-12.0 → pyobjc_framework_iobluetooth-12.2}/PyObjCTest/test_bluetooth.py +0 -0
- {pyobjc_framework_iobluetooth-12.0 → pyobjc_framework_iobluetooth-12.2}/PyObjCTest/test_bluetoothassignednumbers.py +0 -0
- {pyobjc_framework_iobluetooth-12.0 → pyobjc_framework_iobluetooth-12.2}/PyObjCTest/test_iobLuetoothdeviceinquiry.py +0 -0
- {pyobjc_framework_iobluetooth-12.0 → pyobjc_framework_iobluetooth-12.2}/PyObjCTest/test_iobluetooth.py +0 -0
- {pyobjc_framework_iobluetooth-12.0 → pyobjc_framework_iobluetooth-12.2}/PyObjCTest/test_iobluetoothL2capchannel.py +0 -0
- {pyobjc_framework_iobluetooth-12.0 → pyobjc_framework_iobluetooth-12.2}/PyObjCTest/test_iobluetoothdevice.py +0 -0
- {pyobjc_framework_iobluetooth-12.0 → pyobjc_framework_iobluetooth-12.2}/PyObjCTest/test_iobluetoothdevicepair.py +0 -0
- {pyobjc_framework_iobluetooth-12.0 → pyobjc_framework_iobluetooth-12.2}/PyObjCTest/test_iobluetoothhandsfree.py +0 -0
- {pyobjc_framework_iobluetooth-12.0 → pyobjc_framework_iobluetooth-12.2}/PyObjCTest/test_iobluetoothhandsfreeaudiogateway.py +0 -0
- {pyobjc_framework_iobluetooth-12.0 → pyobjc_framework_iobluetooth-12.2}/PyObjCTest/test_iobluetoothhandsfreedevice.py +0 -0
- {pyobjc_framework_iobluetooth-12.0 → pyobjc_framework_iobluetooth-12.2}/PyObjCTest/test_iobluetoothhostcontroller.py +0 -0
- {pyobjc_framework_iobluetooth-12.0 → pyobjc_framework_iobluetooth-12.2}/PyObjCTest/test_iobluetoothobexsession.py +0 -0
- {pyobjc_framework_iobluetooth-12.0 → pyobjc_framework_iobluetooth-12.2}/PyObjCTest/test_iobluetoothobject.py +0 -0
- {pyobjc_framework_iobluetooth-12.0 → pyobjc_framework_iobluetooth-12.2}/PyObjCTest/test_iobluetoothrfcommchannel.py +0 -0
- {pyobjc_framework_iobluetooth-12.0 → pyobjc_framework_iobluetooth-12.2}/PyObjCTest/test_iobluetoothsdpdataelement.py +0 -0
- {pyobjc_framework_iobluetooth-12.0 → pyobjc_framework_iobluetooth-12.2}/PyObjCTest/test_iobluetoothsdpuuid.py +0 -0
- {pyobjc_framework_iobluetooth-12.0 → pyobjc_framework_iobluetooth-12.2}/PyObjCTest/test_iobluetoothuserlib.py +0 -0
- {pyobjc_framework_iobluetooth-12.0 → pyobjc_framework_iobluetooth-12.2}/PyObjCTest/test_iobluetoothutilities.py +0 -0
- {pyobjc_framework_iobluetooth-12.0 → pyobjc_framework_iobluetooth-12.2}/PyObjCTest/test_nsdictionaryobexextensions.py +0 -0
- {pyobjc_framework_iobluetooth-12.0 → pyobjc_framework_iobluetooth-12.2}/PyObjCTest/test_obex.py +0 -0
- {pyobjc_framework_iobluetooth-12.0 → pyobjc_framework_iobluetooth-12.2}/PyObjCTest/test_obexbluetooth.py +0 -0
- {pyobjc_framework_iobluetooth-12.0 → pyobjc_framework_iobluetooth-12.2}/PyObjCTest/test_obexfiletransferservices.py +0 -0
- {pyobjc_framework_iobluetooth-12.0 → pyobjc_framework_iobluetooth-12.2}/PyObjCTest/test_obexsession.py +0 -0
- {pyobjc_framework_iobluetooth-12.0 → pyobjc_framework_iobluetooth-12.2}/metadata/metadata.ini +0 -0
- {pyobjc_framework_iobluetooth-12.0 → pyobjc_framework_iobluetooth-12.2}/pyproject.toml +0 -0
- {pyobjc_framework_iobluetooth-12.0 → pyobjc_framework_iobluetooth-12.2}/setup.cfg +0 -0
{pyobjc_framework_iobluetooth-12.0 → pyobjc_framework_iobluetooth-12.2}/Lib/IOBluetooth/_metadata.py
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# This file is generated by objective.metadata
|
|
2
2
|
#
|
|
3
|
-
# Last update: Thu
|
|
3
|
+
# Last update: Thu May 28 22:05:19 2026
|
|
4
4
|
#
|
|
5
5
|
# flake8: noqa
|
|
6
6
|
|
|
@@ -1135,15 +1135,15 @@ functions = {
|
|
|
1135
1135
|
{
|
|
1136
1136
|
"retval": {"already_cfretained": True},
|
|
1137
1137
|
"arguments": {
|
|
1138
|
-
0: {"
|
|
1139
|
-
2: {"
|
|
1140
|
-
4: {"
|
|
1141
|
-
6: {"
|
|
1142
|
-
8: {"
|
|
1143
|
-
10: {"
|
|
1144
|
-
12: {"
|
|
1145
|
-
14: {"
|
|
1146
|
-
16: {"
|
|
1138
|
+
0: {"type_modifier": "n", "c_array_length_in_arg": 1},
|
|
1139
|
+
2: {"type_modifier": "n", "c_array_length_in_arg": 3},
|
|
1140
|
+
4: {"type_modifier": "n", "c_array_length_in_arg": 5},
|
|
1141
|
+
6: {"type_modifier": "n", "c_array_length_in_arg": 7},
|
|
1142
|
+
8: {"type_modifier": "n", "c_array_length_in_arg": 9},
|
|
1143
|
+
10: {"type_modifier": "n", "c_array_length_in_arg": 11},
|
|
1144
|
+
12: {"type_modifier": "n", "c_array_length_in_arg": 13},
|
|
1145
|
+
14: {"type_modifier": "n", "c_array_length_in_arg": 15},
|
|
1146
|
+
16: {"type_modifier": "n", "c_array_length_in_arg": 17},
|
|
1147
1147
|
},
|
|
1148
1148
|
},
|
|
1149
1149
|
),
|
|
@@ -1154,20 +1154,20 @@ functions = {
|
|
|
1154
1154
|
{
|
|
1155
1155
|
"retval": {"already_cfretained": True},
|
|
1156
1156
|
"arguments": {
|
|
1157
|
-
0: {"
|
|
1158
|
-
2: {"
|
|
1159
|
-
4: {"
|
|
1160
|
-
6: {"
|
|
1161
|
-
8: {"
|
|
1162
|
-
10: {"
|
|
1163
|
-
12: {"
|
|
1164
|
-
14: {"
|
|
1165
|
-
16: {"
|
|
1166
|
-
18: {"
|
|
1167
|
-
20: {"
|
|
1168
|
-
22: {"
|
|
1169
|
-
24: {"
|
|
1170
|
-
26: {"
|
|
1157
|
+
0: {"type_modifier": "n", "c_array_length_in_arg": 1},
|
|
1158
|
+
2: {"type_modifier": "n", "c_array_length_in_arg": 3},
|
|
1159
|
+
4: {"type_modifier": "n", "c_array_length_in_arg": 5},
|
|
1160
|
+
6: {"type_modifier": "n", "c_array_length_in_arg": 7},
|
|
1161
|
+
8: {"type_modifier": "n", "c_array_length_in_arg": 9},
|
|
1162
|
+
10: {"type_modifier": "n", "c_array_length_in_arg": 11},
|
|
1163
|
+
12: {"type_modifier": "n", "c_array_length_in_arg": 13},
|
|
1164
|
+
14: {"type_modifier": "n", "c_array_length_in_arg": 15},
|
|
1165
|
+
16: {"type_modifier": "n", "c_array_length_in_arg": 17},
|
|
1166
|
+
18: {"type_modifier": "n", "c_array_length_in_arg": 19},
|
|
1167
|
+
20: {"type_modifier": "n", "c_array_length_in_arg": 21},
|
|
1168
|
+
22: {"type_modifier": "n", "c_array_length_in_arg": 23},
|
|
1169
|
+
24: {"type_modifier": "n", "c_array_length_in_arg": 25},
|
|
1170
|
+
26: {"type_modifier": "n", "c_array_length_in_arg": 27},
|
|
1171
1171
|
},
|
|
1172
1172
|
},
|
|
1173
1173
|
),
|
|
@@ -1349,31 +1349,26 @@ functions = {
|
|
|
1349
1349
|
aliases = {
|
|
1350
1350
|
"kBluetoothFeatureAFHClassificationSlave": "kBluetoothFeatureAFHClassificationPeripheral",
|
|
1351
1351
|
"kBluetoothFeatureAFHCapableSlave": "kBluetoothFeatureAFHCapablePeripheral",
|
|
1352
|
-
"kBluetoothL2CAPQoSTypeDefault": "kBluetoothL2CAPQoSTypeBestEffort",
|
|
1353
1352
|
"kBluetoothRoleBecomeMaster": "kBluetoothRoleBecomeCentral",
|
|
1354
1353
|
"kBluetoothRoleRemainSlave": "kBluetoothRoleRemainPeripheral",
|
|
1355
1354
|
"kBluetoothHCIEventMaskDefault": "kBluetoothHCIEventMaskAll",
|
|
1356
1355
|
"IOBluetoothL2CAPChannelRef": "IOBluetoothObjectRef",
|
|
1357
|
-
"IOBluetoothUserNotificationRef": "IOBluetoothObjectRef",
|
|
1358
1356
|
"IOBluetoothSDPUUIDRef": "IOBluetoothObjectRef",
|
|
1359
1357
|
"BluetoothLEScanFilterWhitelist": "BluetoothLEScanFilterSafelist",
|
|
1360
1358
|
"kBluetoothHCICommandSetConnectionlessSlaveBroadcastReceive": "kBluetoothHCICommandSetConnectionlessPeripheralBroadcastReceive",
|
|
1361
|
-
"
|
|
1359
|
+
"IOBluetoothUserNotificationRef": "IOBluetoothObjectRef",
|
|
1362
1360
|
"kEnableMasterSlaveSwitch": "kEnableCentralPeripheralSwitch",
|
|
1363
1361
|
"IOBluetoothSDPDataElementRef": "IOBluetoothObjectRef",
|
|
1364
1362
|
"kBluetoothLEFeatureSlaveInitiatedFeaturesExchange": "kBluetoothLEFeaturePeripheralInitiatedFeaturesExchange",
|
|
1365
|
-
"kBluetoothLEMaxTXTimeDefault": "kBluetoothL2CAPMTULowEnergyDefault",
|
|
1366
1363
|
"IOBluetoothRFCOMMChannelRef": "IOBluetoothObjectRef",
|
|
1367
1364
|
"IOBluetoothSDPServiceRecordRef": "IOBluetoothObjectRef",
|
|
1368
1365
|
"kBluetoothHCICommandSetConnectionlessSlaveBroadcast": "kBluetoothHCICommandSetConnectionlessPeripheralBroadcast",
|
|
1369
1366
|
"BluetoothHCILESupportedFeatures": "BluetoothHCISupportedFeatures",
|
|
1370
1367
|
"kBluetoothHCIExtendedInquiryResponseDataTypeSlaveConnectionIntervalRange": "kBluetoothHCIExtendedInquiryResponseDataTypePeripheralConnectionIntervalRange",
|
|
1371
|
-
"kBluetoothL2CAPMTULowEnergyMax": "kBluetoothLETXOctetsMax",
|
|
1372
|
-
"kBluetoothHCICommandSetConnectionlessSlaveBroadcastData": "kBluetoothHCICommandSetConnectionlessPeripheralBroadcastData",
|
|
1373
1368
|
"kBluetoothHCISlaveRole": "kBluetoothHCIPeripheralRole",
|
|
1374
1369
|
"kBluetoothHCIMasterRole": "kBluetoothHCICentralRole",
|
|
1375
1370
|
"BluetoothHCILEUsedFeatures": "BluetoothHCISupportedFeatures",
|
|
1376
|
-
"
|
|
1371
|
+
"kBluetoothHCICommandSetConnectionlessSlaveBroadcastData": "kBluetoothHCICommandSetConnectionlessPeripheralBroadcastData",
|
|
1377
1372
|
"IOBluetoothDeviceRef": "IOBluetoothObjectRef",
|
|
1378
1373
|
}
|
|
1379
1374
|
misc.update(
|
|
@@ -1526,6 +1521,16 @@ try:
|
|
|
1526
1521
|
)
|
|
1527
1522
|
r(b"IOBluetoothSDPDataElement", b"containsDataElement:", {"retval": {"type": b"Z"}})
|
|
1528
1523
|
r(b"IOBluetoothSDPDataElement", b"containsValue:", {"retval": {"type": b"Z"}})
|
|
1524
|
+
r(
|
|
1525
|
+
b"IOBluetoothSDPServiceRecord",
|
|
1526
|
+
b"getL2CAPPSM:",
|
|
1527
|
+
{"arguments": {2: {"type_modifier": b"o"}}},
|
|
1528
|
+
)
|
|
1529
|
+
r(
|
|
1530
|
+
b"IOBluetoothSDPServiceRecord",
|
|
1531
|
+
b"getRFCOMMChannelID:",
|
|
1532
|
+
{"arguments": {2: {"type_modifier": b"o"}}},
|
|
1533
|
+
)
|
|
1529
1534
|
r(
|
|
1530
1535
|
b"IOBluetoothSDPServiceRecord",
|
|
1531
1536
|
b"hasServiceFromArray:",
|
|
@@ -2251,6 +2256,29 @@ objc.registerNewKeywordsFromSelector("IOBluetoothSDPUUID", b"initWithUUID32:")
|
|
|
2251
2256
|
objc.registerNewKeywordsFromSelector(
|
|
2252
2257
|
"OBEXFileTransferServices", b"initWithOBEXSession:"
|
|
2253
2258
|
)
|
|
2259
|
+
|
|
2260
|
+
objc.registerNewKeywords(
|
|
2261
|
+
"IOBluetoothDevice", ("addressString",), "deviceWithAddressString_"
|
|
2262
|
+
)
|
|
2263
|
+
objc.registerNewKeywords("IOBluetoothDevice", ("address",), "deviceWithAddress_")
|
|
2264
|
+
objc.registerNewKeywords("IOBluetoothDevicePair", ("device",), "pairWithDevice_")
|
|
2265
|
+
objc.registerNewKeywords(
|
|
2266
|
+
"IOBluetoothSDPServiceRecord",
|
|
2267
|
+
("dictionary",),
|
|
2268
|
+
"publishedServiceRecordWithDictionary_",
|
|
2269
|
+
)
|
|
2270
|
+
objc.registerNewKeywords(
|
|
2271
|
+
"IOBluetoothSDPUUID", ("bytes", "length"), "uuidWithBytes_length_"
|
|
2272
|
+
)
|
|
2273
|
+
objc.registerNewKeywords("IOBluetoothSDPUUID", ("data",), "uuidWithData_")
|
|
2274
|
+
objc.registerNewKeywords(
|
|
2275
|
+
"NSMutableDictionary", ("OBEXHeadersData",), "dictionaryWithOBEXHeadersData_"
|
|
2276
|
+
)
|
|
2277
|
+
objc.registerNewKeywords(
|
|
2278
|
+
"NSMutableDictionary",
|
|
2279
|
+
("OBEXHeadersData", "headersDataSize"),
|
|
2280
|
+
"dictionaryWithOBEXHeadersData_headersDataSize_",
|
|
2281
|
+
)
|
|
2254
2282
|
protocols = {
|
|
2255
2283
|
"IOBluetoothHostControllerDelegate": objc.informal_protocol(
|
|
2256
2284
|
"IOBluetoothHostControllerDelegate",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pyobjc-framework-IOBluetooth
|
|
3
|
-
Version: 12.
|
|
3
|
+
Version: 12.2
|
|
4
4
|
Summary: Wrappers for the framework IOBluetooth on macOS
|
|
5
5
|
Home-page: https://github.com/ronaldoussoren/pyobjc
|
|
6
6
|
Author: Ronald Oussoren
|
|
@@ -17,7 +17,6 @@ Classifier: Operating System :: MacOS :: MacOS X
|
|
|
17
17
|
Classifier: Programming Language :: Python
|
|
18
18
|
Classifier: Programming Language :: Python :: 3
|
|
19
19
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
20
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
21
20
|
Classifier: Programming Language :: Python :: 3.10
|
|
22
21
|
Classifier: Programming Language :: Python :: 3.11
|
|
23
22
|
Classifier: Programming Language :: Python :: 3.12
|
|
@@ -25,14 +24,14 @@ Classifier: Programming Language :: Python :: 3.13
|
|
|
25
24
|
Classifier: Programming Language :: Python :: 3.14
|
|
26
25
|
Classifier: Programming Language :: Python :: 3.15
|
|
27
26
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
28
|
-
Classifier: Programming Language :: Python :: Free Threading ::
|
|
27
|
+
Classifier: Programming Language :: Python :: Free Threading :: 3 - Stable
|
|
29
28
|
Classifier: Programming Language :: Objective C
|
|
30
29
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
31
30
|
Classifier: Topic :: Software Development :: User Interfaces
|
|
32
|
-
Requires-Python: >=3.
|
|
31
|
+
Requires-Python: >=3.10
|
|
33
32
|
Description-Content-Type: text/x-rst; charset=UTF-8
|
|
34
|
-
Requires-Dist: pyobjc-core>=12.
|
|
35
|
-
Requires-Dist: pyobjc-framework-Cocoa>=12.
|
|
33
|
+
Requires-Dist: pyobjc-core>=12.2
|
|
34
|
+
Requires-Dist: pyobjc-framework-Cocoa>=12.2
|
|
36
35
|
Dynamic: author
|
|
37
36
|
Dynamic: author-email
|
|
38
37
|
Dynamic: classifier
|
|
@@ -44,5 +44,5 @@ PyObjCTest/test_obexfiletransferservices.py
|
|
|
44
44
|
PyObjCTest/test_obexsession.py
|
|
45
45
|
metadata/IOBluetooth.fwinfo
|
|
46
46
|
metadata/metadata.ini
|
|
47
|
-
metadata/raw/arm64-26.
|
|
48
|
-
metadata/raw/x86_64-26.
|
|
47
|
+
metadata/raw/arm64-26.5.fwinfo
|
|
48
|
+
metadata/raw/x86_64-26.5.fwinfo
|
{pyobjc_framework_iobluetooth-12.0 → pyobjc_framework_iobluetooth-12.2}/Modules/pyobjc-compat.h
RENAMED
|
@@ -22,12 +22,14 @@ NS_ASSUME_NONNULL_BEGIN
|
|
|
22
22
|
* Start of compiler definitions
|
|
23
23
|
*
|
|
24
24
|
*/
|
|
25
|
+
#if 0
|
|
25
26
|
#ifndef __has_feature
|
|
26
27
|
#define __has_feature(x) 0
|
|
27
28
|
#endif
|
|
28
29
|
#ifndef __has_extension
|
|
29
30
|
#define __has_extension(x) __has_feature(x)
|
|
30
31
|
#endif
|
|
32
|
+
#endif
|
|
31
33
|
|
|
32
34
|
#if __has_extension(c_static_assert)
|
|
33
35
|
#define STATIC_ASSERT(test, message) _Static_assert(test, message)
|
|
@@ -55,46 +57,10 @@ NS_ASSUME_NONNULL_BEGIN
|
|
|
55
57
|
/*
|
|
56
58
|
*
|
|
57
59
|
* Start of compiler support helpers
|
|
58
|
-
*
|
|
59
|
-
* XXX: Are these needed?
|
|
60
60
|
*/
|
|
61
61
|
|
|
62
|
-
#ifdef __GNUC__
|
|
63
62
|
#define unlikely(x) __builtin_expect(!!(x), 0)
|
|
64
63
|
#define likely(x) __builtin_expect(!!(x), 1)
|
|
65
|
-
#else
|
|
66
|
-
#define likely(x) x
|
|
67
|
-
#define likely(x) x
|
|
68
|
-
#endif
|
|
69
|
-
|
|
70
|
-
/* On some versions of GCC <limits.h> defines LONG_LONG_MAX but not LLONG_MAX, compensate.
|
|
71
|
-
*/
|
|
72
|
-
#ifndef LLONG_MIN
|
|
73
|
-
#ifdef LONG_LONG_MIN
|
|
74
|
-
#define LLONG_MIN LONG_LONG_MIN
|
|
75
|
-
#define LLONG_MAX LONG_LONG_MAX
|
|
76
|
-
#define ULLONG_MAX ULONG_LONG_MAX
|
|
77
|
-
#endif
|
|
78
|
-
#endif
|
|
79
|
-
|
|
80
|
-
/*
|
|
81
|
-
*
|
|
82
|
-
* End of compiler support helpers
|
|
83
|
-
*
|
|
84
|
-
* XXX: These two are no longer needed, all supported platforms
|
|
85
|
-
* are 64-bit
|
|
86
|
-
*/
|
|
87
|
-
|
|
88
|
-
#if __LP64__
|
|
89
|
-
#define Py_ARG_NSInteger "l"
|
|
90
|
-
#define Py_ARG_NSUInteger "k"
|
|
91
|
-
#else
|
|
92
|
-
#define Py_ARG_NSInteger "i"
|
|
93
|
-
#define Py_ARG_NSUInteger "I"
|
|
94
|
-
#endif
|
|
95
|
-
|
|
96
|
-
#define PyObjC__STR(x) #x
|
|
97
|
-
#define PyObjC_STR(x) PyObjC__STR(x)
|
|
98
64
|
|
|
99
65
|
/*
|
|
100
66
|
*
|
|
@@ -131,20 +97,6 @@ NS_ASSUME_NONNULL_BEGIN
|
|
|
131
97
|
|
|
132
98
|
extern int PyObjC_Cmp(PyObject* o1, PyObject* o2, int* result);
|
|
133
99
|
|
|
134
|
-
/*
|
|
135
|
-
* A micro optimization: when using Python 3.3 or later it
|
|
136
|
-
* is possible to access a 'char*' with an ASCII representation
|
|
137
|
-
* of a unicode object without first converting it to a bytes
|
|
138
|
-
* string (if the string can be encoded as ASCII in the first
|
|
139
|
-
* place.
|
|
140
|
-
*
|
|
141
|
-
* This slightly reduces the object allocation rate during
|
|
142
|
-
* attribute access.
|
|
143
|
-
*
|
|
144
|
-
* XXX: Use PyUnicode_AsUTF8 instead.
|
|
145
|
-
*/
|
|
146
|
-
extern const char* _Nullable PyObjC_Unicode_Fast_Bytes(PyObject* object);
|
|
147
|
-
|
|
148
100
|
#ifdef __clang__
|
|
149
101
|
|
|
150
102
|
#ifndef Py_LIMITED_API
|
|
@@ -286,6 +238,23 @@ static inline PyObject* _Nullable PyList_GetItemRef(PyObject* l, Py_ssize_t i)
|
|
|
286
238
|
Py_XINCREF(result);
|
|
287
239
|
return result;
|
|
288
240
|
}
|
|
241
|
+
|
|
242
|
+
static inline int
|
|
243
|
+
PyDict_SetDefaultRef(PyObject* p, PyObject* key, PyObject* default_value,
|
|
244
|
+
PyObject* _Nonnull* _Nullable result)
|
|
245
|
+
{
|
|
246
|
+
*result = PyDict_SetDefault(p, key, default_value);
|
|
247
|
+
if (*result == NULL) {
|
|
248
|
+
return -1;
|
|
249
|
+
}
|
|
250
|
+
Py_INCREF(*result);
|
|
251
|
+
|
|
252
|
+
/* This does not follow the spec, should return 1 when the key was already
|
|
253
|
+
* in the dict. That part of the API is not used in PyObjC though.
|
|
254
|
+
*/
|
|
255
|
+
return 0;
|
|
256
|
+
}
|
|
257
|
+
|
|
289
258
|
#endif
|
|
290
259
|
|
|
291
260
|
#if PY_VERSION_HEX < 0x030c0000
|
|
@@ -392,6 +361,11 @@ PyUnstable_TryIncRef(PyObject* op __attribute__((__unused__)))
|
|
|
392
361
|
}
|
|
393
362
|
#endif
|
|
394
363
|
|
|
364
|
+
#if PY_VERSION_HEX < 0x030f00a7
|
|
365
|
+
#define PyAnyDict_CheckExact PyDict_CheckExact
|
|
366
|
+
#define PyAnyDict_Check PyDict_Check
|
|
367
|
+
#endif
|
|
368
|
+
|
|
395
369
|
NS_ASSUME_NONNULL_END
|
|
396
370
|
|
|
397
371
|
#endif /* PyObjC_COMPAT_H */
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pyobjc-framework-IOBluetooth
|
|
3
|
-
Version: 12.
|
|
3
|
+
Version: 12.2
|
|
4
4
|
Summary: Wrappers for the framework IOBluetooth on macOS
|
|
5
5
|
Home-page: https://github.com/ronaldoussoren/pyobjc
|
|
6
6
|
Author: Ronald Oussoren
|
|
@@ -17,7 +17,6 @@ Classifier: Operating System :: MacOS :: MacOS X
|
|
|
17
17
|
Classifier: Programming Language :: Python
|
|
18
18
|
Classifier: Programming Language :: Python :: 3
|
|
19
19
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
20
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
21
20
|
Classifier: Programming Language :: Python :: 3.10
|
|
22
21
|
Classifier: Programming Language :: Python :: 3.11
|
|
23
22
|
Classifier: Programming Language :: Python :: 3.12
|
|
@@ -25,14 +24,14 @@ Classifier: Programming Language :: Python :: 3.13
|
|
|
25
24
|
Classifier: Programming Language :: Python :: 3.14
|
|
26
25
|
Classifier: Programming Language :: Python :: 3.15
|
|
27
26
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
28
|
-
Classifier: Programming Language :: Python :: Free Threading ::
|
|
27
|
+
Classifier: Programming Language :: Python :: Free Threading :: 3 - Stable
|
|
29
28
|
Classifier: Programming Language :: Objective C
|
|
30
29
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
31
30
|
Classifier: Topic :: Software Development :: User Interfaces
|
|
32
|
-
Requires-Python: >=3.
|
|
31
|
+
Requires-Python: >=3.10
|
|
33
32
|
Description-Content-Type: text/x-rst; charset=UTF-8
|
|
34
|
-
Requires-Dist: pyobjc-core>=12.
|
|
35
|
-
Requires-Dist: pyobjc-framework-Cocoa>=12.
|
|
33
|
+
Requires-Dist: pyobjc-core>=12.2
|
|
34
|
+
Requires-Dist: pyobjc-framework-Cocoa>=12.2
|
|
36
35
|
Dynamic: author
|
|
37
36
|
Dynamic: author-email
|
|
38
37
|
Dynamic: classifier
|
|
@@ -15,3 +15,8 @@ class TestIOBluetoothSDPServiceRecord(TestCase):
|
|
|
15
15
|
self.assertResultIsBOOL(
|
|
16
16
|
IOBluetooth.IOBluetoothSDPServiceRecord.hasServiceFromArray_
|
|
17
17
|
)
|
|
18
|
+
|
|
19
|
+
self.assertArgIsOut(
|
|
20
|
+
IOBluetooth.IOBluetoothSDPServiceRecord.getRFCOMMChannelID_, 0
|
|
21
|
+
)
|
|
22
|
+
self.assertArgIsOut(IOBluetooth.IOBluetoothSDPServiceRecord.getL2CAPPSM_, 0)
|
{pyobjc_framework_iobluetooth-12.0 → pyobjc_framework_iobluetooth-12.2}/metadata/IOBluetooth.fwinfo
RENAMED
|
@@ -471,14 +471,14 @@
|
|
|
471
471
|
},
|
|
472
472
|
{
|
|
473
473
|
"args": {
|
|
474
|
-
"0": {}
|
|
474
|
+
"0": { "type_modifier": "o"}
|
|
475
475
|
},
|
|
476
476
|
"class_method": false,
|
|
477
477
|
"selector": "getRFCOMMChannelID:"
|
|
478
478
|
},
|
|
479
479
|
{
|
|
480
480
|
"args": {
|
|
481
|
-
"0": {}
|
|
481
|
+
"0": { "type_modifier": "o"}
|
|
482
482
|
},
|
|
483
483
|
"class_method": false,
|
|
484
484
|
"selector": "getL2CAPPSM:"
|
|
@@ -906,20 +906,20 @@
|
|
|
906
906
|
"0": {},
|
|
907
907
|
"1": {
|
|
908
908
|
"callable_retained": true,
|
|
909
|
-
"
|
|
910
|
-
"
|
|
911
|
-
{
|
|
912
|
-
"
|
|
909
|
+
"callable": {
|
|
910
|
+
"arguments": {
|
|
911
|
+
"0": {
|
|
912
|
+
"type": "^v"
|
|
913
913
|
},
|
|
914
|
-
{
|
|
915
|
-
"
|
|
914
|
+
"1": {
|
|
915
|
+
"type": "^{OpaqueIOBluetoothObjectRef=}"
|
|
916
916
|
},
|
|
917
|
-
{
|
|
918
|
-
"
|
|
917
|
+
"2": {
|
|
918
|
+
"type": "^{OpaqueIOBluetoothObjectRef=}"
|
|
919
919
|
}
|
|
920
|
-
|
|
920
|
+
},
|
|
921
921
|
"retval": {
|
|
922
|
-
"
|
|
922
|
+
"type": "v"
|
|
923
923
|
}
|
|
924
924
|
}
|
|
925
925
|
},
|