pyobjc-framework-SensitiveContentAnalysis 10.3.2__tar.gz → 11.1__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_sensitivecontentanalysis-10.3.2 → pyobjc_framework_sensitivecontentanalysis-11.1}/Lib/SensitiveContentAnalysis/_metadata.py +1 -1
  2. {pyobjc_framework_sensitivecontentanalysis-10.3.2 → pyobjc_framework_sensitivecontentanalysis-11.1}/Lib/pyobjc_framework_SensitiveContentAnalysis.egg-info/PKG-INFO +20 -9
  3. {pyobjc_framework_sensitivecontentanalysis-10.3.2 → pyobjc_framework_sensitivecontentanalysis-11.1}/Lib/pyobjc_framework_SensitiveContentAnalysis.egg-info/SOURCES.txt +5 -1
  4. pyobjc_framework_sensitivecontentanalysis-11.1/Lib/pyobjc_framework_SensitiveContentAnalysis.egg-info/pyobjc-build-info.txt +3 -0
  5. pyobjc_framework_sensitivecontentanalysis-11.1/Lib/pyobjc_framework_SensitiveContentAnalysis.egg-info/requires.txt +3 -0
  6. {pyobjc_framework_sensitivecontentanalysis-10.3.2 → pyobjc_framework_sensitivecontentanalysis-11.1}/License.txt +1 -1
  7. {pyobjc_framework_sensitivecontentanalysis-10.3.2 → pyobjc_framework_sensitivecontentanalysis-11.1}/PKG-INFO +20 -9
  8. pyobjc_framework_sensitivecontentanalysis-11.1/PyObjCTest/__init__.py +1 -0
  9. pyobjc_framework_sensitivecontentanalysis-11.1/PyObjCTest/test_scsensitivityanalysis.py +11 -0
  10. {pyobjc_framework_sensitivecontentanalysis-10.3.2 → pyobjc_framework_sensitivecontentanalysis-11.1}/PyObjCTest/test_scsensitivityanalyzer.py +0 -4
  11. pyobjc_framework_sensitivecontentanalysis-11.1/metadata/raw/arm64-15.0.fwinfo +217 -0
  12. pyobjc_framework_sensitivecontentanalysis-11.1/metadata/raw/x86_64-15.0.fwinfo +217 -0
  13. {pyobjc_framework_sensitivecontentanalysis-10.3.2 → pyobjc_framework_sensitivecontentanalysis-11.1}/pyobjc_setup.py +73 -53
  14. {pyobjc_framework_sensitivecontentanalysis-10.3.2 → pyobjc_framework_sensitivecontentanalysis-11.1}/setup.py +1 -1
  15. pyobjc_framework_sensitivecontentanalysis-10.3.2/Lib/pyobjc_framework_SensitiveContentAnalysis.egg-info/requires.txt +0 -3
  16. pyobjc_framework_sensitivecontentanalysis-10.3.2/PyObjCTest/__init__.py +0 -1
  17. {pyobjc_framework_sensitivecontentanalysis-10.3.2 → pyobjc_framework_sensitivecontentanalysis-11.1}/Lib/SensitiveContentAnalysis/__init__.py +0 -0
  18. {pyobjc_framework_sensitivecontentanalysis-10.3.2 → pyobjc_framework_sensitivecontentanalysis-11.1}/Lib/pyobjc_framework_SensitiveContentAnalysis.egg-info/dependency_links.txt +0 -0
  19. {pyobjc_framework_sensitivecontentanalysis-10.3.2 → pyobjc_framework_sensitivecontentanalysis-11.1}/Lib/pyobjc_framework_SensitiveContentAnalysis.egg-info/not-zip-safe +0 -0
  20. {pyobjc_framework_sensitivecontentanalysis-10.3.2 → pyobjc_framework_sensitivecontentanalysis-11.1}/Lib/pyobjc_framework_SensitiveContentAnalysis.egg-info/top_level.txt +0 -0
  21. {pyobjc_framework_sensitivecontentanalysis-10.3.2 → pyobjc_framework_sensitivecontentanalysis-11.1}/MANIFEST.in +0 -0
  22. {pyobjc_framework_sensitivecontentanalysis-10.3.2 → pyobjc_framework_sensitivecontentanalysis-11.1}/PyObjCTest/test_sensitivecontentanalysis.py +0 -0
  23. {pyobjc_framework_sensitivecontentanalysis-10.3.2 → pyobjc_framework_sensitivecontentanalysis-11.1}/metadata/SensitiveContentAnalysis.fwinfo +0 -0
  24. {pyobjc_framework_sensitivecontentanalysis-10.3.2 → pyobjc_framework_sensitivecontentanalysis-11.1}/metadata/metadata.ini +0 -0
  25. {pyobjc_framework_sensitivecontentanalysis-10.3.2 → pyobjc_framework_sensitivecontentanalysis-11.1}/metadata/raw/arm64-14.5.fwinfo +0 -0
  26. {pyobjc_framework_sensitivecontentanalysis-10.3.2 → pyobjc_framework_sensitivecontentanalysis-11.1}/metadata/raw/x86_64-14.5.fwinfo +0 -0
  27. {pyobjc_framework_sensitivecontentanalysis-10.3.2 → pyobjc_framework_sensitivecontentanalysis-11.1}/pyproject.toml +0 -0
  28. {pyobjc_framework_sensitivecontentanalysis-10.3.2 → pyobjc_framework_sensitivecontentanalysis-11.1}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  # This file is generated by objective.metadata
2
2
  #
3
- # Last update: Sat May 18 09:36:45 2024
3
+ # Last update: Tue Jun 11 10:19:56 2024
4
4
  #
5
5
  # flake8: noqa
6
6
 
@@ -1,38 +1,49 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: pyobjc-framework-SensitiveContentAnalysis
3
- Version: 10.3.2
3
+ Version: 11.1
4
4
  Summary: Wrappers for the framework SensitiveContentAnalysis on macOS
5
5
  Home-page: https://github.com/ronaldoussoren/pyobjc
6
6
  Author: Ronald Oussoren
7
7
  Author-email: pyobjc-dev@lists.sourceforge.net
8
- License: MIT License
8
+ License: MIT
9
9
  Keywords: PyObjC,SensitiveContentAnalysis
10
10
  Platform: MacOS X (>=14.0)
11
11
  Classifier: Development Status :: 5 - Production/Stable
12
12
  Classifier: Environment :: Console
13
13
  Classifier: Environment :: MacOS X :: Cocoa
14
14
  Classifier: Intended Audience :: Developers
15
- Classifier: License :: OSI Approved :: MIT License
16
15
  Classifier: Natural Language :: English
17
16
  Classifier: Operating System :: MacOS :: MacOS X
18
17
  Classifier: Programming Language :: Python
19
18
  Classifier: Programming Language :: Python :: 3
20
19
  Classifier: Programming Language :: Python :: 3 :: Only
21
- Classifier: Programming Language :: Python :: 3.8
22
20
  Classifier: Programming Language :: Python :: 3.9
23
21
  Classifier: Programming Language :: Python :: 3.10
24
22
  Classifier: Programming Language :: Python :: 3.11
25
23
  Classifier: Programming Language :: Python :: 3.12
26
24
  Classifier: Programming Language :: Python :: 3.13
25
+ Classifier: Programming Language :: Python :: 3.14
27
26
  Classifier: Programming Language :: Python :: Implementation :: CPython
28
27
  Classifier: Programming Language :: Objective C
29
28
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
30
29
  Classifier: Topic :: Software Development :: User Interfaces
31
- Requires-Python: >=3.8
30
+ Requires-Python: >=3.9
32
31
  Description-Content-Type: text/x-rst; charset=UTF-8
33
- Requires-Dist: pyobjc-core>=10.3.2
34
- Requires-Dist: pyobjc-framework-Cocoa>=10.3.2
35
- Requires-Dist: pyobjc-framework-Quartz>=10.3.2
32
+ Requires-Dist: pyobjc-core>=11.1
33
+ Requires-Dist: pyobjc-framework-Cocoa>=11.1
34
+ Requires-Dist: pyobjc-framework-Quartz>=11.1
35
+ Dynamic: author
36
+ Dynamic: author-email
37
+ Dynamic: classifier
38
+ Dynamic: description
39
+ Dynamic: description-content-type
40
+ Dynamic: home-page
41
+ Dynamic: keywords
42
+ Dynamic: license
43
+ Dynamic: platform
44
+ Dynamic: requires-dist
45
+ Dynamic: requires-python
46
+ Dynamic: summary
36
47
  Project-URL: Documentation, https://pyobjc.readthedocs.io/en/latest/
37
48
  Project-URL: Issue tracker, https://github.com/ronaldoussoren/pyobjc/issues
38
49
  Project-URL: Repository, https://github.com/ronaldoussoren/pyobjc
@@ -9,12 +9,16 @@ Lib/pyobjc_framework_SensitiveContentAnalysis.egg-info/PKG-INFO
9
9
  Lib/pyobjc_framework_SensitiveContentAnalysis.egg-info/SOURCES.txt
10
10
  Lib/pyobjc_framework_SensitiveContentAnalysis.egg-info/dependency_links.txt
11
11
  Lib/pyobjc_framework_SensitiveContentAnalysis.egg-info/not-zip-safe
12
+ Lib/pyobjc_framework_SensitiveContentAnalysis.egg-info/pyobjc-build-info.txt
12
13
  Lib/pyobjc_framework_SensitiveContentAnalysis.egg-info/requires.txt
13
14
  Lib/pyobjc_framework_SensitiveContentAnalysis.egg-info/top_level.txt
14
15
  PyObjCTest/__init__.py
16
+ PyObjCTest/test_scsensitivityanalysis.py
15
17
  PyObjCTest/test_scsensitivityanalyzer.py
16
18
  PyObjCTest/test_sensitivecontentanalysis.py
17
19
  metadata/SensitiveContentAnalysis.fwinfo
18
20
  metadata/metadata.ini
19
21
  metadata/raw/arm64-14.5.fwinfo
20
- metadata/raw/x86_64-14.5.fwinfo
22
+ metadata/raw/arm64-15.0.fwinfo
23
+ metadata/raw/x86_64-14.5.fwinfo
24
+ metadata/raw/x86_64-15.0.fwinfo
@@ -0,0 +1,3 @@
1
+ macOS 15.5 (24F74)
2
+ Apple clang version 17.0.0 (clang-1700.0.13.5)
3
+ SDK: macOS 15.5
@@ -0,0 +1,3 @@
1
+ pyobjc-core>=11.1
2
+ pyobjc-framework-Cocoa>=11.1
3
+ pyobjc-framework-Quartz>=11.1
@@ -1,7 +1,7 @@
1
1
  (This is the MIT license, note that libffi-src is a separate product with its own license)
2
2
 
3
3
  Copyright 2002, 2003 - Bill Bumgarner, Ronald Oussoren, Steve Majewski, Lele Gaifax, et.al.
4
- Copyright 2003-2024 - Ronald Oussoren
4
+ Copyright 2003-2025 - Ronald Oussoren
5
5
 
6
6
  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
7
7
 
@@ -1,38 +1,49 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: pyobjc-framework-SensitiveContentAnalysis
3
- Version: 10.3.2
3
+ Version: 11.1
4
4
  Summary: Wrappers for the framework SensitiveContentAnalysis on macOS
5
5
  Home-page: https://github.com/ronaldoussoren/pyobjc
6
6
  Author: Ronald Oussoren
7
7
  Author-email: pyobjc-dev@lists.sourceforge.net
8
- License: MIT License
8
+ License: MIT
9
9
  Keywords: PyObjC,SensitiveContentAnalysis
10
10
  Platform: MacOS X (>=14.0)
11
11
  Classifier: Development Status :: 5 - Production/Stable
12
12
  Classifier: Environment :: Console
13
13
  Classifier: Environment :: MacOS X :: Cocoa
14
14
  Classifier: Intended Audience :: Developers
15
- Classifier: License :: OSI Approved :: MIT License
16
15
  Classifier: Natural Language :: English
17
16
  Classifier: Operating System :: MacOS :: MacOS X
18
17
  Classifier: Programming Language :: Python
19
18
  Classifier: Programming Language :: Python :: 3
20
19
  Classifier: Programming Language :: Python :: 3 :: Only
21
- Classifier: Programming Language :: Python :: 3.8
22
20
  Classifier: Programming Language :: Python :: 3.9
23
21
  Classifier: Programming Language :: Python :: 3.10
24
22
  Classifier: Programming Language :: Python :: 3.11
25
23
  Classifier: Programming Language :: Python :: 3.12
26
24
  Classifier: Programming Language :: Python :: 3.13
25
+ Classifier: Programming Language :: Python :: 3.14
27
26
  Classifier: Programming Language :: Python :: Implementation :: CPython
28
27
  Classifier: Programming Language :: Objective C
29
28
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
30
29
  Classifier: Topic :: Software Development :: User Interfaces
31
- Requires-Python: >=3.8
30
+ Requires-Python: >=3.9
32
31
  Description-Content-Type: text/x-rst; charset=UTF-8
33
- Requires-Dist: pyobjc-core>=10.3.2
34
- Requires-Dist: pyobjc-framework-Cocoa>=10.3.2
35
- Requires-Dist: pyobjc-framework-Quartz>=10.3.2
32
+ Requires-Dist: pyobjc-core>=11.1
33
+ Requires-Dist: pyobjc-framework-Cocoa>=11.1
34
+ Requires-Dist: pyobjc-framework-Quartz>=11.1
35
+ Dynamic: author
36
+ Dynamic: author-email
37
+ Dynamic: classifier
38
+ Dynamic: description
39
+ Dynamic: description-content-type
40
+ Dynamic: home-page
41
+ Dynamic: keywords
42
+ Dynamic: license
43
+ Dynamic: platform
44
+ Dynamic: requires-dist
45
+ Dynamic: requires-python
46
+ Dynamic: summary
36
47
 
37
48
 
38
49
  Wrappers for the "SensitiveContentAnalysis" framework on macOS.
@@ -0,0 +1,11 @@
1
+ from PyObjCTools.TestSupport import TestCase
2
+
3
+ import SensitiveContentAnalysis
4
+
5
+
6
+ class TestSCSensitivityAnalysis(TestCase):
7
+
8
+ def test_methods(self):
9
+ self.assertResultIsBOOL(
10
+ SensitiveContentAnalysis.SCSensitivityAnalysis.isSensitive
11
+ )
@@ -19,10 +19,6 @@ class TestSCSensitivityAnalyzer(TestCase):
19
19
  )
20
20
 
21
21
  def test_methods(self):
22
- self.assertResultIsBOOL(
23
- SensitiveContentAnalysis.SCSensitivityAnalysis.isSensitive
24
- )
25
-
26
22
  self.assertArgIsBlock(
27
23
  SensitiveContentAnalysis.SCSensitivityAnalyzer.analyzeImageFile_completionHandler_,
28
24
  1,
@@ -0,0 +1,217 @@
1
+ // GENERATED FILE DO NOT EDIT
2
+ //
3
+ // This file was generated by objective.metadata
4
+ // Last update: Tue Jun 11 10:19:56 2024
5
+ {
6
+ "arch": "arm64",
7
+ "definitions": {
8
+ "aliases": {},
9
+ "called_definitions": {},
10
+ "cftypes": {},
11
+ "classes": {
12
+ "SCSensitivityAnalysis": {
13
+ "categories": [],
14
+ "methods": [
15
+ {
16
+ "args": [],
17
+ "class_method": false,
18
+ "retval": {
19
+ "typestr": "Z",
20
+ "typestr_special": true
21
+ },
22
+ "selector": "isSensitive",
23
+ "visibility": "public"
24
+ }
25
+ ],
26
+ "name": "SCSensitivityAnalysis",
27
+ "properties": [
28
+ {
29
+ "attributes": [
30
+ "readonly",
31
+ [
32
+ "getter",
33
+ "isSensitive"
34
+ ]
35
+ ],
36
+ "name": "sensitive",
37
+ "typestr": "Z",
38
+ "typestr_special": true
39
+ }
40
+ ],
41
+ "protocols": [],
42
+ "super": "NSObject"
43
+ },
44
+ "SCSensitivityAnalyzer": {
45
+ "categories": [],
46
+ "methods": [
47
+ {
48
+ "args": [],
49
+ "class_method": false,
50
+ "retval": {
51
+ "typestr": "@",
52
+ "typestr_special": false
53
+ },
54
+ "selector": "init",
55
+ "visibility": "public"
56
+ },
57
+ {
58
+ "args": [
59
+ {
60
+ "typestr": "@",
61
+ "typestr_special": false
62
+ },
63
+ {
64
+ "callable": {
65
+ "arguments": {
66
+ "0": {
67
+ "type": "^v"
68
+ },
69
+ "1": {
70
+ "type": "@"
71
+ },
72
+ "2": {
73
+ "type": "@"
74
+ }
75
+ },
76
+ "retval": {
77
+ "type": "v"
78
+ }
79
+ },
80
+ "typestr": "@?",
81
+ "typestr_special": false
82
+ }
83
+ ],
84
+ "class_method": false,
85
+ "retval": {
86
+ "typestr": "v",
87
+ "typestr_special": false
88
+ },
89
+ "selector": "analyzeImageFile:completionHandler:",
90
+ "visibility": "public"
91
+ },
92
+ {
93
+ "args": [
94
+ {
95
+ "typestr": "^{CGImage=}",
96
+ "typestr_special": false
97
+ },
98
+ {
99
+ "callable": {
100
+ "arguments": {
101
+ "0": {
102
+ "type": "^v"
103
+ },
104
+ "1": {
105
+ "type": "@"
106
+ },
107
+ "2": {
108
+ "type": "@"
109
+ }
110
+ },
111
+ "retval": {
112
+ "type": "v"
113
+ }
114
+ },
115
+ "typestr": "@?",
116
+ "typestr_special": false
117
+ }
118
+ ],
119
+ "class_method": false,
120
+ "retval": {
121
+ "typestr": "v",
122
+ "typestr_special": false
123
+ },
124
+ "selector": "analyzeCGImage:completionHandler:",
125
+ "visibility": "public"
126
+ },
127
+ {
128
+ "args": [
129
+ {
130
+ "typestr": "@",
131
+ "typestr_special": false
132
+ },
133
+ {
134
+ "callable": {
135
+ "arguments": {
136
+ "0": {
137
+ "type": "^v"
138
+ },
139
+ "1": {
140
+ "type": "@"
141
+ },
142
+ "2": {
143
+ "type": "@"
144
+ }
145
+ },
146
+ "retval": {
147
+ "type": "v"
148
+ }
149
+ },
150
+ "typestr": "@?",
151
+ "typestr_special": false
152
+ }
153
+ ],
154
+ "class_method": false,
155
+ "retval": {
156
+ "typestr": "@",
157
+ "typestr_special": false
158
+ },
159
+ "selector": "analyzeVideoFile:completionHandler:",
160
+ "visibility": "public"
161
+ },
162
+ {
163
+ "args": [],
164
+ "class_method": false,
165
+ "retval": {
166
+ "typestr": "q",
167
+ "typestr_special": false
168
+ },
169
+ "selector": "analysisPolicy",
170
+ "visibility": "public"
171
+ }
172
+ ],
173
+ "name": "SCSensitivityAnalyzer",
174
+ "properties": [
175
+ {
176
+ "attributes": [
177
+ "assign",
178
+ "readonly"
179
+ ],
180
+ "name": "analysisPolicy",
181
+ "typestr": "q",
182
+ "typestr_special": false
183
+ }
184
+ ],
185
+ "protocols": [],
186
+ "super": "NSObject"
187
+ }
188
+ },
189
+ "enum": {
190
+ "SCSensitivityAnalysisPolicyDescriptiveInterventions": 2,
191
+ "SCSensitivityAnalysisPolicyDisabled": 0,
192
+ "SCSensitivityAnalysisPolicySimpleInterventions": 1
193
+ },
194
+ "enum_type": {
195
+ "SCSensitivityAnalysisPolicy": {
196
+ "type": "q"
197
+ }
198
+ },
199
+ "expressions": {},
200
+ "externs": {},
201
+ "formal_protocols": {},
202
+ "func_macros": {},
203
+ "functions": {},
204
+ "informal_protocols": {},
205
+ "literals": {},
206
+ "structs": {},
207
+ "typedefs": {
208
+ "SCSensitivityAnalysisPolicy": "enum SCSensitivityAnalysisPolicy"
209
+ }
210
+ },
211
+ "framework": "SensitiveContentAnalysis",
212
+ "headers": [
213
+ "SCSensitivityAnalyzer.h"
214
+ ],
215
+ "release": "10.16",
216
+ "sdk": "/Users/ronald/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.0.sdk"
217
+ }
@@ -0,0 +1,217 @@
1
+ // GENERATED FILE DO NOT EDIT
2
+ //
3
+ // This file was generated by objective.metadata
4
+ // Last update: Tue Jun 11 10:19:54 2024
5
+ {
6
+ "arch": "x86_64",
7
+ "definitions": {
8
+ "aliases": {},
9
+ "called_definitions": {},
10
+ "cftypes": {},
11
+ "classes": {
12
+ "SCSensitivityAnalysis": {
13
+ "categories": [],
14
+ "methods": [
15
+ {
16
+ "args": [],
17
+ "class_method": false,
18
+ "retval": {
19
+ "typestr": "Z",
20
+ "typestr_special": true
21
+ },
22
+ "selector": "isSensitive",
23
+ "visibility": "public"
24
+ }
25
+ ],
26
+ "name": "SCSensitivityAnalysis",
27
+ "properties": [
28
+ {
29
+ "attributes": [
30
+ "readonly",
31
+ [
32
+ "getter",
33
+ "isSensitive"
34
+ ]
35
+ ],
36
+ "name": "sensitive",
37
+ "typestr": "Z",
38
+ "typestr_special": true
39
+ }
40
+ ],
41
+ "protocols": [],
42
+ "super": "NSObject"
43
+ },
44
+ "SCSensitivityAnalyzer": {
45
+ "categories": [],
46
+ "methods": [
47
+ {
48
+ "args": [],
49
+ "class_method": false,
50
+ "retval": {
51
+ "typestr": "@",
52
+ "typestr_special": false
53
+ },
54
+ "selector": "init",
55
+ "visibility": "public"
56
+ },
57
+ {
58
+ "args": [
59
+ {
60
+ "typestr": "@",
61
+ "typestr_special": false
62
+ },
63
+ {
64
+ "callable": {
65
+ "arguments": {
66
+ "0": {
67
+ "type": "^v"
68
+ },
69
+ "1": {
70
+ "type": "@"
71
+ },
72
+ "2": {
73
+ "type": "@"
74
+ }
75
+ },
76
+ "retval": {
77
+ "type": "v"
78
+ }
79
+ },
80
+ "typestr": "@?",
81
+ "typestr_special": false
82
+ }
83
+ ],
84
+ "class_method": false,
85
+ "retval": {
86
+ "typestr": "v",
87
+ "typestr_special": false
88
+ },
89
+ "selector": "analyzeImageFile:completionHandler:",
90
+ "visibility": "public"
91
+ },
92
+ {
93
+ "args": [
94
+ {
95
+ "typestr": "^{CGImage=}",
96
+ "typestr_special": false
97
+ },
98
+ {
99
+ "callable": {
100
+ "arguments": {
101
+ "0": {
102
+ "type": "^v"
103
+ },
104
+ "1": {
105
+ "type": "@"
106
+ },
107
+ "2": {
108
+ "type": "@"
109
+ }
110
+ },
111
+ "retval": {
112
+ "type": "v"
113
+ }
114
+ },
115
+ "typestr": "@?",
116
+ "typestr_special": false
117
+ }
118
+ ],
119
+ "class_method": false,
120
+ "retval": {
121
+ "typestr": "v",
122
+ "typestr_special": false
123
+ },
124
+ "selector": "analyzeCGImage:completionHandler:",
125
+ "visibility": "public"
126
+ },
127
+ {
128
+ "args": [
129
+ {
130
+ "typestr": "@",
131
+ "typestr_special": false
132
+ },
133
+ {
134
+ "callable": {
135
+ "arguments": {
136
+ "0": {
137
+ "type": "^v"
138
+ },
139
+ "1": {
140
+ "type": "@"
141
+ },
142
+ "2": {
143
+ "type": "@"
144
+ }
145
+ },
146
+ "retval": {
147
+ "type": "v"
148
+ }
149
+ },
150
+ "typestr": "@?",
151
+ "typestr_special": false
152
+ }
153
+ ],
154
+ "class_method": false,
155
+ "retval": {
156
+ "typestr": "@",
157
+ "typestr_special": false
158
+ },
159
+ "selector": "analyzeVideoFile:completionHandler:",
160
+ "visibility": "public"
161
+ },
162
+ {
163
+ "args": [],
164
+ "class_method": false,
165
+ "retval": {
166
+ "typestr": "q",
167
+ "typestr_special": false
168
+ },
169
+ "selector": "analysisPolicy",
170
+ "visibility": "public"
171
+ }
172
+ ],
173
+ "name": "SCSensitivityAnalyzer",
174
+ "properties": [
175
+ {
176
+ "attributes": [
177
+ "assign",
178
+ "readonly"
179
+ ],
180
+ "name": "analysisPolicy",
181
+ "typestr": "q",
182
+ "typestr_special": false
183
+ }
184
+ ],
185
+ "protocols": [],
186
+ "super": "NSObject"
187
+ }
188
+ },
189
+ "enum": {
190
+ "SCSensitivityAnalysisPolicyDescriptiveInterventions": 2,
191
+ "SCSensitivityAnalysisPolicyDisabled": 0,
192
+ "SCSensitivityAnalysisPolicySimpleInterventions": 1
193
+ },
194
+ "enum_type": {
195
+ "SCSensitivityAnalysisPolicy": {
196
+ "type": "q"
197
+ }
198
+ },
199
+ "expressions": {},
200
+ "externs": {},
201
+ "formal_protocols": {},
202
+ "func_macros": {},
203
+ "functions": {},
204
+ "informal_protocols": {},
205
+ "literals": {},
206
+ "structs": {},
207
+ "typedefs": {
208
+ "SCSensitivityAnalysisPolicy": "enum SCSensitivityAnalysisPolicy"
209
+ }
210
+ },
211
+ "framework": "SensitiveContentAnalysis",
212
+ "headers": [
213
+ "SCSensitivityAnalyzer.h"
214
+ ],
215
+ "release": "10.16",
216
+ "sdk": "/Users/ronald/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.0.sdk"
217
+ }
@@ -11,15 +11,15 @@ To change this file:
11
11
 
12
12
  __all__ = ("setup", "Extension", "Command")
13
13
 
14
+ import importlib
14
15
  import os
15
- import pkg_resources
16
16
  import plistlib
17
17
  import re
18
18
  import shlex
19
- import shutil
20
19
  import subprocess
21
20
  import sys
22
21
  import tempfile
22
+ import textwrap
23
23
  import time
24
24
  import unittest
25
25
  from fnmatch import fnmatch
@@ -60,6 +60,7 @@ REPO_NAME = "pyobjc"
60
60
  class oc_egg_info(egg_info.egg_info):
61
61
  def run(self):
62
62
  egg_info.egg_info.run(self)
63
+ self.write_build_info()
63
64
 
64
65
  path = os.path.join(self.egg_info, "PKG-INFO")
65
66
  with open(path) as fp:
@@ -84,6 +85,45 @@ class oc_egg_info(egg_info.egg_info):
84
85
  fp.write(middle)
85
86
  fp.write(last)
86
87
 
88
+ def write_build_info(self):
89
+ macos_version = subprocess.check_output(
90
+ ["sw_vers", "-productversion"], text=True
91
+ ).strip()
92
+ macos_build = subprocess.check_output(
93
+ ["sw_vers", "-buildversion"], text=True
94
+ ).strip()
95
+ clang_version = (
96
+ subprocess.check_output(["clang", "--version"], text=True)
97
+ .splitlines()[0]
98
+ .strip()
99
+ )
100
+
101
+ sdk_root = get_sdk()
102
+ if sdk_root is None:
103
+ sdk_root = subprocess.check_output(
104
+ ["xcrun", "-sdk", "macosx", "--show-sdk-path"], text=True
105
+ ).strip()
106
+ sdk_info = os.path.join(sdk_root, "SDKSettings.plist")
107
+ if os.path.exists(sdk_info):
108
+ pl = plistlib.load(open(sdk_info, "rb"))
109
+ sdk_version = pl["DisplayName"]
110
+ else:
111
+ sdk_version = os.path.basename(sdk_root)
112
+
113
+ build_info = textwrap.dedent(
114
+ f"""\
115
+ macOS {macos_version} ({macos_build})
116
+ {clang_version}
117
+ SDK: {sdk_version}
118
+ """
119
+ )
120
+
121
+ self.write_file(
122
+ "pyobjc-build-info.txt",
123
+ os.path.join(self.egg_info, "pyobjc-build-info.txt"),
124
+ build_info,
125
+ )
126
+
87
127
 
88
128
  class oc_test(Command):
89
129
  description = "run test suite"
@@ -97,10 +137,6 @@ class oc_test(Command):
97
137
  self.verbosity = int(self.verbosity)
98
138
 
99
139
  def cleanup_environment(self):
100
- from pkg_resources import add_activation_listener
101
-
102
- add_activation_listener(lambda dist: dist.activate())
103
-
104
140
  ei_cmd = self.get_finalized_command("egg_info")
105
141
  egg_name = ei_cmd.egg_name.replace("-", "_")
106
142
 
@@ -114,12 +150,9 @@ class oc_test(Command):
114
150
  log.info(f"removing installed {dirname!r} from sys.path before testing")
115
151
  sys.path.remove(dirname)
116
152
 
117
- pkg_resources.working_set.__init__()
153
+ importlib.invalidate_caches()
118
154
 
119
155
  def add_project_to_sys_path(self):
120
- from pkg_resources import normalize_path, add_activation_listener
121
- from pkg_resources import working_set, require
122
-
123
156
  self.reinitialize_command("egg_info")
124
157
  self.run_command("egg_info")
125
158
  self.reinitialize_command("build_ext", inplace=1)
@@ -132,20 +165,16 @@ class oc_test(Command):
132
165
  del sys.modules["PyObjCTools"]
133
166
 
134
167
  ei_cmd = self.get_finalized_command("egg_info")
135
- sys.path.insert(0, normalize_path(ei_cmd.egg_base))
168
+ sys.path.insert(0, os.path.abspath(ei_cmd.egg_base))
136
169
  sys.path.insert(1, os.path.dirname(__file__))
137
170
 
138
- add_activation_listener(lambda dist: dist.activate())
139
- working_set.__init__()
140
- require(f"{ei_cmd.egg_name}=={ei_cmd.egg_version}")
171
+ importlib.invalidate_caches()
141
172
 
142
173
  def remove_from_sys_path(self):
143
- from pkg_resources import working_set
144
-
145
174
  sys.path[:] = self.__old_path
146
175
  sys.modules.clear()
147
176
  sys.modules.update(self.__old_modules)
148
- working_set.__init__()
177
+ importlib.invalidate_caches()
149
178
 
150
179
  def run(self):
151
180
  self.cleanup_environment()
@@ -154,7 +183,6 @@ class oc_test(Command):
154
183
  import warnings
155
184
 
156
185
  warnings.simplefilter("error")
157
- warnings.filterwarnings("ignore", message=".*GIL.*", category=RuntimeWarning)
158
186
 
159
187
  try:
160
188
  time_before = time.time()
@@ -195,18 +223,17 @@ Development Status :: 5 - Production/Stable
195
223
  Environment :: Console
196
224
  Environment :: MacOS X :: Cocoa
197
225
  Intended Audience :: Developers
198
- License :: OSI Approved :: MIT License
199
226
  Natural Language :: English
200
227
  Operating System :: MacOS :: MacOS X
201
228
  Programming Language :: Python
202
229
  Programming Language :: Python :: 3
203
230
  Programming Language :: Python :: 3 :: Only
204
- Programming Language :: Python :: 3.8
205
231
  Programming Language :: Python :: 3.9
206
232
  Programming Language :: Python :: 3.10
207
233
  Programming Language :: Python :: 3.11
208
234
  Programming Language :: Python :: 3.12
209
235
  Programming Language :: Python :: 3.13
236
+ Programming Language :: Python :: 3.14
210
237
  Programming Language :: Python :: Implementation :: CPython
211
238
  Programming Language :: Objective C
212
239
  Topic :: Software Development :: Libraries :: Python Modules
@@ -410,28 +437,7 @@ class pyobjc_build_ext(build_ext.build_ext):
410
437
  # in 2.3 and later the headers are in the egg,
411
438
  # before that we ship a copy.
412
439
  if os.path.exists("Modules") and not os.path.isfile("Modules/pyobjc-api.h"):
413
- (dist,) = pkg_resources.require("pyobjc-core")
414
-
415
- include_root = os.path.join(self.build_temp, "pyobjc-include")
416
- if os.path.exists(include_root):
417
- shutil.rmtree(include_root)
418
-
419
- os.makedirs(include_root)
420
- if dist.has_metadata("include"):
421
- for fn in dist.metadata_listdir("include"):
422
- data = dist.get_metadata(f"include/{fn}")
423
- fp = open(os.path.join(include_root, fn), "w")
424
- try:
425
- fp.write(data)
426
- finally:
427
- fp.close()
428
-
429
- else:
430
- raise SystemExit("pyobjc-core egg-info does not include header files")
431
-
432
- for e in self.extensions:
433
- if include_root not in e.include_dirs:
434
- e.include_dirs.append(include_root)
440
+ raise DistutilsError("pyobjc-api.h not included")
435
441
 
436
442
  # Run the actual build
437
443
  build_ext.build_ext.run(self)
@@ -512,8 +518,6 @@ def Extension(*args, **kwds):
512
518
 
513
519
  if get_config_var("Py_GIL_DISABLED"):
514
520
  cflags.append("-DPyObjC_GIL_DISABLED")
515
- if "py_limited_api" in kwds:
516
- del kwds["py_limited_api"]
517
521
 
518
522
  if "extra_compile_args" in kwds:
519
523
  kwds["extra_compile_args"] = kwds["extra_compile_args"] + cflags
@@ -532,8 +536,15 @@ def _sort_key(version):
532
536
  return tuple(int(x) for x in version.split("."))
533
537
 
534
538
 
535
- def setup(min_os_level=None, max_os_level=None, cmdclass=None, **kwds):
539
+ def setup(
540
+ min_os_level=None,
541
+ max_os_level=None,
542
+ cmdclass=None,
543
+ options={}, # noqa: M511, B006
544
+ **kwds,
545
+ ):
536
546
  k = kwds.copy()
547
+ options = options.copy()
537
548
 
538
549
  os_level = get_sdk_level()
539
550
  if os_level is None:
@@ -605,11 +616,7 @@ def setup(min_os_level=None, max_os_level=None, cmdclass=None, **kwds):
605
616
 
606
617
  if "ext_modules" not in k:
607
618
  # No extension modules, can build universal wheel
608
- k["options"] = {"bdist_wheel": {"universal": 1}}
609
-
610
- if "options" in k and "bdist_wheel" in k["options"]:
611
- if get_config_var("Py_GIL_DISABLED"):
612
- del k["options"]["bdist_wheel"]
619
+ options.update({"bdist_wheel": {"universal": 1}})
613
620
 
614
621
  plat_name = "MacOS X"
615
622
  plat_versions = []
@@ -651,6 +658,12 @@ def setup(min_os_level=None, max_os_level=None, cmdclass=None, **kwds):
651
658
  )
652
659
  k["long_description_content_type"] = "text/x-rst; charset=UTF-8"
653
660
 
661
+ if "bdist_wheel" in options:
662
+ # Python 3.13 does not support the limited ABI for C extensions
663
+ # when using a free threaded build.
664
+ if get_config_var("Py_GIL_DISABLED"):
665
+ del options["bdist_wheel"]
666
+
654
667
  _setup(
655
668
  cmdclass=cmdclass,
656
669
  author="Ronald Oussoren",
@@ -660,12 +673,12 @@ def setup(min_os_level=None, max_os_level=None, cmdclass=None, **kwds):
660
673
  package_dir={"": "Lib", "PyObjCTest": "PyObjCTest"},
661
674
  dependency_links=[],
662
675
  package_data={"": ["*.bridgesupport"]},
663
- test_suite="PyObjCTest",
664
676
  zip_safe=False,
665
- license="MIT License",
677
+ license="MIT",
666
678
  classifiers=CLASSIFIERS,
667
- python_requires=">=3.8",
679
+ python_requires=">=3.9",
668
680
  keywords=["PyObjC"] + [p for p in k["packages"] if p not in ("PyObjCTools",)],
681
+ options=options,
669
682
  **k,
670
683
  )
671
684
 
@@ -688,22 +701,28 @@ def importExternalTestCases(pathPattern="test_*.py", root=".", package=None):
688
701
  """
689
702
  Import all unittests in the PyObjC tree starting at 'root'
690
703
  """
704
+
691
705
  testFiles = recursiveGlob(root, pathPattern)
692
706
  testModules = [x[len(root) + 1 : -3].replace("/", ".") for x in testFiles]
693
707
  if package is not None:
694
708
  testModules = [(package + "." + m) for m in testModules]
709
+
695
710
  suites = []
711
+
696
712
  for modName in testModules:
697
713
  try:
698
714
  module = __import__(modName)
699
715
  except ImportError as msg:
700
716
  print(f"SKIP {modName}: {msg}")
701
717
  continue
718
+
702
719
  if "." in modName:
703
720
  for elem in modName.split(".")[1:]:
704
721
  module = getattr(module, elem)
722
+
705
723
  s = unittest.defaultTestLoader.loadTestsFromModule(module)
706
724
  suites.append(s)
725
+
707
726
  return unittest.TestSuite(suites)
708
727
 
709
728
 
@@ -714,4 +733,5 @@ def makeTestSuite():
714
733
  plain_suite = importExternalTestCases(
715
734
  "test_*.py", os.path.join(gTopdir, "PyObjCTest"), package="PyObjCTest"
716
735
  )
736
+
717
737
  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.3.2"
18
+ VERSION = "11.1"
19
19
 
20
20
  setup(
21
21
  name="pyobjc-framework-SensitiveContentAnalysis",
@@ -1,3 +0,0 @@
1
- pyobjc-core>=10.3.2
2
- pyobjc-framework-Cocoa>=10.3.2
3
- pyobjc-framework-Quartz>=10.3.2
@@ -1 +0,0 @@
1
- """ test suite """