pyobjc-framework-ServiceManagement 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 (28) hide show
  1. {pyobjc_framework_servicemanagement-12.0 → pyobjc_framework_servicemanagement-12.2}/Lib/ServiceManagement/_metadata.py +10 -4
  2. {pyobjc_framework_servicemanagement-12.0 → pyobjc_framework_servicemanagement-12.2}/Lib/pyobjc_framework_ServiceManagement.egg-info/PKG-INFO +5 -6
  3. {pyobjc_framework_servicemanagement-12.0 → pyobjc_framework_servicemanagement-12.2}/Lib/pyobjc_framework_ServiceManagement.egg-info/SOURCES.txt +2 -2
  4. pyobjc_framework_servicemanagement-12.2/Lib/pyobjc_framework_ServiceManagement.egg-info/pyobjc-build-info.txt +3 -0
  5. pyobjc_framework_servicemanagement-12.2/Lib/pyobjc_framework_ServiceManagement.egg-info/requires.txt +2 -0
  6. {pyobjc_framework_servicemanagement-12.0 → pyobjc_framework_servicemanagement-12.2}/PKG-INFO +5 -6
  7. pyobjc_framework_servicemanagement-12.0/metadata/raw/arm64-26.0.fwinfo → pyobjc_framework_servicemanagement-12.2/metadata/raw/arm64-26.5.fwinfo +146 -19
  8. pyobjc_framework_servicemanagement-12.0/metadata/raw/x86_64-26.0.fwinfo → pyobjc_framework_servicemanagement-12.2/metadata/raw/x86_64-26.5.fwinfo +146 -19
  9. {pyobjc_framework_servicemanagement-12.0 → pyobjc_framework_servicemanagement-12.2}/pyobjc_setup.py +4 -5
  10. {pyobjc_framework_servicemanagement-12.0 → pyobjc_framework_servicemanagement-12.2}/setup.py +1 -1
  11. pyobjc_framework_servicemanagement-12.0/Lib/pyobjc_framework_ServiceManagement.egg-info/pyobjc-build-info.txt +0 -3
  12. pyobjc_framework_servicemanagement-12.0/Lib/pyobjc_framework_ServiceManagement.egg-info/requires.txt +0 -2
  13. {pyobjc_framework_servicemanagement-12.0 → pyobjc_framework_servicemanagement-12.2}/LICENSE.txt +0 -0
  14. {pyobjc_framework_servicemanagement-12.0 → pyobjc_framework_servicemanagement-12.2}/Lib/ServiceManagement/__init__.py +0 -0
  15. {pyobjc_framework_servicemanagement-12.0 → pyobjc_framework_servicemanagement-12.2}/Lib/pyobjc_framework_ServiceManagement.egg-info/dependency_links.txt +0 -0
  16. {pyobjc_framework_servicemanagement-12.0 → pyobjc_framework_servicemanagement-12.2}/Lib/pyobjc_framework_ServiceManagement.egg-info/not-zip-safe +0 -0
  17. {pyobjc_framework_servicemanagement-12.0 → pyobjc_framework_servicemanagement-12.2}/Lib/pyobjc_framework_ServiceManagement.egg-info/top_level.txt +0 -0
  18. {pyobjc_framework_servicemanagement-12.0 → pyobjc_framework_servicemanagement-12.2}/MANIFEST.in +0 -0
  19. {pyobjc_framework_servicemanagement-12.0 → pyobjc_framework_servicemanagement-12.2}/PyObjCTest/__init__.py +0 -0
  20. {pyobjc_framework_servicemanagement-12.0 → pyobjc_framework_servicemanagement-12.2}/PyObjCTest/test_servicemanagement.py +0 -0
  21. {pyobjc_framework_servicemanagement-12.0 → pyobjc_framework_servicemanagement-12.2}/PyObjCTest/test_smappservice.py +0 -0
  22. {pyobjc_framework_servicemanagement-12.0 → pyobjc_framework_servicemanagement-12.2}/PyObjCTest/test_smerrors.py +0 -0
  23. {pyobjc_framework_servicemanagement-12.0 → pyobjc_framework_servicemanagement-12.2}/PyObjCTest/test_smloginitem.py +0 -0
  24. {pyobjc_framework_servicemanagement-12.0 → pyobjc_framework_servicemanagement-12.2}/README.txt +0 -0
  25. {pyobjc_framework_servicemanagement-12.0 → pyobjc_framework_servicemanagement-12.2}/metadata/ServiceManagement.fwinfo +0 -0
  26. {pyobjc_framework_servicemanagement-12.0 → pyobjc_framework_servicemanagement-12.2}/metadata/metadata.ini +0 -0
  27. {pyobjc_framework_servicemanagement-12.0 → pyobjc_framework_servicemanagement-12.2}/pyproject.toml +0 -0
  28. {pyobjc_framework_servicemanagement-12.0 → pyobjc_framework_servicemanagement-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 22:11:54 2025
3
+ # Last update: Sun May 24 11:58:28 2026
4
4
  #
5
5
  # flake8: noqa
6
6
 
@@ -47,9 +47,9 @@ functions = {
47
47
  {
48
48
  "arguments": {
49
49
  3: {
50
+ "null_accepted": True,
50
51
  "already_cfretained": True,
51
52
  "type_modifier": "o",
52
- "null_accepted": True,
53
53
  }
54
54
  }
55
55
  },
@@ -60,9 +60,9 @@ functions = {
60
60
  {
61
61
  "arguments": {
62
62
  4: {
63
+ "null_accepted": True,
63
64
  "already_cfretained": True,
64
65
  "type_modifier": "o",
65
- "null_accepted": True,
66
66
  }
67
67
  }
68
68
  },
@@ -78,9 +78,9 @@ functions = {
78
78
  {
79
79
  "arguments": {
80
80
  3: {
81
+ "null_accepted": True,
81
82
  "already_cfretained": True,
82
83
  "type_modifier": "o",
83
- "null_accepted": True,
84
84
  }
85
85
  }
86
86
  },
@@ -121,6 +121,12 @@ try:
121
121
  )
122
122
  finally:
123
123
  objc._updatingMetadata(False)
124
+
125
+ objc.registerNewKeywords("SMAppService", ("plistName",), "agentServiceWithPlistName_")
126
+ objc.registerNewKeywords("SMAppService", ("plistName",), "daemonServiceWithPlistName_")
127
+ objc.registerNewKeywords(
128
+ "SMAppService", ("identifier",), "loginItemServiceWithIdentifier_"
129
+ )
124
130
  expressions = {}
125
131
 
126
132
  # END OF FILE
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyobjc-framework-ServiceManagement
3
- Version: 12.0
3
+ Version: 12.2
4
4
  Summary: Wrappers for the framework ServiceManagement 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,15 +24,15 @@ 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
33
  License-File: LICENSE.txt
35
- Requires-Dist: pyobjc-core>=12.0
36
- Requires-Dist: pyobjc-framework-Cocoa>=12.0
34
+ Requires-Dist: pyobjc-core>=12.2
35
+ Requires-Dist: pyobjc-framework-Cocoa>=12.2
37
36
  Dynamic: author
38
37
  Dynamic: author-email
39
38
  Dynamic: classifier
@@ -20,5 +20,5 @@ PyObjCTest/test_smerrors.py
20
20
  PyObjCTest/test_smloginitem.py
21
21
  metadata/ServiceManagement.fwinfo
22
22
  metadata/metadata.ini
23
- metadata/raw/arm64-26.0.fwinfo
24
- metadata/raw/x86_64-26.0.fwinfo
23
+ metadata/raw/arm64-26.5.fwinfo
24
+ 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
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyobjc-framework-ServiceManagement
3
- Version: 12.0
3
+ Version: 12.2
4
4
  Summary: Wrappers for the framework ServiceManagement 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,15 +24,15 @@ 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
33
  License-File: LICENSE.txt
35
- Requires-Dist: pyobjc-core>=12.0
36
- Requires-Dist: pyobjc-framework-Cocoa>=12.0
34
+ Requires-Dist: pyobjc-core>=12.2
35
+ Requires-Dist: pyobjc-framework-Cocoa>=12.2
37
36
  Dynamic: author
38
37
  Dynamic: author-email
39
38
  Dynamic: classifier
@@ -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 22:10:10 2025
4
+ // Last update: Sun May 24 11:58:28 2026
5
5
  {
6
6
  "arch": "arm64",
7
7
  "definitions": {
@@ -15,12 +15,18 @@
15
15
  {
16
16
  "args": [
17
17
  {
18
+ "name": "identifier",
19
+ "null_accepted": true,
20
+ "type_name": "NSString *",
18
21
  "typestr": "@",
19
22
  "typestr_special": false
20
23
  }
21
24
  ],
22
25
  "class_method": true,
26
+ "introduced": "13.0",
23
27
  "retval": {
28
+ "instancetype": true,
29
+ "type_name": "instancetype",
24
30
  "typestr": "@",
25
31
  "typestr_special": false
26
32
  },
@@ -30,12 +36,18 @@
30
36
  {
31
37
  "args": [
32
38
  {
39
+ "name": "plistName",
40
+ "null_accepted": true,
41
+ "type_name": "NSString *",
33
42
  "typestr": "@",
34
43
  "typestr_special": false
35
44
  }
36
45
  ],
37
46
  "class_method": true,
47
+ "introduced": "13.0",
38
48
  "retval": {
49
+ "instancetype": true,
50
+ "type_name": "instancetype",
39
51
  "typestr": "@",
40
52
  "typestr_special": false
41
53
  },
@@ -45,12 +57,18 @@
45
57
  {
46
58
  "args": [
47
59
  {
60
+ "name": "plistName",
61
+ "null_accepted": true,
62
+ "type_name": "NSString *",
48
63
  "typestr": "@",
49
64
  "typestr_special": false
50
65
  }
51
66
  ],
52
67
  "class_method": true,
68
+ "introduced": "13.0",
53
69
  "retval": {
70
+ "instancetype": true,
71
+ "type_name": "instancetype",
54
72
  "typestr": "@",
55
73
  "typestr_special": false
56
74
  },
@@ -60,13 +78,18 @@
60
78
  {
61
79
  "args": [
62
80
  {
81
+ "name": "error",
82
+ "null_accepted": true,
63
83
  "type_modifier": "o",
84
+ "type_name": "NSError * _Nullable *",
64
85
  "typestr": "^@",
65
86
  "typestr_special": false
66
87
  }
67
88
  ],
68
89
  "class_method": false,
90
+ "introduced": "13.0",
69
91
  "retval": {
92
+ "type_name": "BOOL",
70
93
  "typestr": "Z",
71
94
  "typestr_special": true
72
95
  },
@@ -76,13 +99,18 @@
76
99
  {
77
100
  "args": [
78
101
  {
102
+ "name": "error",
103
+ "null_accepted": true,
79
104
  "type_modifier": "o",
105
+ "type_name": "NSError * _Nullable *",
80
106
  "typestr": "^@",
81
107
  "typestr_special": false
82
108
  }
83
109
  ],
84
110
  "class_method": false,
111
+ "introduced": "13.0",
85
112
  "retval": {
113
+ "type_name": "BOOL",
86
114
  "typestr": "Z",
87
115
  "typestr_special": true
88
116
  },
@@ -98,19 +126,25 @@
98
126
  "type": "^v"
99
127
  },
100
128
  "1": {
101
- "type": "@"
129
+ "type": "@",
130
+ "type_name": "NSError *"
102
131
  }
103
132
  },
104
133
  "retval": {
105
134
  "type": "v"
106
135
  }
107
136
  },
137
+ "name": "handler",
138
+ "null_accepted": true,
139
+ "type_name": "void (^)(NSError * _Nullable)",
108
140
  "typestr": "@?",
109
141
  "typestr_special": false
110
142
  }
111
143
  ],
112
144
  "class_method": false,
145
+ "introduced": "13.0",
113
146
  "retval": {
147
+ "type_name": "void",
114
148
  "typestr": "v",
115
149
  "typestr_special": false
116
150
  },
@@ -120,12 +154,17 @@
120
154
  {
121
155
  "args": [
122
156
  {
157
+ "name": "url",
158
+ "null_accepted": true,
159
+ "type_name": "NSURL *",
123
160
  "typestr": "@",
124
161
  "typestr_special": false
125
162
  }
126
163
  ],
127
164
  "class_method": true,
165
+ "introduced": "13.0",
128
166
  "retval": {
167
+ "type_name": "SMAppServiceStatus",
129
168
  "typestr": "q",
130
169
  "typestr_special": false
131
170
  },
@@ -135,7 +174,9 @@
135
174
  {
136
175
  "args": [],
137
176
  "class_method": true,
177
+ "introduced": "13.0",
138
178
  "retval": {
179
+ "type_name": "void",
139
180
  "typestr": "v",
140
181
  "typestr_special": false
141
182
  },
@@ -145,7 +186,9 @@
145
186
  {
146
187
  "args": [],
147
188
  "class_method": true,
189
+ "introduced": "13.0",
148
190
  "retval": {
191
+ "type_name": "SMAppService *",
149
192
  "typestr": "@",
150
193
  "typestr_special": false
151
194
  },
@@ -155,7 +198,9 @@
155
198
  {
156
199
  "args": [],
157
200
  "class_method": false,
201
+ "introduced": "13.0",
158
202
  "retval": {
203
+ "type_name": "SMAppServiceStatus",
159
204
  "typestr": "q",
160
205
  "typestr_special": false
161
206
  },
@@ -167,9 +212,11 @@
167
212
  "properties": [
168
213
  {
169
214
  "attributes": [
215
+ "class",
170
216
  "readonly"
171
217
  ],
172
218
  "name": "mainAppService",
219
+ "type_name": "SMAppService *",
173
220
  "typestr": "@",
174
221
  "typestr_special": false
175
222
  },
@@ -178,6 +225,7 @@
178
225
  "readonly"
179
226
  ],
180
227
  "name": "status",
228
+ "type_name": "SMAppServiceStatus",
181
229
  "typestr": "q",
182
230
  "typestr_special": false
183
231
  }
@@ -187,21 +235,55 @@
187
235
  }
188
236
  },
189
237
  "enum": {
190
- "SMAppServiceStatusEnabled": 1,
191
- "SMAppServiceStatusNotFound": 3,
192
- "SMAppServiceStatusNotRegistered": 0,
193
- "SMAppServiceStatusRequiresApproval": 2,
194
- "kSMErrorAlreadyRegistered": 12,
195
- "kSMErrorAuthorizationFailure": 4,
196
- "kSMErrorInternalFailure": 2,
197
- "kSMErrorInvalidPlist": 10,
198
- "kSMErrorInvalidSignature": 3,
199
- "kSMErrorJobMustBeEnabled": 9,
200
- "kSMErrorJobNotFound": 6,
201
- "kSMErrorJobPlistNotFound": 8,
202
- "kSMErrorLaunchDeniedByUser": 11,
203
- "kSMErrorServiceUnavailable": 7,
204
- "kSMErrorToolNotValid": 5
238
+ "SMAppServiceStatusEnabled": {
239
+ "enum": "SMAppServiceStatus",
240
+ "value": 1
241
+ },
242
+ "SMAppServiceStatusNotFound": {
243
+ "enum": "SMAppServiceStatus",
244
+ "value": 3
245
+ },
246
+ "SMAppServiceStatusNotRegistered": {
247
+ "enum": "SMAppServiceStatus",
248
+ "value": 0
249
+ },
250
+ "SMAppServiceStatusRequiresApproval": {
251
+ "enum": "SMAppServiceStatus",
252
+ "value": 2
253
+ },
254
+ "kSMErrorAlreadyRegistered": {
255
+ "value": 12
256
+ },
257
+ "kSMErrorAuthorizationFailure": {
258
+ "value": 4
259
+ },
260
+ "kSMErrorInternalFailure": {
261
+ "value": 2
262
+ },
263
+ "kSMErrorInvalidPlist": {
264
+ "value": 10
265
+ },
266
+ "kSMErrorInvalidSignature": {
267
+ "value": 3
268
+ },
269
+ "kSMErrorJobMustBeEnabled": {
270
+ "value": 9
271
+ },
272
+ "kSMErrorJobNotFound": {
273
+ "value": 6
274
+ },
275
+ "kSMErrorJobPlistNotFound": {
276
+ "value": 8
277
+ },
278
+ "kSMErrorLaunchDeniedByUser": {
279
+ "value": 11
280
+ },
281
+ "kSMErrorServiceUnavailable": {
282
+ "value": 7
283
+ },
284
+ "kSMErrorToolNotValid": {
285
+ "value": 5
286
+ }
205
287
  },
206
288
  "enum_type": {
207
289
  "SMAppServiceStatus": {
@@ -211,21 +293,36 @@
211
293
  "expressions": {},
212
294
  "externs": {
213
295
  "SMAppServiceErrorDomain": {
296
+ "introduced": "15.0",
297
+ "type_name": "NSString *const",
214
298
  "typestr": "@"
215
299
  },
216
300
  "kSMDomainSystemLaunchd": {
301
+ "introduced": "10.6",
302
+ "type_name": "const CFStringRef",
217
303
  "typestr": "^{__CFString=}"
218
304
  },
219
305
  "kSMDomainUserLaunchd": {
306
+ "introduced": "10.6",
307
+ "type_name": "const CFStringRef",
220
308
  "typestr": "^{__CFString=}"
221
309
  },
222
310
  "kSMErrorDomainFramework": {
311
+ "deprecated": "10.10",
312
+ "introduced": "10.6",
313
+ "type_name": "const CFStringRef",
223
314
  "typestr": "^{__CFString=}"
224
315
  },
225
316
  "kSMErrorDomainIPC": {
317
+ "deprecated": "10.10",
318
+ "introduced": "10.6",
319
+ "type_name": "const CFStringRef",
226
320
  "typestr": "^{__CFString=}"
227
321
  },
228
322
  "kSMErrorDomainLaunchd": {
323
+ "deprecated": "10.10",
324
+ "introduced": "10.6",
325
+ "type_name": "const CFStringRef",
229
326
  "typestr": "^{__CFString=}"
230
327
  }
231
328
  },
@@ -236,9 +333,12 @@
236
333
  "args": [
237
334
  {
238
335
  "name": "domain",
336
+ "type_name": "CFStringRef",
239
337
  "typestr": "^{__CFString=}"
240
338
  }
241
339
  ],
340
+ "deprecated": "10.10",
341
+ "introduced": "10.6",
242
342
  "retval": {
243
343
  "already_cfretained": true,
244
344
  "typestr": "^{__CFArray=}"
@@ -248,14 +348,17 @@
248
348
  "args": [
249
349
  {
250
350
  "name": "domain",
351
+ "type_name": "CFStringRef",
251
352
  "typestr": "^{__CFString=}"
252
353
  },
253
354
  {
254
355
  "name": "executableLabel",
356
+ "type_name": "CFStringRef",
255
357
  "typestr": "^{__CFString=}"
256
358
  },
257
359
  {
258
360
  "name": "auth",
361
+ "type_name": "AuthorizationRef",
259
362
  "typestr": "^{AuthorizationOpaqueRef=}"
260
363
  },
261
364
  {
@@ -263,9 +366,12 @@
263
366
  "name": "outError",
264
367
  "null_accepted": true,
265
368
  "type_modifier": "o",
369
+ "type_name": "CFErrorRef *",
266
370
  "typestr": "^^{__CFError=}"
267
371
  }
268
372
  ],
373
+ "deprecated": "13.0",
374
+ "introduced": "10.6",
269
375
  "retval": {
270
376
  "typestr": "Z"
271
377
  }
@@ -274,13 +380,17 @@
274
380
  "args": [
275
381
  {
276
382
  "name": "domain",
383
+ "type_name": "CFStringRef",
277
384
  "typestr": "^{__CFString=}"
278
385
  },
279
386
  {
280
387
  "name": "jobLabel",
388
+ "type_name": "CFStringRef",
281
389
  "typestr": "^{__CFString=}"
282
390
  }
283
391
  ],
392
+ "deprecated": "10.10",
393
+ "introduced": "10.6",
284
394
  "retval": {
285
395
  "already_cfretained": true,
286
396
  "typestr": "^{__CFDictionary=}"
@@ -290,18 +400,22 @@
290
400
  "args": [
291
401
  {
292
402
  "name": "domain",
403
+ "type_name": "CFStringRef",
293
404
  "typestr": "^{__CFString=}"
294
405
  },
295
406
  {
296
407
  "name": "jobLabel",
408
+ "type_name": "CFStringRef",
297
409
  "typestr": "^{__CFString=}"
298
410
  },
299
411
  {
300
412
  "name": "auth",
413
+ "type_name": "AuthorizationRef",
301
414
  "typestr": "^{AuthorizationOpaqueRef=}"
302
415
  },
303
416
  {
304
417
  "name": "wait",
418
+ "type_name": "Boolean",
305
419
  "typestr": "Z"
306
420
  },
307
421
  {
@@ -309,9 +423,12 @@
309
423
  "name": "outError",
310
424
  "null_accepted": true,
311
425
  "type_modifier": "o",
426
+ "type_name": "CFErrorRef *",
312
427
  "typestr": "^^{__CFError=}"
313
428
  }
314
429
  ],
430
+ "deprecated": "10.10",
431
+ "introduced": "10.6",
315
432
  "retval": {
316
433
  "typestr": "Z"
317
434
  }
@@ -320,14 +437,17 @@
320
437
  "args": [
321
438
  {
322
439
  "name": "domain",
440
+ "type_name": "CFStringRef",
323
441
  "typestr": "^{__CFString=}"
324
442
  },
325
443
  {
326
444
  "name": "job",
445
+ "type_name": "CFDictionaryRef",
327
446
  "typestr": "^{__CFDictionary=}"
328
447
  },
329
448
  {
330
449
  "name": "auth",
450
+ "type_name": "AuthorizationRef",
331
451
  "typestr": "^{AuthorizationOpaqueRef=}"
332
452
  },
333
453
  {
@@ -335,9 +455,12 @@
335
455
  "name": "outError",
336
456
  "null_accepted": true,
337
457
  "type_modifier": "o",
458
+ "type_name": "CFErrorRef *",
338
459
  "typestr": "^^{__CFError=}"
339
460
  }
340
461
  ],
462
+ "deprecated": "10.10",
463
+ "introduced": "10.6",
341
464
  "retval": {
342
465
  "typestr": "Z"
343
466
  }
@@ -346,13 +469,17 @@
346
469
  "args": [
347
470
  {
348
471
  "name": "identifier",
472
+ "type_name": "CFStringRef",
349
473
  "typestr": "^{__CFString=}"
350
474
  },
351
475
  {
352
476
  "name": "enabled",
477
+ "type_name": "Boolean",
353
478
  "typestr": "Z"
354
479
  }
355
480
  ],
481
+ "deprecated": "13.0",
482
+ "introduced": "10.6",
356
483
  "retval": {
357
484
  "typestr": "Z"
358
485
  }
@@ -380,6 +507,6 @@
380
507
  "SMErrors.h",
381
508
  "SMLoginItem.h"
382
509
  ],
383
- "release": "10.16",
384
- "sdk": "/Users/ronald/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.0.sdk"
510
+ "release": "26.5",
511
+ "sdk": "/Users/ronald/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.5.sdk"
385
512
  }
@@ -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 22:10:08 2025
4
+ // Last update: Sun May 24 11:58:26 2026
5
5
  {
6
6
  "arch": "x86_64",
7
7
  "definitions": {
@@ -15,12 +15,18 @@
15
15
  {
16
16
  "args": [
17
17
  {
18
+ "name": "identifier",
19
+ "null_accepted": true,
20
+ "type_name": "NSString *",
18
21
  "typestr": "@",
19
22
  "typestr_special": false
20
23
  }
21
24
  ],
22
25
  "class_method": true,
26
+ "introduced": "13.0",
23
27
  "retval": {
28
+ "instancetype": true,
29
+ "type_name": "instancetype",
24
30
  "typestr": "@",
25
31
  "typestr_special": false
26
32
  },
@@ -30,12 +36,18 @@
30
36
  {
31
37
  "args": [
32
38
  {
39
+ "name": "plistName",
40
+ "null_accepted": true,
41
+ "type_name": "NSString *",
33
42
  "typestr": "@",
34
43
  "typestr_special": false
35
44
  }
36
45
  ],
37
46
  "class_method": true,
47
+ "introduced": "13.0",
38
48
  "retval": {
49
+ "instancetype": true,
50
+ "type_name": "instancetype",
39
51
  "typestr": "@",
40
52
  "typestr_special": false
41
53
  },
@@ -45,12 +57,18 @@
45
57
  {
46
58
  "args": [
47
59
  {
60
+ "name": "plistName",
61
+ "null_accepted": true,
62
+ "type_name": "NSString *",
48
63
  "typestr": "@",
49
64
  "typestr_special": false
50
65
  }
51
66
  ],
52
67
  "class_method": true,
68
+ "introduced": "13.0",
53
69
  "retval": {
70
+ "instancetype": true,
71
+ "type_name": "instancetype",
54
72
  "typestr": "@",
55
73
  "typestr_special": false
56
74
  },
@@ -60,13 +78,18 @@
60
78
  {
61
79
  "args": [
62
80
  {
81
+ "name": "error",
82
+ "null_accepted": true,
63
83
  "type_modifier": "o",
84
+ "type_name": "NSError * _Nullable *",
64
85
  "typestr": "^@",
65
86
  "typestr_special": false
66
87
  }
67
88
  ],
68
89
  "class_method": false,
90
+ "introduced": "13.0",
69
91
  "retval": {
92
+ "type_name": "BOOL",
70
93
  "typestr": "Z",
71
94
  "typestr_special": true
72
95
  },
@@ -76,13 +99,18 @@
76
99
  {
77
100
  "args": [
78
101
  {
102
+ "name": "error",
103
+ "null_accepted": true,
79
104
  "type_modifier": "o",
105
+ "type_name": "NSError * _Nullable *",
80
106
  "typestr": "^@",
81
107
  "typestr_special": false
82
108
  }
83
109
  ],
84
110
  "class_method": false,
111
+ "introduced": "13.0",
85
112
  "retval": {
113
+ "type_name": "BOOL",
86
114
  "typestr": "Z",
87
115
  "typestr_special": true
88
116
  },
@@ -98,19 +126,25 @@
98
126
  "type": "^v"
99
127
  },
100
128
  "1": {
101
- "type": "@"
129
+ "type": "@",
130
+ "type_name": "NSError *"
102
131
  }
103
132
  },
104
133
  "retval": {
105
134
  "type": "v"
106
135
  }
107
136
  },
137
+ "name": "handler",
138
+ "null_accepted": true,
139
+ "type_name": "void (^)(NSError * _Nullable)",
108
140
  "typestr": "@?",
109
141
  "typestr_special": false
110
142
  }
111
143
  ],
112
144
  "class_method": false,
145
+ "introduced": "13.0",
113
146
  "retval": {
147
+ "type_name": "void",
114
148
  "typestr": "v",
115
149
  "typestr_special": false
116
150
  },
@@ -120,12 +154,17 @@
120
154
  {
121
155
  "args": [
122
156
  {
157
+ "name": "url",
158
+ "null_accepted": true,
159
+ "type_name": "NSURL *",
123
160
  "typestr": "@",
124
161
  "typestr_special": false
125
162
  }
126
163
  ],
127
164
  "class_method": true,
165
+ "introduced": "13.0",
128
166
  "retval": {
167
+ "type_name": "SMAppServiceStatus",
129
168
  "typestr": "q",
130
169
  "typestr_special": false
131
170
  },
@@ -135,7 +174,9 @@
135
174
  {
136
175
  "args": [],
137
176
  "class_method": true,
177
+ "introduced": "13.0",
138
178
  "retval": {
179
+ "type_name": "void",
139
180
  "typestr": "v",
140
181
  "typestr_special": false
141
182
  },
@@ -145,7 +186,9 @@
145
186
  {
146
187
  "args": [],
147
188
  "class_method": true,
189
+ "introduced": "13.0",
148
190
  "retval": {
191
+ "type_name": "SMAppService *",
149
192
  "typestr": "@",
150
193
  "typestr_special": false
151
194
  },
@@ -155,7 +198,9 @@
155
198
  {
156
199
  "args": [],
157
200
  "class_method": false,
201
+ "introduced": "13.0",
158
202
  "retval": {
203
+ "type_name": "SMAppServiceStatus",
159
204
  "typestr": "q",
160
205
  "typestr_special": false
161
206
  },
@@ -167,9 +212,11 @@
167
212
  "properties": [
168
213
  {
169
214
  "attributes": [
215
+ "class",
170
216
  "readonly"
171
217
  ],
172
218
  "name": "mainAppService",
219
+ "type_name": "SMAppService *",
173
220
  "typestr": "@",
174
221
  "typestr_special": false
175
222
  },
@@ -178,6 +225,7 @@
178
225
  "readonly"
179
226
  ],
180
227
  "name": "status",
228
+ "type_name": "SMAppServiceStatus",
181
229
  "typestr": "q",
182
230
  "typestr_special": false
183
231
  }
@@ -187,21 +235,55 @@
187
235
  }
188
236
  },
189
237
  "enum": {
190
- "SMAppServiceStatusEnabled": 1,
191
- "SMAppServiceStatusNotFound": 3,
192
- "SMAppServiceStatusNotRegistered": 0,
193
- "SMAppServiceStatusRequiresApproval": 2,
194
- "kSMErrorAlreadyRegistered": 12,
195
- "kSMErrorAuthorizationFailure": 4,
196
- "kSMErrorInternalFailure": 2,
197
- "kSMErrorInvalidPlist": 10,
198
- "kSMErrorInvalidSignature": 3,
199
- "kSMErrorJobMustBeEnabled": 9,
200
- "kSMErrorJobNotFound": 6,
201
- "kSMErrorJobPlistNotFound": 8,
202
- "kSMErrorLaunchDeniedByUser": 11,
203
- "kSMErrorServiceUnavailable": 7,
204
- "kSMErrorToolNotValid": 5
238
+ "SMAppServiceStatusEnabled": {
239
+ "enum": "SMAppServiceStatus",
240
+ "value": 1
241
+ },
242
+ "SMAppServiceStatusNotFound": {
243
+ "enum": "SMAppServiceStatus",
244
+ "value": 3
245
+ },
246
+ "SMAppServiceStatusNotRegistered": {
247
+ "enum": "SMAppServiceStatus",
248
+ "value": 0
249
+ },
250
+ "SMAppServiceStatusRequiresApproval": {
251
+ "enum": "SMAppServiceStatus",
252
+ "value": 2
253
+ },
254
+ "kSMErrorAlreadyRegistered": {
255
+ "value": 12
256
+ },
257
+ "kSMErrorAuthorizationFailure": {
258
+ "value": 4
259
+ },
260
+ "kSMErrorInternalFailure": {
261
+ "value": 2
262
+ },
263
+ "kSMErrorInvalidPlist": {
264
+ "value": 10
265
+ },
266
+ "kSMErrorInvalidSignature": {
267
+ "value": 3
268
+ },
269
+ "kSMErrorJobMustBeEnabled": {
270
+ "value": 9
271
+ },
272
+ "kSMErrorJobNotFound": {
273
+ "value": 6
274
+ },
275
+ "kSMErrorJobPlistNotFound": {
276
+ "value": 8
277
+ },
278
+ "kSMErrorLaunchDeniedByUser": {
279
+ "value": 11
280
+ },
281
+ "kSMErrorServiceUnavailable": {
282
+ "value": 7
283
+ },
284
+ "kSMErrorToolNotValid": {
285
+ "value": 5
286
+ }
205
287
  },
206
288
  "enum_type": {
207
289
  "SMAppServiceStatus": {
@@ -211,21 +293,36 @@
211
293
  "expressions": {},
212
294
  "externs": {
213
295
  "SMAppServiceErrorDomain": {
296
+ "introduced": "15.0",
297
+ "type_name": "NSString *const",
214
298
  "typestr": "@"
215
299
  },
216
300
  "kSMDomainSystemLaunchd": {
301
+ "introduced": "10.6",
302
+ "type_name": "const CFStringRef",
217
303
  "typestr": "^{__CFString=}"
218
304
  },
219
305
  "kSMDomainUserLaunchd": {
306
+ "introduced": "10.6",
307
+ "type_name": "const CFStringRef",
220
308
  "typestr": "^{__CFString=}"
221
309
  },
222
310
  "kSMErrorDomainFramework": {
311
+ "deprecated": "10.10",
312
+ "introduced": "10.6",
313
+ "type_name": "const CFStringRef",
223
314
  "typestr": "^{__CFString=}"
224
315
  },
225
316
  "kSMErrorDomainIPC": {
317
+ "deprecated": "10.10",
318
+ "introduced": "10.6",
319
+ "type_name": "const CFStringRef",
226
320
  "typestr": "^{__CFString=}"
227
321
  },
228
322
  "kSMErrorDomainLaunchd": {
323
+ "deprecated": "10.10",
324
+ "introduced": "10.6",
325
+ "type_name": "const CFStringRef",
229
326
  "typestr": "^{__CFString=}"
230
327
  }
231
328
  },
@@ -236,9 +333,12 @@
236
333
  "args": [
237
334
  {
238
335
  "name": "domain",
336
+ "type_name": "CFStringRef",
239
337
  "typestr": "^{__CFString=}"
240
338
  }
241
339
  ],
340
+ "deprecated": "10.10",
341
+ "introduced": "10.6",
242
342
  "retval": {
243
343
  "already_cfretained": true,
244
344
  "typestr": "^{__CFArray=}"
@@ -248,14 +348,17 @@
248
348
  "args": [
249
349
  {
250
350
  "name": "domain",
351
+ "type_name": "CFStringRef",
251
352
  "typestr": "^{__CFString=}"
252
353
  },
253
354
  {
254
355
  "name": "executableLabel",
356
+ "type_name": "CFStringRef",
255
357
  "typestr": "^{__CFString=}"
256
358
  },
257
359
  {
258
360
  "name": "auth",
361
+ "type_name": "AuthorizationRef",
259
362
  "typestr": "^{AuthorizationOpaqueRef=}"
260
363
  },
261
364
  {
@@ -263,9 +366,12 @@
263
366
  "name": "outError",
264
367
  "null_accepted": true,
265
368
  "type_modifier": "o",
369
+ "type_name": "CFErrorRef *",
266
370
  "typestr": "^^{__CFError=}"
267
371
  }
268
372
  ],
373
+ "deprecated": "13.0",
374
+ "introduced": "10.6",
269
375
  "retval": {
270
376
  "typestr": "Z"
271
377
  }
@@ -274,13 +380,17 @@
274
380
  "args": [
275
381
  {
276
382
  "name": "domain",
383
+ "type_name": "CFStringRef",
277
384
  "typestr": "^{__CFString=}"
278
385
  },
279
386
  {
280
387
  "name": "jobLabel",
388
+ "type_name": "CFStringRef",
281
389
  "typestr": "^{__CFString=}"
282
390
  }
283
391
  ],
392
+ "deprecated": "10.10",
393
+ "introduced": "10.6",
284
394
  "retval": {
285
395
  "already_cfretained": true,
286
396
  "typestr": "^{__CFDictionary=}"
@@ -290,18 +400,22 @@
290
400
  "args": [
291
401
  {
292
402
  "name": "domain",
403
+ "type_name": "CFStringRef",
293
404
  "typestr": "^{__CFString=}"
294
405
  },
295
406
  {
296
407
  "name": "jobLabel",
408
+ "type_name": "CFStringRef",
297
409
  "typestr": "^{__CFString=}"
298
410
  },
299
411
  {
300
412
  "name": "auth",
413
+ "type_name": "AuthorizationRef",
301
414
  "typestr": "^{AuthorizationOpaqueRef=}"
302
415
  },
303
416
  {
304
417
  "name": "wait",
418
+ "type_name": "Boolean",
305
419
  "typestr": "Z"
306
420
  },
307
421
  {
@@ -309,9 +423,12 @@
309
423
  "name": "outError",
310
424
  "null_accepted": true,
311
425
  "type_modifier": "o",
426
+ "type_name": "CFErrorRef *",
312
427
  "typestr": "^^{__CFError=}"
313
428
  }
314
429
  ],
430
+ "deprecated": "10.10",
431
+ "introduced": "10.6",
315
432
  "retval": {
316
433
  "typestr": "Z"
317
434
  }
@@ -320,14 +437,17 @@
320
437
  "args": [
321
438
  {
322
439
  "name": "domain",
440
+ "type_name": "CFStringRef",
323
441
  "typestr": "^{__CFString=}"
324
442
  },
325
443
  {
326
444
  "name": "job",
445
+ "type_name": "CFDictionaryRef",
327
446
  "typestr": "^{__CFDictionary=}"
328
447
  },
329
448
  {
330
449
  "name": "auth",
450
+ "type_name": "AuthorizationRef",
331
451
  "typestr": "^{AuthorizationOpaqueRef=}"
332
452
  },
333
453
  {
@@ -335,9 +455,12 @@
335
455
  "name": "outError",
336
456
  "null_accepted": true,
337
457
  "type_modifier": "o",
458
+ "type_name": "CFErrorRef *",
338
459
  "typestr": "^^{__CFError=}"
339
460
  }
340
461
  ],
462
+ "deprecated": "10.10",
463
+ "introduced": "10.6",
341
464
  "retval": {
342
465
  "typestr": "Z"
343
466
  }
@@ -346,13 +469,17 @@
346
469
  "args": [
347
470
  {
348
471
  "name": "identifier",
472
+ "type_name": "CFStringRef",
349
473
  "typestr": "^{__CFString=}"
350
474
  },
351
475
  {
352
476
  "name": "enabled",
477
+ "type_name": "Boolean",
353
478
  "typestr": "Z"
354
479
  }
355
480
  ],
481
+ "deprecated": "13.0",
482
+ "introduced": "10.6",
356
483
  "retval": {
357
484
  "typestr": "Z"
358
485
  }
@@ -380,6 +507,6 @@
380
507
  "SMErrors.h",
381
508
  "SMLoginItem.h"
382
509
  ],
383
- "release": "10.16",
384
- "sdk": "/Users/ronald/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.0.sdk"
510
+ "release": "26.5",
511
+ "sdk": "/Users/ronald/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.5.sdk"
385
512
  }
@@ -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,
@@ -17,7 +17,7 @@ sys.path.insert(0, os.path.dirname(__file__))
17
17
 
18
18
  from pyobjc_setup import setup # noqa: E402
19
19
 
20
- VERSION = "12.0"
20
+ VERSION = "12.2"
21
21
 
22
22
  setup(
23
23
  name="pyobjc-framework-ServiceManagement",
@@ -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