pyobjc-framework-PushKit 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.
Files changed (32) hide show
  1. {pyobjc_framework_pushkit-12.0 → pyobjc_framework_pushkit-12.2}/Lib/PushKit/_metadata.py +23 -1
  2. {pyobjc_framework_pushkit-12.0 → pyobjc_framework_pushkit-12.2}/Lib/pyobjc_framework_PushKit.egg-info/PKG-INFO +5 -6
  3. {pyobjc_framework_pushkit-12.0 → pyobjc_framework_pushkit-12.2}/Lib/pyobjc_framework_PushKit.egg-info/SOURCES.txt +3 -2
  4. pyobjc_framework_pushkit-12.2/Lib/pyobjc_framework_PushKit.egg-info/pyobjc-build-info.txt +3 -0
  5. pyobjc_framework_pushkit-12.2/Lib/pyobjc_framework_PushKit.egg-info/requires.txt +2 -0
  6. {pyobjc_framework_pushkit-12.0 → pyobjc_framework_pushkit-12.2}/Modules/pyobjc-compat.h +24 -50
  7. {pyobjc_framework_pushkit-12.0 → pyobjc_framework_pushkit-12.2}/PKG-INFO +5 -6
  8. {pyobjc_framework_pushkit-12.0 → pyobjc_framework_pushkit-12.2}/PyObjCTest/test_pkpushregistry.py +12 -1
  9. pyobjc_framework_pushkit-12.2/PyObjCTest/test_pkvoippushmetadata.py +9 -0
  10. pyobjc_framework_pushkit-12.0/metadata/raw/arm64-26.0.fwinfo → pyobjc_framework_pushkit-12.2/metadata/raw/arm64-26.5.fwinfo +178 -5
  11. pyobjc_framework_pushkit-12.0/metadata/raw/x86_64-26.0.fwinfo → pyobjc_framework_pushkit-12.2/metadata/raw/x86_64-26.5.fwinfo +178 -5
  12. {pyobjc_framework_pushkit-12.0 → pyobjc_framework_pushkit-12.2}/pyobjc_setup.py +4 -5
  13. {pyobjc_framework_pushkit-12.0 → pyobjc_framework_pushkit-12.2}/setup.py +1 -1
  14. pyobjc_framework_pushkit-12.0/Lib/pyobjc_framework_PushKit.egg-info/pyobjc-build-info.txt +0 -3
  15. pyobjc_framework_pushkit-12.0/Lib/pyobjc_framework_PushKit.egg-info/requires.txt +0 -2
  16. {pyobjc_framework_pushkit-12.0 → pyobjc_framework_pushkit-12.2}/Lib/PushKit/__init__.py +0 -0
  17. {pyobjc_framework_pushkit-12.0 → pyobjc_framework_pushkit-12.2}/Lib/pyobjc_framework_PushKit.egg-info/dependency_links.txt +0 -0
  18. {pyobjc_framework_pushkit-12.0 → pyobjc_framework_pushkit-12.2}/Lib/pyobjc_framework_PushKit.egg-info/not-zip-safe +0 -0
  19. {pyobjc_framework_pushkit-12.0 → pyobjc_framework_pushkit-12.2}/Lib/pyobjc_framework_PushKit.egg-info/top_level.txt +0 -0
  20. {pyobjc_framework_pushkit-12.0 → pyobjc_framework_pushkit-12.2}/License.txt +0 -0
  21. {pyobjc_framework_pushkit-12.0 → pyobjc_framework_pushkit-12.2}/MANIFEST.in +0 -0
  22. {pyobjc_framework_pushkit-12.0 → pyobjc_framework_pushkit-12.2}/Modules/_PushKit.m +0 -0
  23. {pyobjc_framework_pushkit-12.0 → pyobjc_framework_pushkit-12.2}/Modules/_PushKit_protocols.m +0 -0
  24. {pyobjc_framework_pushkit-12.0 → pyobjc_framework_pushkit-12.2}/Modules/pyobjc-api.h +0 -0
  25. {pyobjc_framework_pushkit-12.0 → pyobjc_framework_pushkit-12.2}/PyObjCTest/__init__.py +0 -0
  26. {pyobjc_framework_pushkit-12.0 → pyobjc_framework_pushkit-12.2}/PyObjCTest/test_pkdefines.py +0 -0
  27. {pyobjc_framework_pushkit-12.0 → pyobjc_framework_pushkit-12.2}/PyObjCTest/test_pkpushcredentials.py +0 -0
  28. {pyobjc_framework_pushkit-12.0 → pyobjc_framework_pushkit-12.2}/PyObjCTest/test_pushkit.py +0 -0
  29. {pyobjc_framework_pushkit-12.0 → pyobjc_framework_pushkit-12.2}/metadata/PushKit.fwinfo +0 -0
  30. {pyobjc_framework_pushkit-12.0 → pyobjc_framework_pushkit-12.2}/metadata/metadata.ini +0 -0
  31. {pyobjc_framework_pushkit-12.0 → pyobjc_framework_pushkit-12.2}/pyproject.toml +0 -0
  32. {pyobjc_framework_pushkit-12.0 → pyobjc_framework_pushkit-12.2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  # This file is generated by objective.metadata
2
2
  #
3
- # Last update: Thu Jul 24 14:36:32 2025
3
+ # Last update: Sun May 24 11:55:38 2026
4
4
  #
5
5
  # flake8: noqa
6
6
 
@@ -76,6 +76,26 @@ try:
76
76
  },
77
77
  },
78
78
  )
79
+ r(
80
+ b"NSObject",
81
+ b"pushRegistry:didReceiveIncomingVoIPPushWithPayload:metadata:withCompletionHandler:",
82
+ {
83
+ "required": False,
84
+ "retval": {"type": b"v"},
85
+ "arguments": {
86
+ 2: {"type": b"@"},
87
+ 3: {"type": b"@"},
88
+ 4: {"type": b"@"},
89
+ 5: {
90
+ "callable": {
91
+ "retval": {"type": b"v"},
92
+ "arguments": {0: {"type": b"^v"}},
93
+ },
94
+ "type": b"@?",
95
+ },
96
+ },
97
+ },
98
+ )
79
99
  r(
80
100
  b"NSObject",
81
101
  b"pushRegistry:didUpdatePushCredentials:forType:",
@@ -85,9 +105,11 @@ try:
85
105
  "arguments": {2: {"type": b"@"}, 3: {"type": b"@"}, 4: {"type": b"@"}},
86
106
  },
87
107
  )
108
+ r(b"PKVoIPPushMetadata", b"mustReport", {"retval": {"type": b"Z"}})
88
109
  finally:
89
110
  objc._updatingMetadata(False)
90
111
 
112
+ objc.registerNewKeywordsFromSelector("PKPushRegistry", b"init")
91
113
  objc.registerNewKeywordsFromSelector("PKPushRegistry", b"initWithQueue:")
92
114
  expressions = {}
93
115
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyobjc-framework-PushKit
3
- Version: 12.0
3
+ Version: 12.2
4
4
  Summary: Wrappers for the framework PushKit 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 :: 2 - Beta
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.9
31
+ Requires-Python: >=3.10
33
32
  Description-Content-Type: text/x-rst; charset=UTF-8
34
- Requires-Dist: pyobjc-core>=12.0
35
- Requires-Dist: pyobjc-framework-Cocoa>=12.0
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
@@ -20,8 +20,9 @@ PyObjCTest/__init__.py
20
20
  PyObjCTest/test_pkdefines.py
21
21
  PyObjCTest/test_pkpushcredentials.py
22
22
  PyObjCTest/test_pkpushregistry.py
23
+ PyObjCTest/test_pkvoippushmetadata.py
23
24
  PyObjCTest/test_pushkit.py
24
25
  metadata/PushKit.fwinfo
25
26
  metadata/metadata.ini
26
- metadata/raw/arm64-26.0.fwinfo
27
- metadata/raw/x86_64-26.0.fwinfo
27
+ metadata/raw/arm64-26.5.fwinfo
28
+ metadata/raw/x86_64-26.5.fwinfo
@@ -0,0 +1,3 @@
1
+ macOS 26.5 (25F71)
2
+ Apple clang version 21.0.0 (clang-2100.1.1.101)
3
+ SDK: macOS 26.5
@@ -0,0 +1,2 @@
1
+ pyobjc-core>=12.2
2
+ pyobjc-framework-Cocoa>=12.2
@@ -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-PushKit
3
- Version: 12.0
3
+ Version: 12.2
4
4
  Summary: Wrappers for the framework PushKit 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 :: 2 - Beta
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.9
31
+ Requires-Python: >=3.10
33
32
  Description-Content-Type: text/x-rst; charset=UTF-8
34
- Requires-Dist: pyobjc-core>=12.0
35
- Requires-Dist: pyobjc-framework-Cocoa>=12.0
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
@@ -8,6 +8,11 @@ class TestPKPushRegistryHelper(PushKit.NSObject):
8
8
  ):
9
9
  pass
10
10
 
11
+ def pushRegistry_didReceiveIncomingVoIPPushWithPayload_metadata_withCompletionHandler_(
12
+ self, a, b, c, d
13
+ ):
14
+ pass
15
+
11
16
 
12
17
  class TestPKPushRegistry(TestCase):
13
18
  @min_os_level("10.15")
@@ -15,13 +20,19 @@ class TestPKPushRegistry(TestCase):
15
20
  self.assertIsInstance(PushKit.PKPushTypeFileProvider, str)
16
21
 
17
22
  @min_sdk_level("10.15")
18
- def test_methods(self):
23
+ def test_protocol_methods(self):
19
24
  self.assertArgIsBlock(
20
25
  TestPKPushRegistryHelper.pushRegistry_didReceiveIncomingPushWithPayload_forType_withCompletionHandler_, # noqa: B950
21
26
  3,
22
27
  b"v",
23
28
  )
24
29
 
30
+ self.assertArgIsBlock(
31
+ TestPKPushRegistryHelper.pushRegistry_didReceiveIncomingVoIPPushWithPayload_metadata_withCompletionHandler_, # noqa: B950
32
+ 3,
33
+ b"v",
34
+ )
35
+
25
36
  @min_sdk_level("10.15")
26
37
  def test_protocols(self):
27
38
  self.assertProtocolExists("PKPushRegistryDelegate")
@@ -0,0 +1,9 @@
1
+ from PyObjCTools.TestSupport import TestCase, min_os_level
2
+
3
+ import PushKit
4
+
5
+
6
+ class TestPKVoIPPushMetadata(TestCase):
7
+ @min_os_level("26.4")
8
+ def test_methods(self):
9
+ self.assertResultIsBOOL(PushKit.PKVoIPPushMetadata.mustReport)
@@ -1,7 +1,7 @@
1
1
  // GENERATED FILE DO NOT EDIT
2
2
  //
3
3
  // This file was generated by objective.metadata
4
- // Last update: Thu Jul 24 14:36:23 2025
4
+ // Last update: Sun May 24 11:55:38 2026
5
5
  {
6
6
  "arch": "arm64",
7
7
  "definitions": {
@@ -15,7 +15,9 @@
15
15
  {
16
16
  "args": [],
17
17
  "class_method": false,
18
+ "introduced": "10.15",
18
19
  "retval": {
20
+ "type_name": "PKPushType",
19
21
  "typestr": "@",
20
22
  "typestr_special": false
21
23
  },
@@ -25,7 +27,9 @@
25
27
  {
26
28
  "args": [],
27
29
  "class_method": false,
30
+ "introduced": "10.15",
28
31
  "retval": {
32
+ "type_name": "NSData *",
29
33
  "typestr": "@",
30
34
  "typestr_special": false
31
35
  },
@@ -41,6 +45,7 @@
41
45
  "readonly"
42
46
  ],
43
47
  "name": "type",
48
+ "type_name": "PKPushType",
44
49
  "typestr": "@",
45
50
  "typestr_special": false
46
51
  },
@@ -50,6 +55,7 @@
50
55
  "readonly"
51
56
  ],
52
57
  "name": "token",
58
+ "type_name": "NSData *",
53
59
  "typestr": "@",
54
60
  "typestr_special": false
55
61
  }
@@ -63,7 +69,9 @@
63
69
  {
64
70
  "args": [],
65
71
  "class_method": false,
72
+ "introduced": "10.15",
66
73
  "retval": {
74
+ "type_name": "PKPushType",
67
75
  "typestr": "@",
68
76
  "typestr_special": false
69
77
  },
@@ -73,7 +81,9 @@
73
81
  {
74
82
  "args": [],
75
83
  "class_method": false,
84
+ "introduced": "10.15",
76
85
  "retval": {
86
+ "type_name": "NSDictionary *",
77
87
  "typestr": "@",
78
88
  "typestr_special": false
79
89
  },
@@ -89,6 +99,7 @@
89
99
  "readonly"
90
100
  ],
91
101
  "name": "type",
102
+ "type_name": "PKPushType",
92
103
  "typestr": "@",
93
104
  "typestr_special": false
94
105
  },
@@ -98,6 +109,7 @@
98
109
  "readonly"
99
110
  ],
100
111
  "name": "dictionaryPayload",
112
+ "type_name": "NSDictionary *",
101
113
  "typestr": "@",
102
114
  "typestr_special": false
103
115
  }
@@ -111,12 +123,17 @@
111
123
  {
112
124
  "args": [
113
125
  {
126
+ "name": "type",
127
+ "null_accepted": true,
128
+ "type_name": "PKPushType",
114
129
  "typestr": "@",
115
130
  "typestr_special": false
116
131
  }
117
132
  ],
118
133
  "class_method": false,
134
+ "introduced": "10.15",
119
135
  "retval": {
136
+ "type_name": "NSData *",
120
137
  "typestr": "@",
121
138
  "typestr_special": false
122
139
  },
@@ -126,12 +143,18 @@
126
143
  {
127
144
  "args": [
128
145
  {
146
+ "name": "queue",
147
+ "null_accepted": true,
148
+ "type_name": "dispatch_queue_t",
129
149
  "typestr": "@",
130
150
  "typestr_special": false
131
151
  }
132
152
  ],
133
153
  "class_method": false,
154
+ "introduced": "10.15",
134
155
  "retval": {
156
+ "instancetype": true,
157
+ "type_name": "instancetype",
135
158
  "typestr": "@",
136
159
  "typestr_special": false
137
160
  },
@@ -141,7 +164,10 @@
141
164
  {
142
165
  "args": [],
143
166
  "class_method": false,
167
+ "introduced": "10.15",
144
168
  "retval": {
169
+ "instancetype": true,
170
+ "type_name": "instancetype",
145
171
  "typestr": "@",
146
172
  "typestr_special": false
147
173
  },
@@ -151,7 +177,9 @@
151
177
  {
152
178
  "args": [],
153
179
  "class_method": false,
180
+ "introduced": "10.15",
154
181
  "retval": {
182
+ "type_name": "id<PKPushRegistryDelegate>",
155
183
  "typestr": "@",
156
184
  "typestr_special": false
157
185
  },
@@ -161,12 +189,17 @@
161
189
  {
162
190
  "args": [
163
191
  {
192
+ "name": "delegate",
193
+ "null_accepted": true,
194
+ "type_name": "id<PKPushRegistryDelegate>",
164
195
  "typestr": "@",
165
196
  "typestr_special": false
166
197
  }
167
198
  ],
168
199
  "class_method": false,
200
+ "introduced": "10.15",
169
201
  "retval": {
202
+ "type_name": "void",
170
203
  "typestr": "v",
171
204
  "typestr_special": false
172
205
  },
@@ -176,7 +209,9 @@
176
209
  {
177
210
  "args": [],
178
211
  "class_method": false,
212
+ "introduced": "10.15",
179
213
  "retval": {
214
+ "type_name": "NSSet<PKPushType> *",
180
215
  "typestr": "@",
181
216
  "typestr_special": false
182
217
  },
@@ -186,12 +221,17 @@
186
221
  {
187
222
  "args": [
188
223
  {
224
+ "name": "desiredPushTypes",
225
+ "null_accepted": true,
226
+ "type_name": "NSSet<PKPushType> *",
189
227
  "typestr": "@",
190
228
  "typestr_special": false
191
229
  }
192
230
  ],
193
231
  "class_method": false,
232
+ "introduced": "10.15",
194
233
  "retval": {
234
+ "type_name": "void",
195
235
  "typestr": "v",
196
236
  "typestr_special": false
197
237
  },
@@ -207,6 +247,7 @@
207
247
  "weak"
208
248
  ],
209
249
  "name": "delegate",
250
+ "type_name": "id<PKPushRegistryDelegate>",
210
251
  "typestr": "@",
211
252
  "typestr_special": false
212
253
  },
@@ -216,12 +257,44 @@
216
257
  "readwrite"
217
258
  ],
218
259
  "name": "desiredPushTypes",
260
+ "type_name": "NSSet<PKPushType> *",
219
261
  "typestr": "@",
220
262
  "typestr_special": false
221
263
  }
222
264
  ],
223
265
  "protocols": [],
224
266
  "super": "NSObject"
267
+ },
268
+ "PKVoIPPushMetadata": {
269
+ "categories": [],
270
+ "methods": [
271
+ {
272
+ "args": [],
273
+ "class_method": false,
274
+ "introduced": "26.4",
275
+ "retval": {
276
+ "type_name": "BOOL",
277
+ "typestr": "Z",
278
+ "typestr_special": true
279
+ },
280
+ "selector": "mustReport",
281
+ "visibility": "public"
282
+ }
283
+ ],
284
+ "name": "PKVoIPPushMetadata",
285
+ "properties": [
286
+ {
287
+ "attributes": [
288
+ "readonly"
289
+ ],
290
+ "name": "mustReport",
291
+ "type_name": "BOOL",
292
+ "typestr": "Z",
293
+ "typestr_special": true
294
+ }
295
+ ],
296
+ "protocols": [],
297
+ "super": "NSObject"
225
298
  }
226
299
  },
227
300
  "enum": {},
@@ -229,12 +302,16 @@
229
302
  "expressions": {},
230
303
  "externs": {
231
304
  "PKPushTypeComplication": {
305
+ "type_name": "const PKPushType",
232
306
  "typestr": "@"
233
307
  },
234
308
  "PKPushTypeFileProvider": {
309
+ "introduced": "10.15",
310
+ "type_name": "const PKPushType",
235
311
  "typestr": "@"
236
312
  },
237
313
  "PKPushTypeVoIP": {
314
+ "type_name": "const PKPushType",
238
315
  "typestr": "@"
239
316
  }
240
317
  },
@@ -247,14 +324,23 @@
247
324
  {
248
325
  "args": [
249
326
  {
327
+ "name": "registry",
328
+ "null_accepted": true,
329
+ "type_name": "PKPushRegistry *",
250
330
  "typestr": "@",
251
331
  "typestr_special": false
252
332
  },
253
333
  {
334
+ "name": "pushCredentials",
335
+ "null_accepted": true,
336
+ "type_name": "PKPushCredentials *",
254
337
  "typestr": "@",
255
338
  "typestr_special": false
256
339
  },
257
340
  {
341
+ "name": "type",
342
+ "null_accepted": true,
343
+ "type_name": "PKPushType",
258
344
  "typestr": "@",
259
345
  "typestr_special": false
260
346
  }
@@ -262,6 +348,7 @@
262
348
  "class_method": false,
263
349
  "required": true,
264
350
  "retval": {
351
+ "type_name": "void",
265
352
  "typestr": "v",
266
353
  "typestr_special": false
267
354
  },
@@ -271,14 +358,23 @@
271
358
  {
272
359
  "args": [
273
360
  {
361
+ "name": "registry",
362
+ "null_accepted": true,
363
+ "type_name": "PKPushRegistry *",
274
364
  "typestr": "@",
275
365
  "typestr_special": false
276
366
  },
277
367
  {
368
+ "name": "payload",
369
+ "null_accepted": true,
370
+ "type_name": "PKPushPayload *",
278
371
  "typestr": "@",
279
372
  "typestr_special": false
280
373
  },
281
374
  {
375
+ "name": "type",
376
+ "null_accepted": true,
377
+ "type_name": "PKPushType",
282
378
  "typestr": "@",
283
379
  "typestr_special": false
284
380
  }
@@ -286,6 +382,7 @@
286
382
  "class_method": false,
287
383
  "required": false,
288
384
  "retval": {
385
+ "type_name": "void",
289
386
  "typestr": "v",
290
387
  "typestr_special": false
291
388
  },
@@ -295,14 +392,23 @@
295
392
  {
296
393
  "args": [
297
394
  {
395
+ "name": "registry",
396
+ "null_accepted": true,
397
+ "type_name": "PKPushRegistry *",
298
398
  "typestr": "@",
299
399
  "typestr_special": false
300
400
  },
301
401
  {
402
+ "name": "payload",
403
+ "null_accepted": true,
404
+ "type_name": "PKPushPayload *",
302
405
  "typestr": "@",
303
406
  "typestr_special": false
304
407
  },
305
408
  {
409
+ "name": "type",
410
+ "null_accepted": true,
411
+ "type_name": "PKPushType",
306
412
  "typestr": "@",
307
413
  "typestr_special": false
308
414
  },
@@ -314,16 +420,22 @@
314
420
  }
315
421
  },
316
422
  "retval": {
317
- "type": "v"
423
+ "type": "v",
424
+ "type_name": "void"
318
425
  }
319
426
  },
427
+ "name": "completion",
428
+ "null_accepted": true,
429
+ "type_name": "void (^)(void)",
320
430
  "typestr": "@?",
321
431
  "typestr_special": false
322
432
  }
323
433
  ],
324
434
  "class_method": false,
435
+ "introduced": "10.15",
325
436
  "required": false,
326
437
  "retval": {
438
+ "type_name": "void",
327
439
  "typestr": "v",
328
440
  "typestr_special": false
329
441
  },
@@ -333,10 +445,69 @@
333
445
  {
334
446
  "args": [
335
447
  {
448
+ "name": "registry",
449
+ "null_accepted": true,
450
+ "type_name": "PKPushRegistry *",
451
+ "typestr": "@",
452
+ "typestr_special": false
453
+ },
454
+ {
455
+ "name": "payload",
456
+ "null_accepted": true,
457
+ "type_name": "PKPushPayload *",
458
+ "typestr": "@",
459
+ "typestr_special": false
460
+ },
461
+ {
462
+ "name": "metadata",
463
+ "null_accepted": true,
464
+ "type_name": "PKVoIPPushMetadata *",
465
+ "typestr": "@",
466
+ "typestr_special": false
467
+ },
468
+ {
469
+ "callable": {
470
+ "arguments": {
471
+ "0": {
472
+ "type": "^v"
473
+ }
474
+ },
475
+ "retval": {
476
+ "type": "v",
477
+ "type_name": "void"
478
+ }
479
+ },
480
+ "name": "completion",
481
+ "null_accepted": true,
482
+ "type_name": "void (^)(void)",
483
+ "typestr": "@?",
484
+ "typestr_special": false
485
+ }
486
+ ],
487
+ "class_method": false,
488
+ "introduced": "26.4",
489
+ "required": false,
490
+ "retval": {
491
+ "type_name": "void",
492
+ "typestr": "v",
493
+ "typestr_special": false
494
+ },
495
+ "selector": "pushRegistry:didReceiveIncomingVoIPPushWithPayload:metadata:withCompletionHandler:",
496
+ "visibility": "public"
497
+ },
498
+ {
499
+ "args": [
500
+ {
501
+ "name": "registry",
502
+ "null_accepted": true,
503
+ "type_name": "PKPushRegistry *",
336
504
  "typestr": "@",
337
505
  "typestr_special": false
338
506
  },
339
507
  {
508
+ "name": "type",
509
+ "null_accepted": true,
510
+ "type_name": "PKPushType",
340
511
  "typestr": "@",
341
512
  "typestr_special": false
342
513
  }
@@ -344,6 +515,7 @@
344
515
  "class_method": false,
345
516
  "required": false,
346
517
  "retval": {
518
+ "type_name": "void",
347
519
  "typestr": "v",
348
520
  "typestr_special": false
349
521
  },
@@ -368,8 +540,9 @@
368
540
  "PKDefines.h",
369
541
  "PKPushCredentials.h",
370
542
  "PKPushPayload.h",
371
- "PKPushRegistry.h"
543
+ "PKPushRegistry.h",
544
+ "PKVoIPPushMetadata.h"
372
545
  ],
373
- "release": "10.16",
374
- "sdk": "/Users/ronald/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.0.sdk"
546
+ "release": "26.5",
547
+ "sdk": "/Users/ronald/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.5.sdk"
375
548
  }
@@ -1,7 +1,7 @@
1
1
  // GENERATED FILE DO NOT EDIT
2
2
  //
3
3
  // This file was generated by objective.metadata
4
- // Last update: Thu Jul 24 14:36:21 2025
4
+ // Last update: Sun May 24 11:55:36 2026
5
5
  {
6
6
  "arch": "x86_64",
7
7
  "definitions": {
@@ -15,7 +15,9 @@
15
15
  {
16
16
  "args": [],
17
17
  "class_method": false,
18
+ "introduced": "10.15",
18
19
  "retval": {
20
+ "type_name": "PKPushType",
19
21
  "typestr": "@",
20
22
  "typestr_special": false
21
23
  },
@@ -25,7 +27,9 @@
25
27
  {
26
28
  "args": [],
27
29
  "class_method": false,
30
+ "introduced": "10.15",
28
31
  "retval": {
32
+ "type_name": "NSData *",
29
33
  "typestr": "@",
30
34
  "typestr_special": false
31
35
  },
@@ -41,6 +45,7 @@
41
45
  "readonly"
42
46
  ],
43
47
  "name": "type",
48
+ "type_name": "PKPushType",
44
49
  "typestr": "@",
45
50
  "typestr_special": false
46
51
  },
@@ -50,6 +55,7 @@
50
55
  "readonly"
51
56
  ],
52
57
  "name": "token",
58
+ "type_name": "NSData *",
53
59
  "typestr": "@",
54
60
  "typestr_special": false
55
61
  }
@@ -63,7 +69,9 @@
63
69
  {
64
70
  "args": [],
65
71
  "class_method": false,
72
+ "introduced": "10.15",
66
73
  "retval": {
74
+ "type_name": "PKPushType",
67
75
  "typestr": "@",
68
76
  "typestr_special": false
69
77
  },
@@ -73,7 +81,9 @@
73
81
  {
74
82
  "args": [],
75
83
  "class_method": false,
84
+ "introduced": "10.15",
76
85
  "retval": {
86
+ "type_name": "NSDictionary *",
77
87
  "typestr": "@",
78
88
  "typestr_special": false
79
89
  },
@@ -89,6 +99,7 @@
89
99
  "readonly"
90
100
  ],
91
101
  "name": "type",
102
+ "type_name": "PKPushType",
92
103
  "typestr": "@",
93
104
  "typestr_special": false
94
105
  },
@@ -98,6 +109,7 @@
98
109
  "readonly"
99
110
  ],
100
111
  "name": "dictionaryPayload",
112
+ "type_name": "NSDictionary *",
101
113
  "typestr": "@",
102
114
  "typestr_special": false
103
115
  }
@@ -111,12 +123,17 @@
111
123
  {
112
124
  "args": [
113
125
  {
126
+ "name": "type",
127
+ "null_accepted": true,
128
+ "type_name": "PKPushType",
114
129
  "typestr": "@",
115
130
  "typestr_special": false
116
131
  }
117
132
  ],
118
133
  "class_method": false,
134
+ "introduced": "10.15",
119
135
  "retval": {
136
+ "type_name": "NSData *",
120
137
  "typestr": "@",
121
138
  "typestr_special": false
122
139
  },
@@ -126,12 +143,18 @@
126
143
  {
127
144
  "args": [
128
145
  {
146
+ "name": "queue",
147
+ "null_accepted": true,
148
+ "type_name": "dispatch_queue_t",
129
149
  "typestr": "@",
130
150
  "typestr_special": false
131
151
  }
132
152
  ],
133
153
  "class_method": false,
154
+ "introduced": "10.15",
134
155
  "retval": {
156
+ "instancetype": true,
157
+ "type_name": "instancetype",
135
158
  "typestr": "@",
136
159
  "typestr_special": false
137
160
  },
@@ -141,7 +164,10 @@
141
164
  {
142
165
  "args": [],
143
166
  "class_method": false,
167
+ "introduced": "10.15",
144
168
  "retval": {
169
+ "instancetype": true,
170
+ "type_name": "instancetype",
145
171
  "typestr": "@",
146
172
  "typestr_special": false
147
173
  },
@@ -151,7 +177,9 @@
151
177
  {
152
178
  "args": [],
153
179
  "class_method": false,
180
+ "introduced": "10.15",
154
181
  "retval": {
182
+ "type_name": "id<PKPushRegistryDelegate>",
155
183
  "typestr": "@",
156
184
  "typestr_special": false
157
185
  },
@@ -161,12 +189,17 @@
161
189
  {
162
190
  "args": [
163
191
  {
192
+ "name": "delegate",
193
+ "null_accepted": true,
194
+ "type_name": "id<PKPushRegistryDelegate>",
164
195
  "typestr": "@",
165
196
  "typestr_special": false
166
197
  }
167
198
  ],
168
199
  "class_method": false,
200
+ "introduced": "10.15",
169
201
  "retval": {
202
+ "type_name": "void",
170
203
  "typestr": "v",
171
204
  "typestr_special": false
172
205
  },
@@ -176,7 +209,9 @@
176
209
  {
177
210
  "args": [],
178
211
  "class_method": false,
212
+ "introduced": "10.15",
179
213
  "retval": {
214
+ "type_name": "NSSet<PKPushType> *",
180
215
  "typestr": "@",
181
216
  "typestr_special": false
182
217
  },
@@ -186,12 +221,17 @@
186
221
  {
187
222
  "args": [
188
223
  {
224
+ "name": "desiredPushTypes",
225
+ "null_accepted": true,
226
+ "type_name": "NSSet<PKPushType> *",
189
227
  "typestr": "@",
190
228
  "typestr_special": false
191
229
  }
192
230
  ],
193
231
  "class_method": false,
232
+ "introduced": "10.15",
194
233
  "retval": {
234
+ "type_name": "void",
195
235
  "typestr": "v",
196
236
  "typestr_special": false
197
237
  },
@@ -207,6 +247,7 @@
207
247
  "weak"
208
248
  ],
209
249
  "name": "delegate",
250
+ "type_name": "id<PKPushRegistryDelegate>",
210
251
  "typestr": "@",
211
252
  "typestr_special": false
212
253
  },
@@ -216,12 +257,44 @@
216
257
  "readwrite"
217
258
  ],
218
259
  "name": "desiredPushTypes",
260
+ "type_name": "NSSet<PKPushType> *",
219
261
  "typestr": "@",
220
262
  "typestr_special": false
221
263
  }
222
264
  ],
223
265
  "protocols": [],
224
266
  "super": "NSObject"
267
+ },
268
+ "PKVoIPPushMetadata": {
269
+ "categories": [],
270
+ "methods": [
271
+ {
272
+ "args": [],
273
+ "class_method": false,
274
+ "introduced": "26.4",
275
+ "retval": {
276
+ "type_name": "BOOL",
277
+ "typestr": "Z",
278
+ "typestr_special": true
279
+ },
280
+ "selector": "mustReport",
281
+ "visibility": "public"
282
+ }
283
+ ],
284
+ "name": "PKVoIPPushMetadata",
285
+ "properties": [
286
+ {
287
+ "attributes": [
288
+ "readonly"
289
+ ],
290
+ "name": "mustReport",
291
+ "type_name": "BOOL",
292
+ "typestr": "Z",
293
+ "typestr_special": true
294
+ }
295
+ ],
296
+ "protocols": [],
297
+ "super": "NSObject"
225
298
  }
226
299
  },
227
300
  "enum": {},
@@ -229,12 +302,16 @@
229
302
  "expressions": {},
230
303
  "externs": {
231
304
  "PKPushTypeComplication": {
305
+ "type_name": "const PKPushType",
232
306
  "typestr": "@"
233
307
  },
234
308
  "PKPushTypeFileProvider": {
309
+ "introduced": "10.15",
310
+ "type_name": "const PKPushType",
235
311
  "typestr": "@"
236
312
  },
237
313
  "PKPushTypeVoIP": {
314
+ "type_name": "const PKPushType",
238
315
  "typestr": "@"
239
316
  }
240
317
  },
@@ -247,14 +324,23 @@
247
324
  {
248
325
  "args": [
249
326
  {
327
+ "name": "registry",
328
+ "null_accepted": true,
329
+ "type_name": "PKPushRegistry *",
250
330
  "typestr": "@",
251
331
  "typestr_special": false
252
332
  },
253
333
  {
334
+ "name": "pushCredentials",
335
+ "null_accepted": true,
336
+ "type_name": "PKPushCredentials *",
254
337
  "typestr": "@",
255
338
  "typestr_special": false
256
339
  },
257
340
  {
341
+ "name": "type",
342
+ "null_accepted": true,
343
+ "type_name": "PKPushType",
258
344
  "typestr": "@",
259
345
  "typestr_special": false
260
346
  }
@@ -262,6 +348,7 @@
262
348
  "class_method": false,
263
349
  "required": true,
264
350
  "retval": {
351
+ "type_name": "void",
265
352
  "typestr": "v",
266
353
  "typestr_special": false
267
354
  },
@@ -271,14 +358,23 @@
271
358
  {
272
359
  "args": [
273
360
  {
361
+ "name": "registry",
362
+ "null_accepted": true,
363
+ "type_name": "PKPushRegistry *",
274
364
  "typestr": "@",
275
365
  "typestr_special": false
276
366
  },
277
367
  {
368
+ "name": "payload",
369
+ "null_accepted": true,
370
+ "type_name": "PKPushPayload *",
278
371
  "typestr": "@",
279
372
  "typestr_special": false
280
373
  },
281
374
  {
375
+ "name": "type",
376
+ "null_accepted": true,
377
+ "type_name": "PKPushType",
282
378
  "typestr": "@",
283
379
  "typestr_special": false
284
380
  }
@@ -286,6 +382,7 @@
286
382
  "class_method": false,
287
383
  "required": false,
288
384
  "retval": {
385
+ "type_name": "void",
289
386
  "typestr": "v",
290
387
  "typestr_special": false
291
388
  },
@@ -295,14 +392,23 @@
295
392
  {
296
393
  "args": [
297
394
  {
395
+ "name": "registry",
396
+ "null_accepted": true,
397
+ "type_name": "PKPushRegistry *",
298
398
  "typestr": "@",
299
399
  "typestr_special": false
300
400
  },
301
401
  {
402
+ "name": "payload",
403
+ "null_accepted": true,
404
+ "type_name": "PKPushPayload *",
302
405
  "typestr": "@",
303
406
  "typestr_special": false
304
407
  },
305
408
  {
409
+ "name": "type",
410
+ "null_accepted": true,
411
+ "type_name": "PKPushType",
306
412
  "typestr": "@",
307
413
  "typestr_special": false
308
414
  },
@@ -314,16 +420,22 @@
314
420
  }
315
421
  },
316
422
  "retval": {
317
- "type": "v"
423
+ "type": "v",
424
+ "type_name": "void"
318
425
  }
319
426
  },
427
+ "name": "completion",
428
+ "null_accepted": true,
429
+ "type_name": "void (^)(void)",
320
430
  "typestr": "@?",
321
431
  "typestr_special": false
322
432
  }
323
433
  ],
324
434
  "class_method": false,
435
+ "introduced": "10.15",
325
436
  "required": false,
326
437
  "retval": {
438
+ "type_name": "void",
327
439
  "typestr": "v",
328
440
  "typestr_special": false
329
441
  },
@@ -333,10 +445,69 @@
333
445
  {
334
446
  "args": [
335
447
  {
448
+ "name": "registry",
449
+ "null_accepted": true,
450
+ "type_name": "PKPushRegistry *",
451
+ "typestr": "@",
452
+ "typestr_special": false
453
+ },
454
+ {
455
+ "name": "payload",
456
+ "null_accepted": true,
457
+ "type_name": "PKPushPayload *",
458
+ "typestr": "@",
459
+ "typestr_special": false
460
+ },
461
+ {
462
+ "name": "metadata",
463
+ "null_accepted": true,
464
+ "type_name": "PKVoIPPushMetadata *",
465
+ "typestr": "@",
466
+ "typestr_special": false
467
+ },
468
+ {
469
+ "callable": {
470
+ "arguments": {
471
+ "0": {
472
+ "type": "^v"
473
+ }
474
+ },
475
+ "retval": {
476
+ "type": "v",
477
+ "type_name": "void"
478
+ }
479
+ },
480
+ "name": "completion",
481
+ "null_accepted": true,
482
+ "type_name": "void (^)(void)",
483
+ "typestr": "@?",
484
+ "typestr_special": false
485
+ }
486
+ ],
487
+ "class_method": false,
488
+ "introduced": "26.4",
489
+ "required": false,
490
+ "retval": {
491
+ "type_name": "void",
492
+ "typestr": "v",
493
+ "typestr_special": false
494
+ },
495
+ "selector": "pushRegistry:didReceiveIncomingVoIPPushWithPayload:metadata:withCompletionHandler:",
496
+ "visibility": "public"
497
+ },
498
+ {
499
+ "args": [
500
+ {
501
+ "name": "registry",
502
+ "null_accepted": true,
503
+ "type_name": "PKPushRegistry *",
336
504
  "typestr": "@",
337
505
  "typestr_special": false
338
506
  },
339
507
  {
508
+ "name": "type",
509
+ "null_accepted": true,
510
+ "type_name": "PKPushType",
340
511
  "typestr": "@",
341
512
  "typestr_special": false
342
513
  }
@@ -344,6 +515,7 @@
344
515
  "class_method": false,
345
516
  "required": false,
346
517
  "retval": {
518
+ "type_name": "void",
347
519
  "typestr": "v",
348
520
  "typestr_special": false
349
521
  },
@@ -368,8 +540,9 @@
368
540
  "PKDefines.h",
369
541
  "PKPushCredentials.h",
370
542
  "PKPushPayload.h",
371
- "PKPushRegistry.h"
543
+ "PKPushRegistry.h",
544
+ "PKVoIPPushMetadata.h"
372
545
  ],
373
- "release": "10.16",
374
- "sdk": "/Users/ronald/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.0.sdk"
546
+ "release": "26.5",
547
+ "sdk": "/Users/ronald/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.5.sdk"
375
548
  }
@@ -87,10 +87,10 @@ class oc_egg_info(egg_info.egg_info):
87
87
 
88
88
  def write_build_info(self):
89
89
  macos_version = subprocess.check_output(
90
- ["sw_vers", "-productversion"], text=True
90
+ ["sw_vers", "-productVersion"], text=True
91
91
  ).strip()
92
92
  macos_build = subprocess.check_output(
93
- ["sw_vers", "-buildversion"], text=True
93
+ ["sw_vers", "-buildVersion"], text=True
94
94
  ).strip()
95
95
  clang_version = (
96
96
  subprocess.check_output(["clang", "--version"], text=True)
@@ -228,7 +228,6 @@ Operating System :: MacOS :: MacOS X
228
228
  Programming Language :: Python
229
229
  Programming Language :: Python :: 3
230
230
  Programming Language :: Python :: 3 :: Only
231
- Programming Language :: Python :: 3.9
232
231
  Programming Language :: Python :: 3.10
233
232
  Programming Language :: Python :: 3.11
234
233
  Programming Language :: Python :: 3.12
@@ -236,7 +235,7 @@ Programming Language :: Python :: 3.13
236
235
  Programming Language :: Python :: 3.14
237
236
  Programming Language :: Python :: 3.15
238
237
  Programming Language :: Python :: Implementation :: CPython
239
- Programming Language :: Python :: Free Threading :: 2 - Beta
238
+ Programming Language :: Python :: Free Threading :: 3 - Stable
240
239
  Programming Language :: Objective C
241
240
  Topic :: Software Development :: Libraries :: Python Modules
242
241
  Topic :: Software Development :: User Interfaces
@@ -678,7 +677,7 @@ def setup(
678
677
  zip_safe=False,
679
678
  license="MIT",
680
679
  classifiers=CLASSIFIERS,
681
- python_requires=">=3.9",
680
+ python_requires=">=3.10",
682
681
  keywords=["PyObjC"] + [p for p in k["packages"] if p not in ("PyObjCTools",)],
683
682
  options=options,
684
683
  **k,
@@ -15,7 +15,7 @@ sys.path.insert(0, os.path.dirname(__file__))
15
15
 
16
16
  from pyobjc_setup import Extension, setup # noqa: E402
17
17
 
18
- VERSION = "12.0"
18
+ VERSION = "12.2"
19
19
 
20
20
  setup(
21
21
  name="pyobjc-framework-PushKit",
@@ -1,3 +0,0 @@
1
- macOS 26.0.1 (25A362)
2
- Apple clang version 17.0.0 (clang-1700.3.19.1)
3
- SDK: macOS 26.0
@@ -1,2 +0,0 @@
1
- pyobjc-core>=12.0
2
- pyobjc-framework-Cocoa>=12.0