pyobjc-framework-SecurityFoundation 10.2__tar.gz → 11.0__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-SecurityFoundation-10.2 → pyobjc_framework_securityfoundation-11.0}/Lib/SecurityFoundation/_metadata.py +5 -1
  2. {pyobjc-framework-SecurityFoundation-10.2 → pyobjc_framework_securityfoundation-11.0}/Lib/pyobjc_framework_SecurityFoundation.egg-info/PKG-INFO +6 -6
  3. {pyobjc-framework-SecurityFoundation-10.2 → pyobjc_framework_securityfoundation-11.0}/Lib/pyobjc_framework_SecurityFoundation.egg-info/SOURCES.txt +5 -4
  4. pyobjc_framework_securityfoundation-11.0/Lib/pyobjc_framework_SecurityFoundation.egg-info/pyobjc-build-info.txt +3 -0
  5. pyobjc_framework_securityfoundation-11.0/Lib/pyobjc_framework_SecurityFoundation.egg-info/requires.txt +3 -0
  6. {pyobjc-framework-SecurityFoundation-10.2 → pyobjc_framework_securityfoundation-11.0}/PKG-INFO +6 -6
  7. pyobjc_framework_securityfoundation-11.0/metadata/raw/arm64-14.5.fwinfo +231 -0
  8. pyobjc-framework-SecurityFoundation-10.2/metadata/raw/arm64-14.0.fwinfo → pyobjc_framework_securityfoundation-11.0/metadata/raw/arm64-15.0.fwinfo +2 -2
  9. pyobjc_framework_securityfoundation-11.0/metadata/raw/x86_64-14.5.fwinfo +231 -0
  10. pyobjc-framework-SecurityFoundation-10.2/metadata/raw/x86_64-14.0.fwinfo → pyobjc_framework_securityfoundation-11.0/metadata/raw/x86_64-15.0.fwinfo +2 -2
  11. {pyobjc-framework-SecurityFoundation-10.2 → pyobjc_framework_securityfoundation-11.0}/pyobjc_setup.py +121 -27
  12. {pyobjc-framework-SecurityFoundation-10.2 → pyobjc_framework_securityfoundation-11.0}/setup.py +1 -1
  13. pyobjc-framework-SecurityFoundation-10.2/Lib/pyobjc_framework_SecurityFoundation.egg-info/requires.txt +0 -3
  14. pyobjc-framework-SecurityFoundation-10.2/metadata/raw/arm64-12.0.fwinfo +0 -28
  15. pyobjc-framework-SecurityFoundation-10.2/metadata/raw/x86_64-12.0.fwinfo +0 -28
  16. {pyobjc-framework-SecurityFoundation-10.2 → pyobjc_framework_securityfoundation-11.0}/Lib/SecurityFoundation/__init__.py +0 -0
  17. {pyobjc-framework-SecurityFoundation-10.2 → pyobjc_framework_securityfoundation-11.0}/Lib/pyobjc_framework_SecurityFoundation.egg-info/dependency_links.txt +0 -0
  18. {pyobjc-framework-SecurityFoundation-10.2 → pyobjc_framework_securityfoundation-11.0}/Lib/pyobjc_framework_SecurityFoundation.egg-info/not-zip-safe +0 -0
  19. {pyobjc-framework-SecurityFoundation-10.2 → pyobjc_framework_securityfoundation-11.0}/Lib/pyobjc_framework_SecurityFoundation.egg-info/top_level.txt +0 -0
  20. {pyobjc-framework-SecurityFoundation-10.2 → pyobjc_framework_securityfoundation-11.0}/License.txt +0 -0
  21. {pyobjc-framework-SecurityFoundation-10.2 → pyobjc_framework_securityfoundation-11.0}/MANIFEST.in +0 -0
  22. {pyobjc-framework-SecurityFoundation-10.2 → pyobjc_framework_securityfoundation-11.0}/PyObjCTest/__init__.py +0 -0
  23. {pyobjc-framework-SecurityFoundation-10.2 → pyobjc_framework_securityfoundation-11.0}/PyObjCTest/test_securityfoundation.py +0 -0
  24. {pyobjc-framework-SecurityFoundation-10.2 → pyobjc_framework_securityfoundation-11.0}/PyObjCTest/test_sfauthorization.py +0 -0
  25. {pyobjc-framework-SecurityFoundation-10.2 → pyobjc_framework_securityfoundation-11.0}/metadata/SecurityFoundation.fwinfo +0 -0
  26. {pyobjc-framework-SecurityFoundation-10.2 → pyobjc_framework_securityfoundation-11.0}/metadata/metadata.ini +0 -0
  27. {pyobjc-framework-SecurityFoundation-10.2 → pyobjc_framework_securityfoundation-11.0}/metadata/raw/arm64-12.3.fwinfo +0 -0
  28. {pyobjc-framework-SecurityFoundation-10.2 → pyobjc_framework_securityfoundation-11.0}/metadata/raw/x86_64-10.13.fwinfo +0 -0
  29. {pyobjc-framework-SecurityFoundation-10.2 → pyobjc_framework_securityfoundation-11.0}/metadata/raw/x86_64-10.16.fwinfo +0 -0
  30. {pyobjc-framework-SecurityFoundation-10.2 → pyobjc_framework_securityfoundation-11.0}/metadata/raw/x86_64-12.3.fwinfo +0 -0
  31. {pyobjc-framework-SecurityFoundation-10.2 → pyobjc_framework_securityfoundation-11.0}/pyproject.toml +0 -0
  32. {pyobjc-framework-SecurityFoundation-10.2 → pyobjc_framework_securityfoundation-11.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  # This file is generated by objective.metadata
2
2
  #
3
- # Last update: Sat Jul 1 14:09:47 2023
3
+ # Last update: Tue Jun 11 10:19:45 2024
4
4
  #
5
5
  # flake8: noqa
6
6
 
@@ -100,6 +100,10 @@ try:
100
100
  )
101
101
  finally:
102
102
  objc._updatingMetadata(False)
103
+
104
+ objc.registerNewKeywordsFromSelector(
105
+ "SFAuthorization", b"initWithFlags:rights:environment:"
106
+ )
103
107
  expressions = {}
104
108
 
105
109
  # END OF FILE
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyobjc-framework-SecurityFoundation
3
- Version: 10.2
3
+ Version: 11.0
4
4
  Summary: Wrappers for the framework SecurityFoundation on macOS
5
5
  Home-page: https://github.com/ronaldoussoren/pyobjc
6
6
  Author: Ronald Oussoren
@@ -18,21 +18,21 @@ Classifier: Operating System :: MacOS :: MacOS X
18
18
  Classifier: Programming Language :: Python
19
19
  Classifier: Programming Language :: Python :: 3
20
20
  Classifier: Programming Language :: Python :: 3 :: Only
21
- Classifier: Programming Language :: Python :: 3.8
22
21
  Classifier: Programming Language :: Python :: 3.9
23
22
  Classifier: Programming Language :: Python :: 3.10
24
23
  Classifier: Programming Language :: Python :: 3.11
25
24
  Classifier: Programming Language :: Python :: 3.12
26
25
  Classifier: Programming Language :: Python :: 3.13
26
+ Classifier: Programming Language :: Python :: 3.14
27
27
  Classifier: Programming Language :: Python :: Implementation :: CPython
28
28
  Classifier: Programming Language :: Objective C
29
29
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
30
30
  Classifier: Topic :: Software Development :: User Interfaces
31
- Requires-Python: >=3.8
31
+ Requires-Python: >=3.9
32
32
  Description-Content-Type: text/x-rst; charset=UTF-8
33
- Requires-Dist: pyobjc-core>=10.2
34
- Requires-Dist: pyobjc-framework-Cocoa>=10.2
35
- Requires-Dist: pyobjc-framework-Security>=10.2
33
+ Requires-Dist: pyobjc-core>=11.0
34
+ Requires-Dist: pyobjc-framework-Cocoa>=11.0
35
+ Requires-Dist: pyobjc-framework-Security>=11.0
36
36
  Project-URL: Documentation, https://pyobjc.readthedocs.io/en/latest/
37
37
  Project-URL: Issue tracker, https://github.com/ronaldoussoren/pyobjc/issues
38
38
  Project-URL: Repository, https://github.com/ronaldoussoren/pyobjc
@@ -9,6 +9,7 @@ Lib/pyobjc_framework_SecurityFoundation.egg-info/PKG-INFO
9
9
  Lib/pyobjc_framework_SecurityFoundation.egg-info/SOURCES.txt
10
10
  Lib/pyobjc_framework_SecurityFoundation.egg-info/dependency_links.txt
11
11
  Lib/pyobjc_framework_SecurityFoundation.egg-info/not-zip-safe
12
+ Lib/pyobjc_framework_SecurityFoundation.egg-info/pyobjc-build-info.txt
12
13
  Lib/pyobjc_framework_SecurityFoundation.egg-info/requires.txt
13
14
  Lib/pyobjc_framework_SecurityFoundation.egg-info/top_level.txt
14
15
  PyObjCTest/__init__.py
@@ -16,11 +17,11 @@ PyObjCTest/test_securityfoundation.py
16
17
  PyObjCTest/test_sfauthorization.py
17
18
  metadata/SecurityFoundation.fwinfo
18
19
  metadata/metadata.ini
19
- metadata/raw/arm64-12.0.fwinfo
20
20
  metadata/raw/arm64-12.3.fwinfo
21
- metadata/raw/arm64-14.0.fwinfo
21
+ metadata/raw/arm64-14.5.fwinfo
22
+ metadata/raw/arm64-15.0.fwinfo
22
23
  metadata/raw/x86_64-10.13.fwinfo
23
24
  metadata/raw/x86_64-10.16.fwinfo
24
- metadata/raw/x86_64-12.0.fwinfo
25
25
  metadata/raw/x86_64-12.3.fwinfo
26
- metadata/raw/x86_64-14.0.fwinfo
26
+ metadata/raw/x86_64-14.5.fwinfo
27
+ metadata/raw/x86_64-15.0.fwinfo
@@ -0,0 +1,3 @@
1
+ macOS 15.3 (24D5040f)
2
+ Apple clang version 16.0.0 (clang-1600.0.26.6)
3
+ SDK: macOS 15.2
@@ -0,0 +1,3 @@
1
+ pyobjc-core>=11.0
2
+ pyobjc-framework-Cocoa>=11.0
3
+ pyobjc-framework-Security>=11.0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyobjc-framework-SecurityFoundation
3
- Version: 10.2
3
+ Version: 11.0
4
4
  Summary: Wrappers for the framework SecurityFoundation on macOS
5
5
  Home-page: https://github.com/ronaldoussoren/pyobjc
6
6
  Author: Ronald Oussoren
@@ -18,21 +18,21 @@ Classifier: Operating System :: MacOS :: MacOS X
18
18
  Classifier: Programming Language :: Python
19
19
  Classifier: Programming Language :: Python :: 3
20
20
  Classifier: Programming Language :: Python :: 3 :: Only
21
- Classifier: Programming Language :: Python :: 3.8
22
21
  Classifier: Programming Language :: Python :: 3.9
23
22
  Classifier: Programming Language :: Python :: 3.10
24
23
  Classifier: Programming Language :: Python :: 3.11
25
24
  Classifier: Programming Language :: Python :: 3.12
26
25
  Classifier: Programming Language :: Python :: 3.13
26
+ Classifier: Programming Language :: Python :: 3.14
27
27
  Classifier: Programming Language :: Python :: Implementation :: CPython
28
28
  Classifier: Programming Language :: Objective C
29
29
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
30
30
  Classifier: Topic :: Software Development :: User Interfaces
31
- Requires-Python: >=3.8
31
+ Requires-Python: >=3.9
32
32
  Description-Content-Type: text/x-rst; charset=UTF-8
33
- Requires-Dist: pyobjc-core>=10.2
34
- Requires-Dist: pyobjc-framework-Cocoa>=10.2
35
- Requires-Dist: pyobjc-framework-Security>=10.2
33
+ Requires-Dist: pyobjc-core>=11.0
34
+ Requires-Dist: pyobjc-framework-Cocoa>=11.0
35
+ Requires-Dist: pyobjc-framework-Security>=11.0
36
36
 
37
37
 
38
38
  Wrappers for the "SecurityFoundation" framework on macOS.
@@ -0,0 +1,231 @@
1
+ // GENERATED FILE DO NOT EDIT
2
+ //
3
+ // This file was generated by objective.metadata
4
+ // Last update: Sat May 18 09:36:35 2024
5
+ {
6
+ "arch": "arm64",
7
+ "definitions": {
8
+ "aliases": {},
9
+ "called_definitions": {},
10
+ "cftypes": {},
11
+ "classes": {
12
+ "SFAuthorization": {
13
+ "categories": [],
14
+ "methods": [
15
+ {
16
+ "args": [],
17
+ "class_method": true,
18
+ "retval": {
19
+ "typestr": "@",
20
+ "typestr_special": false
21
+ },
22
+ "selector": "authorization",
23
+ "visibility": "public"
24
+ },
25
+ {
26
+ "args": [],
27
+ "class_method": false,
28
+ "retval": {
29
+ "typestr": "^{AuthorizationOpaqueRef=}",
30
+ "typestr_special": false
31
+ },
32
+ "selector": "authorizationRef",
33
+ "visibility": "public"
34
+ },
35
+ {
36
+ "args": [
37
+ {
38
+ "typestr": "I",
39
+ "typestr_special": false
40
+ },
41
+ {
42
+ "typestr": "^{AuthorizationItemSet=I^{AuthorizationItem=^cQ^vI}}",
43
+ "typestr_special": false
44
+ },
45
+ {
46
+ "typestr": "^{AuthorizationItemSet=I^{AuthorizationItem=^cQ^vI}}",
47
+ "typestr_special": false
48
+ }
49
+ ],
50
+ "class_method": true,
51
+ "retval": {
52
+ "typestr": "@",
53
+ "typestr_special": false
54
+ },
55
+ "selector": "authorizationWithFlags:rights:environment:",
56
+ "visibility": "public"
57
+ },
58
+ {
59
+ "args": [
60
+ {
61
+ "typestr": "I",
62
+ "typestr_special": false
63
+ },
64
+ {
65
+ "typestr": "^{AuthorizationItemSet=I^{AuthorizationItem=^cQ^vI}}",
66
+ "typestr_special": false
67
+ },
68
+ {
69
+ "typestr": "^{AuthorizationItemSet=I^{AuthorizationItem=^cQ^vI}}",
70
+ "typestr_special": false
71
+ }
72
+ ],
73
+ "class_method": false,
74
+ "retval": {
75
+ "typestr": "@",
76
+ "typestr_special": false
77
+ },
78
+ "selector": "initWithFlags:rights:environment:",
79
+ "visibility": "public"
80
+ },
81
+ {
82
+ "args": [],
83
+ "class_method": false,
84
+ "retval": {
85
+ "typestr": "@",
86
+ "typestr_special": false
87
+ },
88
+ "selector": "init",
89
+ "visibility": "public"
90
+ },
91
+ {
92
+ "args": [],
93
+ "class_method": false,
94
+ "retval": {
95
+ "typestr": "v",
96
+ "typestr_special": false
97
+ },
98
+ "selector": "invalidateCredentials",
99
+ "visibility": "public"
100
+ },
101
+ {
102
+ "args": [
103
+ {
104
+ "typestr": "^c",
105
+ "typestr_special": false
106
+ },
107
+ {
108
+ "typestr": "I",
109
+ "typestr_special": false
110
+ },
111
+ {
112
+ "type_modifier": "o",
113
+ "typestr": "^@",
114
+ "typestr_special": false
115
+ }
116
+ ],
117
+ "class_method": false,
118
+ "retval": {
119
+ "typestr": "Z",
120
+ "typestr_special": true
121
+ },
122
+ "selector": "obtainWithRight:flags:error:",
123
+ "visibility": "public"
124
+ },
125
+ {
126
+ "args": [
127
+ {
128
+ "typestr": "^{AuthorizationItemSet=I^{AuthorizationItem=^cQ^vI}}",
129
+ "typestr_special": false
130
+ },
131
+ {
132
+ "typestr": "I",
133
+ "typestr_special": false
134
+ },
135
+ {
136
+ "typestr": "^{AuthorizationItemSet=I^{AuthorizationItem=^cQ^vI}}",
137
+ "typestr_special": false
138
+ },
139
+ {
140
+ "typestr": "^^{AuthorizationItemSet=I^{AuthorizationItem=^cQ^vI}}",
141
+ "typestr_special": false
142
+ },
143
+ {
144
+ "type_modifier": "o",
145
+ "typestr": "^@",
146
+ "typestr_special": false
147
+ }
148
+ ],
149
+ "class_method": false,
150
+ "retval": {
151
+ "typestr": "Z",
152
+ "typestr_special": true
153
+ },
154
+ "selector": "obtainWithRights:flags:environment:authorizedRights:error:",
155
+ "visibility": "public"
156
+ },
157
+ {
158
+ "args": [
159
+ {
160
+ "typestr": "^{AuthorizationItemSet=I^{AuthorizationItem=^cQ^vI}}",
161
+ "typestr_special": false
162
+ },
163
+ {
164
+ "typestr": "I",
165
+ "typestr_special": false
166
+ },
167
+ {
168
+ "typestr": "^{AuthorizationItemSet=I^{AuthorizationItem=^cQ^vI}}",
169
+ "typestr_special": false
170
+ },
171
+ {
172
+ "typestr": "^{AuthorizationItemSet=I^{AuthorizationItem=^cQ^vI}}",
173
+ "typestr_special": false
174
+ }
175
+ ],
176
+ "class_method": false,
177
+ "retval": {
178
+ "typestr": "i",
179
+ "typestr_special": false
180
+ },
181
+ "selector": "permitWithRights:flags:environment:authorizedRights:",
182
+ "visibility": "public"
183
+ },
184
+ {
185
+ "args": [
186
+ {
187
+ "typestr": "^c",
188
+ "typestr_special": false
189
+ },
190
+ {
191
+ "typestr": "I",
192
+ "typestr_special": false
193
+ }
194
+ ],
195
+ "class_method": false,
196
+ "retval": {
197
+ "typestr": "i",
198
+ "typestr_special": false
199
+ },
200
+ "selector": "permitWithRight:flags:",
201
+ "visibility": "public"
202
+ }
203
+ ],
204
+ "name": "SFAuthorization",
205
+ "properties": [],
206
+ "protocols": [
207
+ "NSSecureCoding"
208
+ ],
209
+ "super": "NSObject"
210
+ }
211
+ },
212
+ "enum": {},
213
+ "enum_type": {},
214
+ "expressions": {},
215
+ "externs": {},
216
+ "formal_protocols": {},
217
+ "func_macros": {},
218
+ "functions": {},
219
+ "informal_protocols": {},
220
+ "literals": {},
221
+ "structs": {},
222
+ "typedefs": {}
223
+ },
224
+ "framework": "SecurityFoundation",
225
+ "headers": [
226
+ "SFAuthorization.h",
227
+ "SFDefines.h"
228
+ ],
229
+ "release": "10.16",
230
+ "sdk": "/Users/ronald/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.5.sdk"
231
+ }
@@ -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: Sat Jul 1 14:09:47 2023
4
+ // Last update: Tue Jun 11 10:19:45 2024
5
5
  {
6
6
  "arch": "arm64",
7
7
  "definitions": {
@@ -227,5 +227,5 @@
227
227
  "SFDefines.h"
228
228
  ],
229
229
  "release": "10.16",
230
- "sdk": "/Users/ronald/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.0.sdk"
230
+ "sdk": "/Users/ronald/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.0.sdk"
231
231
  }
@@ -0,0 +1,231 @@
1
+ // GENERATED FILE DO NOT EDIT
2
+ //
3
+ // This file was generated by objective.metadata
4
+ // Last update: Sat May 18 09:36:33 2024
5
+ {
6
+ "arch": "x86_64",
7
+ "definitions": {
8
+ "aliases": {},
9
+ "called_definitions": {},
10
+ "cftypes": {},
11
+ "classes": {
12
+ "SFAuthorization": {
13
+ "categories": [],
14
+ "methods": [
15
+ {
16
+ "args": [],
17
+ "class_method": true,
18
+ "retval": {
19
+ "typestr": "@",
20
+ "typestr_special": false
21
+ },
22
+ "selector": "authorization",
23
+ "visibility": "public"
24
+ },
25
+ {
26
+ "args": [],
27
+ "class_method": false,
28
+ "retval": {
29
+ "typestr": "^{AuthorizationOpaqueRef=}",
30
+ "typestr_special": false
31
+ },
32
+ "selector": "authorizationRef",
33
+ "visibility": "public"
34
+ },
35
+ {
36
+ "args": [
37
+ {
38
+ "typestr": "I",
39
+ "typestr_special": false
40
+ },
41
+ {
42
+ "typestr": "^{AuthorizationItemSet=I^{AuthorizationItem=^cQ^vI}}",
43
+ "typestr_special": false
44
+ },
45
+ {
46
+ "typestr": "^{AuthorizationItemSet=I^{AuthorizationItem=^cQ^vI}}",
47
+ "typestr_special": false
48
+ }
49
+ ],
50
+ "class_method": true,
51
+ "retval": {
52
+ "typestr": "@",
53
+ "typestr_special": false
54
+ },
55
+ "selector": "authorizationWithFlags:rights:environment:",
56
+ "visibility": "public"
57
+ },
58
+ {
59
+ "args": [
60
+ {
61
+ "typestr": "I",
62
+ "typestr_special": false
63
+ },
64
+ {
65
+ "typestr": "^{AuthorizationItemSet=I^{AuthorizationItem=^cQ^vI}}",
66
+ "typestr_special": false
67
+ },
68
+ {
69
+ "typestr": "^{AuthorizationItemSet=I^{AuthorizationItem=^cQ^vI}}",
70
+ "typestr_special": false
71
+ }
72
+ ],
73
+ "class_method": false,
74
+ "retval": {
75
+ "typestr": "@",
76
+ "typestr_special": false
77
+ },
78
+ "selector": "initWithFlags:rights:environment:",
79
+ "visibility": "public"
80
+ },
81
+ {
82
+ "args": [],
83
+ "class_method": false,
84
+ "retval": {
85
+ "typestr": "@",
86
+ "typestr_special": false
87
+ },
88
+ "selector": "init",
89
+ "visibility": "public"
90
+ },
91
+ {
92
+ "args": [],
93
+ "class_method": false,
94
+ "retval": {
95
+ "typestr": "v",
96
+ "typestr_special": false
97
+ },
98
+ "selector": "invalidateCredentials",
99
+ "visibility": "public"
100
+ },
101
+ {
102
+ "args": [
103
+ {
104
+ "typestr": "^c",
105
+ "typestr_special": false
106
+ },
107
+ {
108
+ "typestr": "I",
109
+ "typestr_special": false
110
+ },
111
+ {
112
+ "type_modifier": "o",
113
+ "typestr": "^@",
114
+ "typestr_special": false
115
+ }
116
+ ],
117
+ "class_method": false,
118
+ "retval": {
119
+ "typestr": "Z",
120
+ "typestr_special": true
121
+ },
122
+ "selector": "obtainWithRight:flags:error:",
123
+ "visibility": "public"
124
+ },
125
+ {
126
+ "args": [
127
+ {
128
+ "typestr": "^{AuthorizationItemSet=I^{AuthorizationItem=^cQ^vI}}",
129
+ "typestr_special": false
130
+ },
131
+ {
132
+ "typestr": "I",
133
+ "typestr_special": false
134
+ },
135
+ {
136
+ "typestr": "^{AuthorizationItemSet=I^{AuthorizationItem=^cQ^vI}}",
137
+ "typestr_special": false
138
+ },
139
+ {
140
+ "typestr": "^^{AuthorizationItemSet=I^{AuthorizationItem=^cQ^vI}}",
141
+ "typestr_special": false
142
+ },
143
+ {
144
+ "type_modifier": "o",
145
+ "typestr": "^@",
146
+ "typestr_special": false
147
+ }
148
+ ],
149
+ "class_method": false,
150
+ "retval": {
151
+ "typestr": "Z",
152
+ "typestr_special": true
153
+ },
154
+ "selector": "obtainWithRights:flags:environment:authorizedRights:error:",
155
+ "visibility": "public"
156
+ },
157
+ {
158
+ "args": [
159
+ {
160
+ "typestr": "^{AuthorizationItemSet=I^{AuthorizationItem=^cQ^vI}}",
161
+ "typestr_special": false
162
+ },
163
+ {
164
+ "typestr": "I",
165
+ "typestr_special": false
166
+ },
167
+ {
168
+ "typestr": "^{AuthorizationItemSet=I^{AuthorizationItem=^cQ^vI}}",
169
+ "typestr_special": false
170
+ },
171
+ {
172
+ "typestr": "^{AuthorizationItemSet=I^{AuthorizationItem=^cQ^vI}}",
173
+ "typestr_special": false
174
+ }
175
+ ],
176
+ "class_method": false,
177
+ "retval": {
178
+ "typestr": "i",
179
+ "typestr_special": false
180
+ },
181
+ "selector": "permitWithRights:flags:environment:authorizedRights:",
182
+ "visibility": "public"
183
+ },
184
+ {
185
+ "args": [
186
+ {
187
+ "typestr": "^c",
188
+ "typestr_special": false
189
+ },
190
+ {
191
+ "typestr": "I",
192
+ "typestr_special": false
193
+ }
194
+ ],
195
+ "class_method": false,
196
+ "retval": {
197
+ "typestr": "i",
198
+ "typestr_special": false
199
+ },
200
+ "selector": "permitWithRight:flags:",
201
+ "visibility": "public"
202
+ }
203
+ ],
204
+ "name": "SFAuthorization",
205
+ "properties": [],
206
+ "protocols": [
207
+ "NSSecureCoding"
208
+ ],
209
+ "super": "NSObject"
210
+ }
211
+ },
212
+ "enum": {},
213
+ "enum_type": {},
214
+ "expressions": {},
215
+ "externs": {},
216
+ "formal_protocols": {},
217
+ "func_macros": {},
218
+ "functions": {},
219
+ "informal_protocols": {},
220
+ "literals": {},
221
+ "structs": {},
222
+ "typedefs": {}
223
+ },
224
+ "framework": "SecurityFoundation",
225
+ "headers": [
226
+ "SFAuthorization.h",
227
+ "SFDefines.h"
228
+ ],
229
+ "release": "10.16",
230
+ "sdk": "/Users/ronald/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.5.sdk"
231
+ }
@@ -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: Sat Jul 1 14:09:45 2023
4
+ // Last update: Tue Jun 11 10:19:43 2024
5
5
  {
6
6
  "arch": "x86_64",
7
7
  "definitions": {
@@ -227,5 +227,5 @@
227
227
  "SFDefines.h"
228
228
  ],
229
229
  "release": "10.16",
230
- "sdk": "/Users/ronald/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.0.sdk"
230
+ "sdk": "/Users/ronald/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.0.sdk"
231
231
  }
@@ -20,13 +20,15 @@ import shutil
20
20
  import subprocess
21
21
  import sys
22
22
  import tempfile
23
+ import textwrap
23
24
  import time
24
25
  import unittest
26
+ from fnmatch import fnmatch
25
27
  from sysconfig import get_config_var, get_config_vars
26
28
  from setuptools import Command
27
29
  from setuptools import Extension as _Extension
28
30
  from setuptools import setup as _setup
29
- from setuptools.command import build_ext, build_py, develop, egg_info, install_lib, test
31
+ from setuptools.command import build_ext, build_py, develop, egg_info, install_lib
30
32
 
31
33
  from distutils import log
32
34
  from distutils.errors import DistutilsError, DistutilsPlatformError
@@ -59,6 +61,7 @@ REPO_NAME = "pyobjc"
59
61
  class oc_egg_info(egg_info.egg_info):
60
62
  def run(self):
61
63
  egg_info.egg_info.run(self)
64
+ self.write_build_info()
62
65
 
63
66
  path = os.path.join(self.egg_info, "PKG-INFO")
64
67
  with open(path) as fp:
@@ -83,19 +86,54 @@ class oc_egg_info(egg_info.egg_info):
83
86
  fp.write(middle)
84
87
  fp.write(last)
85
88
 
89
+ def write_build_info(self):
90
+ macos_version = subprocess.check_output(
91
+ ["sw_vers", "-productversion"], text=True
92
+ ).strip()
93
+ macos_build = subprocess.check_output(
94
+ ["sw_vers", "-buildversion"], text=True
95
+ ).strip()
96
+ clang_version = (
97
+ subprocess.check_output(["clang", "--version"], text=True)
98
+ .splitlines()[0]
99
+ .strip()
100
+ )
101
+
102
+ sdk_root = get_sdk()
103
+ if sdk_root is None:
104
+ sdk_root = subprocess.check_output(
105
+ ["xcrun", "-sdk", "macosx", "--show-sdk-path"], text=True
106
+ ).strip()
107
+ sdk_info = os.path.join(sdk_root, "SDKSettings.plist")
108
+ if os.path.exists(sdk_info):
109
+ pl = plistlib.load(open(sdk_info, "rb"))
110
+ sdk_version = pl["DisplayName"]
111
+ else:
112
+ sdk_version = os.path.basename(sdk_root)
113
+
114
+ build_info = textwrap.dedent(
115
+ f"""\
116
+ macOS {macos_version} ({macos_build})
117
+ {clang_version}
118
+ SDK: {sdk_version}
119
+ """
120
+ )
121
+
122
+ self.write_file(
123
+ "pyobjc-build-info.txt",
124
+ os.path.join(self.egg_info, "pyobjc-build-info.txt"),
125
+ build_info,
126
+ )
127
+
86
128
 
87
- class oc_test(test.test):
129
+ class oc_test(Command):
88
130
  description = "run test suite"
89
- user_options = test.test.user_options + [
90
- ("verbosity=", None, "print what tests are run")
91
- ]
131
+ user_options = [("verbosity=", None, "print what tests are run")]
92
132
 
93
133
  def initialize_options(self):
94
- test.test.initialize_options(self)
95
134
  self.verbosity = "1"
96
135
 
97
136
  def finalize_options(self):
98
- test.test.finalize_options(self)
99
137
  if isinstance(self.verbosity, str):
100
138
  self.verbosity = int(self.verbosity)
101
139
 
@@ -154,18 +192,13 @@ class oc_test(test.test):
154
192
  self.cleanup_environment()
155
193
  self.add_project_to_sys_path()
156
194
 
157
- from pkg_resources import EntryPoint
158
-
159
- loader_ep = EntryPoint.parse("x=" + self.test_loader)
160
- loader_class = loader_ep.resolve()
161
-
162
195
  import warnings
163
196
 
164
197
  warnings.simplefilter("error")
165
198
 
166
199
  try:
167
200
  time_before = time.time()
168
- suite = loader_class().loadTestsFromName(self.distribution.test_suite)
201
+ suite = makeTestSuite()
169
202
 
170
203
  if self.verbose and self.verbosity < 3:
171
204
  runner = unittest.TextTestRunner(verbosity=3)
@@ -208,12 +241,12 @@ Operating System :: MacOS :: MacOS X
208
241
  Programming Language :: Python
209
242
  Programming Language :: Python :: 3
210
243
  Programming Language :: Python :: 3 :: Only
211
- Programming Language :: Python :: 3.8
212
244
  Programming Language :: Python :: 3.9
213
245
  Programming Language :: Python :: 3.10
214
246
  Programming Language :: Python :: 3.11
215
247
  Programming Language :: Python :: 3.12
216
248
  Programming Language :: Python :: 3.13
249
+ Programming Language :: Python :: 3.14
217
250
  Programming Language :: Python :: Implementation :: CPython
218
251
  Programming Language :: Objective C
219
252
  Topic :: Software Development :: Libraries :: Python Modules
@@ -511,21 +544,15 @@ def Extension(*args, **kwds):
511
544
  % (tuple(map(int, os_level.split(".")[:2])))
512
545
  )
513
546
 
514
- # XCode 15 has a bug w.r.t. weak linking for older macOS versions,
515
- # fall back to older linker when using that compiler.
516
- # XXX: This should be in _fixup_compiler but doesn't work there...
517
- lines = subprocess.check_output(["xcodebuild", "-version"], text=True).splitlines()
518
- if lines[0].startswith("Xcode"):
519
- xcode_vers = int(lines[0].split()[-1].split(".")[0])
520
- if xcode_vers >= 15:
521
- ldflags.append("-Wl,-ld_classic")
522
-
523
547
  if os_level == "10.4":
524
548
  cflags.append("-DNO_OBJC2_RUNTIME")
525
549
 
526
550
  if "-Werror" not in cflags:
527
551
  cflags.append("-Werror")
528
552
 
553
+ if get_config_var("Py_GIL_DISABLED"):
554
+ cflags.append("-DPyObjC_GIL_DISABLED")
555
+
529
556
  if "extra_compile_args" in kwds:
530
557
  kwds["extra_compile_args"] = kwds["extra_compile_args"] + cflags
531
558
  else:
@@ -543,8 +570,15 @@ def _sort_key(version):
543
570
  return tuple(int(x) for x in version.split("."))
544
571
 
545
572
 
546
- def setup(min_os_level=None, max_os_level=None, cmdclass=None, **kwds):
573
+ def setup(
574
+ min_os_level=None,
575
+ max_os_level=None,
576
+ cmdclass=None,
577
+ options={}, # noqa: M511, B006
578
+ **kwds,
579
+ ):
547
580
  k = kwds.copy()
581
+ options = options.copy()
548
582
 
549
583
  os_level = get_sdk_level()
550
584
  if os_level is None:
@@ -616,7 +650,7 @@ def setup(min_os_level=None, max_os_level=None, cmdclass=None, **kwds):
616
650
 
617
651
  if "ext_modules" not in k:
618
652
  # No extension modules, can build universal wheel
619
- k["options"] = {"bdist_wheel": {"universal": 1}}
653
+ options.update({"bdist_wheel": {"universal": 1}})
620
654
 
621
655
  plat_name = "MacOS X"
622
656
  plat_versions = []
@@ -658,6 +692,12 @@ def setup(min_os_level=None, max_os_level=None, cmdclass=None, **kwds):
658
692
  )
659
693
  k["long_description_content_type"] = "text/x-rst; charset=UTF-8"
660
694
 
695
+ if "bdist_wheel" in options:
696
+ # Python 3.13 does not support the limited ABI for C extensions
697
+ # when using a free threaded build.
698
+ if get_config_var("Py_GIL_DISABLED"):
699
+ del options["bdist_wheel"]
700
+
661
701
  _setup(
662
702
  cmdclass=cmdclass,
663
703
  author="Ronald Oussoren",
@@ -667,11 +707,65 @@ def setup(min_os_level=None, max_os_level=None, cmdclass=None, **kwds):
667
707
  package_dir={"": "Lib", "PyObjCTest": "PyObjCTest"},
668
708
  dependency_links=[],
669
709
  package_data={"": ["*.bridgesupport"]},
670
- test_suite="PyObjCTest",
671
710
  zip_safe=False,
672
711
  license="MIT License",
673
712
  classifiers=CLASSIFIERS,
674
- python_requires=">=3.8",
713
+ python_requires=">=3.9",
675
714
  keywords=["PyObjC"] + [p for p in k["packages"] if p not in ("PyObjCTools",)],
715
+ options=options,
676
716
  **k,
677
717
  )
718
+
719
+
720
+ def recursiveGlob(root, pathPattern):
721
+ """
722
+ Recursively look for files matching 'pathPattern'. Return a list
723
+ of matching files/directories.
724
+ """
725
+ result = []
726
+
727
+ for rootpath, _dirnames, filenames in os.walk(root):
728
+ for fn in filenames:
729
+ if fnmatch(fn, pathPattern):
730
+ result.append(os.path.join(rootpath, fn))
731
+ return result
732
+
733
+
734
+ def importExternalTestCases(pathPattern="test_*.py", root=".", package=None):
735
+ """
736
+ Import all unittests in the PyObjC tree starting at 'root'
737
+ """
738
+
739
+ testFiles = recursiveGlob(root, pathPattern)
740
+ testModules = [x[len(root) + 1 : -3].replace("/", ".") for x in testFiles]
741
+ if package is not None:
742
+ testModules = [(package + "." + m) for m in testModules]
743
+
744
+ suites = []
745
+
746
+ for modName in testModules:
747
+ try:
748
+ module = __import__(modName)
749
+ except ImportError as msg:
750
+ print(f"SKIP {modName}: {msg}")
751
+ continue
752
+
753
+ if "." in modName:
754
+ for elem in modName.split(".")[1:]:
755
+ module = getattr(module, elem)
756
+
757
+ s = unittest.defaultTestLoader.loadTestsFromModule(module)
758
+ suites.append(s)
759
+
760
+ return unittest.TestSuite(suites)
761
+
762
+
763
+ gTopdir = os.path.dirname(__file__)
764
+
765
+
766
+ def makeTestSuite():
767
+ plain_suite = importExternalTestCases(
768
+ "test_*.py", os.path.join(gTopdir, "PyObjCTest"), package="PyObjCTest"
769
+ )
770
+
771
+ return plain_suite
@@ -15,7 +15,7 @@ sys.path.insert(0, os.path.dirname(__file__))
15
15
 
16
16
  from pyobjc_setup import setup # noqa: E402
17
17
 
18
- VERSION = "10.2"
18
+ VERSION = "11.0"
19
19
 
20
20
  setup(
21
21
  name="pyobjc-framework-SecurityFoundation",
@@ -1,3 +0,0 @@
1
- pyobjc-core>=10.2
2
- pyobjc-framework-Cocoa>=10.2
3
- pyobjc-framework-Security>=10.2
@@ -1,28 +0,0 @@
1
- // GENERATED FILE DO NOT EDIT
2
- //
3
- // This file was generated by objective.metadata
4
- // Last update: Sun Jul 11 21:52:33 2021
5
- {
6
- "arch": "arm64",
7
- "definitions": {
8
- "aliases": {},
9
- "called_definitions": {},
10
- "cftypes": {},
11
- "classes": {},
12
- "enum": {},
13
- "expressions": {},
14
- "externs": {},
15
- "formal_protocols": {},
16
- "func_macros": {},
17
- "functions": {},
18
- "informal_protocols": {},
19
- "literals": {},
20
- "structs": {}
21
- },
22
- "framework": "SecurityFoundation",
23
- "headers": [
24
- "SFDefines.h"
25
- ],
26
- "release": "10.16",
27
- "sdk": "/Users/ronald/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.0.sdk"
28
- }
@@ -1,28 +0,0 @@
1
- // GENERATED FILE DO NOT EDIT
2
- //
3
- // This file was generated by objective.metadata
4
- // Last update: Sun Jul 11 21:52:33 2021
5
- {
6
- "arch": "x86_64",
7
- "definitions": {
8
- "aliases": {},
9
- "called_definitions": {},
10
- "cftypes": {},
11
- "classes": {},
12
- "enum": {},
13
- "expressions": {},
14
- "externs": {},
15
- "formal_protocols": {},
16
- "func_macros": {},
17
- "functions": {},
18
- "informal_protocols": {},
19
- "literals": {},
20
- "structs": {}
21
- },
22
- "framework": "SecurityFoundation",
23
- "headers": [
24
- "SFDefines.h"
25
- ],
26
- "release": "10.16",
27
- "sdk": "/Users/ronald/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.0.sdk"
28
- }