pyobjc-framework-SpriteKit 12.2.1__tar.gz → 13.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.
- {pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/Lib/SpriteKit/_metadata.py +7 -7
- {pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/Lib/pyobjc_framework_SpriteKit.egg-info/PKG-INFO +6 -6
- {pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/Lib/pyobjc_framework_SpriteKit.egg-info/SOURCES.txt +2 -2
- pyobjc_framework_spritekit-13.0/Lib/pyobjc_framework_SpriteKit.egg-info/pyobjc-build-info.txt +3 -0
- pyobjc_framework_spritekit-13.0/Lib/pyobjc_framework_SpriteKit.egg-info/requires.txt +3 -0
- {pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/Modules/_SpriteKit.m +56 -38
- {pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/Modules/_SpriteKit_protocols.m +7 -5
- {pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/Modules/pyobjc-api.h +18 -4
- {pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/Modules/pyobjc-compat.h +0 -18
- {pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/PKG-INFO +6 -6
- {pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/PyObjCTest/test_sk3dnode.py +1 -1
- {pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/PyObjCTest/test_skaction.py +4 -9
- {pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/PyObjCTest/test_skattribute.py +1 -4
- {pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/PyObjCTest/test_skconstraint.py +1 -1
- {pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/PyObjCTest/test_skeffectnode.py +2 -3
- {pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/PyObjCTest/test_skemitternode.py +1 -3
- {pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/PyObjCTest/test_skfieldnode.py +1 -1
- {pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/PyObjCTest/test_skkeyframesequence.py +2 -4
- {pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/PyObjCTest/test_sklabelnode.py +3 -6
- {pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/PyObjCTest/test_sklightnode.py +1 -1
- {pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/PyObjCTest/test_skmutabletexture.py +1 -1
- {pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/PyObjCTest/test_sknode.py +3 -7
- {pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/PyObjCTest/test_skphysicsbody.py +2 -6
- {pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/PyObjCTest/test_skphysicsjoint.py +2 -3
- {pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/PyObjCTest/test_skphysicsworld.py +4 -5
- {pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/PyObjCTest/test_skregion.py +1 -1
- {pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/PyObjCTest/test_skrenderer.py +1 -1
- {pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/PyObjCTest/test_skscene.py +3 -6
- {pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/PyObjCTest/test_skshapenode.py +1 -1
- {pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/PyObjCTest/test_skspritenode.py +1 -1
- {pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/PyObjCTest/test_sktexture.py +3 -7
- {pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/PyObjCTest/test_sktextureatlas.py +2 -3
- {pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/PyObjCTest/test_sktiledefinition.py +2 -5
- {pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/PyObjCTest/test_sktileset.py +27 -29
- {pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/PyObjCTest/test_sktransformnode.py +1 -1
- {pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/PyObjCTest/test_sktransition.py +3 -7
- {pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/PyObjCTest/test_skuniform.py +1 -4
- {pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/PyObjCTest/test_skversion.py +1 -1
- {pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/PyObjCTest/test_skview.py +6 -6
- {pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/PyObjCTest/test_skwarpgeometry.py +44 -0
- {pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/PyObjCTest/test_snode_nsaccessibility.py +1 -1
- {pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/metadata/SpriteKit.fwinfo +0 -139
- pyobjc_framework_spritekit-12.2.1/metadata/raw/arm64-26.5.fwinfo → pyobjc_framework_spritekit-13.0/metadata/raw/arm64-27.fwinfo +33 -34
- pyobjc_framework_spritekit-12.2.1/metadata/raw/x86_64-26.5.fwinfo → pyobjc_framework_spritekit-13.0/metadata/raw/x86_64-27.fwinfo +33 -34
- {pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/pyobjc_setup.py +7 -7
- {pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/setup.py +1 -1
- pyobjc_framework_spritekit-12.2.1/Lib/pyobjc_framework_SpriteKit.egg-info/pyobjc-build-info.txt +0 -3
- pyobjc_framework_spritekit-12.2.1/Lib/pyobjc_framework_SpriteKit.egg-info/requires.txt +0 -3
- {pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/Lib/SpriteKit/__init__.py +0 -0
- {pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/Lib/pyobjc_framework_SpriteKit.egg-info/dependency_links.txt +0 -0
- {pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/Lib/pyobjc_framework_SpriteKit.egg-info/not-zip-safe +0 -0
- {pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/Lib/pyobjc_framework_SpriteKit.egg-info/top_level.txt +0 -0
- {pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/License.txt +0 -0
- {pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/MANIFEST.in +0 -0
- {pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/PyObjCTest/__init__.py +0 -0
- {pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/PyObjCTest/test_spritekit.py +0 -0
- {pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/metadata/metadata.ini +0 -0
- {pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/pyproject.toml +0 -0
- {pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/setup.cfg +0 -0
{pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/Lib/SpriteKit/_metadata.py
RENAMED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
# This file is generated by objective.metadata
|
|
2
2
|
#
|
|
3
|
-
# Last update: Fri May 29 08:22:43 2026
|
|
4
|
-
#
|
|
5
3
|
# flake8: noqa
|
|
6
4
|
|
|
7
5
|
import objc, sys
|
|
@@ -570,11 +568,7 @@ try:
|
|
|
570
568
|
r(
|
|
571
569
|
b"SKNode",
|
|
572
570
|
b"nodeWithFileNamed:securelyWithClasses:andError:",
|
|
573
|
-
{
|
|
574
|
-
"arguments": {
|
|
575
|
-
4: {"null_accepted": True, "type_modifier": b"o", "name": "error"}
|
|
576
|
-
}
|
|
577
|
-
},
|
|
571
|
+
{"arguments": {4: {"type_modifier": b"o"}}},
|
|
578
572
|
)
|
|
579
573
|
r(
|
|
580
574
|
b"SKNode",
|
|
@@ -1350,5 +1344,11 @@ expressions = {
|
|
|
1350
1344
|
"SKTileAdjacencyUpperRightEdge": "SKTileAdjacencyDown | SKTileAdjacencyLowerLeft | SKTileAdjacencyLeft",
|
|
1351
1345
|
"SKTileAdjacencyLowerLeftCorner": "SKTileAdjacencyUp | SKTileAdjacencyRight | SKTileAdjacencyLowerRight | SKTileAdjacencyDown | SKTileAdjacencyLowerLeft | SKTileAdjacencyLeft | SKTileAdjacencyUpperLeft",
|
|
1352
1346
|
}
|
|
1347
|
+
formal_protocols = {
|
|
1348
|
+
"SKPhysicsContactDelegate": "SKPhysicsContactDelegate",
|
|
1349
|
+
"SKSceneDelegate": "SKSceneDelegate",
|
|
1350
|
+
"SKViewDelegate": "SKViewDelegate",
|
|
1351
|
+
"SKWarpable": "SKWarpable",
|
|
1352
|
+
}
|
|
1353
1353
|
|
|
1354
1354
|
# END OF FILE
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pyobjc-framework-SpriteKit
|
|
3
|
-
Version:
|
|
3
|
+
Version: 13.0
|
|
4
4
|
Summary: Wrappers for the framework SpriteKit on macOS
|
|
5
5
|
Home-page: https://github.com/ronaldoussoren/pyobjc
|
|
6
6
|
Author: Ronald Oussoren
|
|
@@ -17,22 +17,22 @@ 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.10
|
|
21
20
|
Classifier: Programming Language :: Python :: 3.11
|
|
22
21
|
Classifier: Programming Language :: Python :: 3.12
|
|
23
22
|
Classifier: Programming Language :: Python :: 3.13
|
|
24
23
|
Classifier: Programming Language :: Python :: 3.14
|
|
25
24
|
Classifier: Programming Language :: Python :: 3.15
|
|
25
|
+
Classifier: Programming Language :: Python :: 3.16
|
|
26
26
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
27
27
|
Classifier: Programming Language :: Python :: Free Threading :: 3 - Stable
|
|
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.
|
|
31
|
+
Requires-Python: >=3.11
|
|
32
32
|
Description-Content-Type: text/x-rst; charset=UTF-8
|
|
33
|
-
Requires-Dist: pyobjc-core>=
|
|
34
|
-
Requires-Dist: pyobjc-framework-Cocoa>=
|
|
35
|
-
Requires-Dist: pyobjc-framework-Quartz>=
|
|
33
|
+
Requires-Dist: pyobjc-core>=13.0
|
|
34
|
+
Requires-Dist: pyobjc-framework-Cocoa>=13.0
|
|
35
|
+
Requires-Dist: pyobjc-framework-Quartz>=13.0
|
|
36
36
|
Dynamic: author
|
|
37
37
|
Dynamic: author-email
|
|
38
38
|
Dynamic: classifier
|
|
@@ -2,15 +2,20 @@
|
|
|
2
2
|
#include "Python.h"
|
|
3
3
|
#include "pyobjc-api.h"
|
|
4
4
|
|
|
5
|
+
#ifdef USE_STATIC_ANALYZER
|
|
6
|
+
#include "../../pyobjc-core/Modules/objc/python-api-used.h"
|
|
7
|
+
#endif
|
|
8
|
+
|
|
5
9
|
#include <objc/objc-runtime.h>
|
|
6
10
|
|
|
7
11
|
#import <SpriteKit/SpriteKit.h>
|
|
8
12
|
|
|
9
13
|
#include "_SpriteKit_protocols.m"
|
|
10
14
|
|
|
15
|
+
NS_ASSUME_NONNULL_BEGIN
|
|
16
|
+
|
|
11
17
|
#if PyObjC_BUILD_RELEASE >= 1012
|
|
12
|
-
static vector_float2*
|
|
13
|
-
parse_v2f_array(NSInteger vertexCount, PyObject* value)
|
|
18
|
+
static vector_float2* _Nullable parse_v2f_array(NSInteger vertexCount, PyObject* value)
|
|
14
19
|
{
|
|
15
20
|
vector_float2* result;
|
|
16
21
|
NSInteger i;
|
|
@@ -24,17 +29,21 @@ parse_v2f_array(NSInteger vertexCount, PyObject* value)
|
|
|
24
29
|
return NULL;
|
|
25
30
|
}
|
|
26
31
|
|
|
27
|
-
result =
|
|
28
|
-
if (result == NULL) {
|
|
32
|
+
result = PyMem_Calloc(vertexCount, sizeof(vector_float2));
|
|
33
|
+
if (result == NULL) { // LCOV_BR_EXCL_LINE
|
|
34
|
+
// LCOV_EXCL_START
|
|
29
35
|
PyErr_NoMemory();
|
|
30
36
|
return NULL;
|
|
37
|
+
// LCOV_EXCL_STOP
|
|
31
38
|
}
|
|
32
39
|
|
|
33
40
|
for (i = 0; i < vertexCount; i++) {
|
|
34
41
|
PyObject* item = PySequence_GetItem(value, i);
|
|
35
|
-
if (item == NULL) {
|
|
42
|
+
if (item == NULL) { // LCOV_BR_EXCL_LINE
|
|
43
|
+
// LCOV_EXCL_START
|
|
36
44
|
PyMem_Free(result);
|
|
37
45
|
return NULL;
|
|
46
|
+
// LCOV_EXCL_STOP
|
|
38
47
|
}
|
|
39
48
|
if (PyObjC_PythonToObjC("<2f>", item, result + i) == -1) {
|
|
40
49
|
Py_DECREF(item);
|
|
@@ -89,12 +98,17 @@ static PyObject* _Nullable mod_SKWarpGeometryGrid_xWithColumns_rows_sourcePositi
|
|
|
89
98
|
}
|
|
90
99
|
}
|
|
91
100
|
|
|
92
|
-
if (PyObjC_PythonToObjC(@encode(id), self, &super.receiver)
|
|
93
|
-
|
|
94
|
-
|
|
101
|
+
if (PyObjC_PythonToObjC(@encode(id), self, &super.receiver)
|
|
102
|
+
== -1) { // LCOV_BR_EXCL_LINE
|
|
103
|
+
// LCOV_EXCL_START
|
|
104
|
+
if (srcPos != NULL)
|
|
105
|
+
PyMem_Free(srcPos);
|
|
106
|
+
if (dstPos != NULL)
|
|
107
|
+
PyMem_Free(dstPos);
|
|
95
108
|
return NULL;
|
|
109
|
+
// LCOV_EXCL_STOP
|
|
96
110
|
}
|
|
97
|
-
super.super_class = object_getClass(super.receiver);
|
|
111
|
+
super.super_class = (Class _Nonnull)object_getClass(super.receiver);
|
|
98
112
|
|
|
99
113
|
SEL sel = PyObjCSelector_GetSelector(method);
|
|
100
114
|
|
|
@@ -104,9 +118,9 @@ static PyObject* _Nullable mod_SKWarpGeometryGrid_xWithColumns_rows_sourcePositi
|
|
|
104
118
|
vector_float2*))objc_msgSendSuper)(&super, sel, rows, columns,
|
|
105
119
|
srcPos, dstPos);
|
|
106
120
|
|
|
107
|
-
} @catch (NSException* localException) {
|
|
108
|
-
NSLog(@"failed with %@", localException);
|
|
109
|
-
PyObjCErr_FromObjC(localException);
|
|
121
|
+
} @catch (NSException* localException) { // LCOV_EXCL_LINE
|
|
122
|
+
NSLog(@"failed with %@", localException); // LCOV_EXCL_LINE
|
|
123
|
+
PyObjCErr_FromObjC(localException); // LCOV_EXCL_LINE
|
|
110
124
|
}
|
|
111
125
|
Py_END_ALLOW_THREADS
|
|
112
126
|
|
|
@@ -117,8 +131,8 @@ static PyObject* _Nullable mod_SKWarpGeometryGrid_xWithColumns_rows_sourcePositi
|
|
|
117
131
|
PyMem_Free(dstPos);
|
|
118
132
|
}
|
|
119
133
|
|
|
120
|
-
if (PyErr_Occurred()) {
|
|
121
|
-
return NULL;
|
|
134
|
+
if (PyErr_Occurred()) { // LCOV_BR_EXCL_LINE
|
|
135
|
+
return NULL; // LCOV_EXCL_LINE
|
|
122
136
|
}
|
|
123
137
|
|
|
124
138
|
return PyObjC_IdToPython(rv);
|
|
@@ -139,13 +153,13 @@ static PyObject* _Nullable mod_SKWarpGeometryGrid_gridByReplacingPositions_(
|
|
|
139
153
|
Py_BEGIN_ALLOW_THREADS
|
|
140
154
|
@try {
|
|
141
155
|
vertexCount = [(SKWarpGeometryGrid*)PyObjCObject_GetObject(self) vertexCount];
|
|
142
|
-
} @catch (NSException* localException) {
|
|
143
|
-
PyObjCErr_FromObjC(localException);
|
|
156
|
+
} @catch (NSException* localException) { // LCOV_EXCL_LINE
|
|
157
|
+
PyObjCErr_FromObjC(localException); // LCOV_EXCL_LINE
|
|
144
158
|
}
|
|
145
159
|
Py_END_ALLOW_THREADS
|
|
146
160
|
|
|
147
|
-
if (PyErr_Occurred()) {
|
|
148
|
-
return NULL;
|
|
161
|
+
if (PyErr_Occurred()) { // LCOV_BR_EXCL_LINE
|
|
162
|
+
return NULL; // LCOV_EXCL_LINE
|
|
149
163
|
}
|
|
150
164
|
|
|
151
165
|
/* Not Nullable */
|
|
@@ -154,11 +168,14 @@ static PyObject* _Nullable mod_SKWarpGeometryGrid_gridByReplacingPositions_(
|
|
|
154
168
|
return NULL;
|
|
155
169
|
}
|
|
156
170
|
|
|
157
|
-
if (PyObjC_PythonToObjC(@encode(id), self, &super.receiver)
|
|
171
|
+
if (PyObjC_PythonToObjC(@encode(id), self, &super.receiver)
|
|
172
|
+
== -1) { // LCOV_BR_EXCL_LINE
|
|
173
|
+
// LCOV_EXCL_START
|
|
158
174
|
PyMem_Free(pos);
|
|
159
175
|
return NULL;
|
|
176
|
+
// LCOV_EXCL_STOP
|
|
160
177
|
}
|
|
161
|
-
super.super_class = object_getClass(super.receiver);
|
|
178
|
+
super.super_class = (Class _Nonnull)object_getClass(super.receiver);
|
|
162
179
|
|
|
163
180
|
SEL sel = PyObjCSelector_GetSelector(method);
|
|
164
181
|
|
|
@@ -167,17 +184,17 @@ static PyObject* _Nullable mod_SKWarpGeometryGrid_gridByReplacingPositions_(
|
|
|
167
184
|
rv = ((id (*)(struct objc_super*, SEL, vector_float2*))objc_msgSendSuper)(
|
|
168
185
|
&super, sel, pos);
|
|
169
186
|
|
|
170
|
-
} @catch (NSException* localException) {
|
|
171
|
-
PyObjCErr_FromObjC(localException);
|
|
187
|
+
} @catch (NSException* localException) { // LCOV_EXCL_LINE
|
|
188
|
+
PyObjCErr_FromObjC(localException); // LCOV_EXCL_LINE
|
|
172
189
|
}
|
|
173
190
|
Py_END_ALLOW_THREADS
|
|
174
191
|
|
|
175
|
-
if (pos != NULL) {
|
|
192
|
+
if (pos != NULL) { // LCOV_BR_EXCL_LINE
|
|
176
193
|
PyMem_Free(pos);
|
|
177
194
|
}
|
|
178
195
|
|
|
179
|
-
if (PyErr_Occurred()) {
|
|
180
|
-
return NULL;
|
|
196
|
+
if (PyErr_Occurred()) { // LCOV_BR_EXCL_LINE
|
|
197
|
+
return NULL; // LCOV_EXCL_LINE
|
|
181
198
|
}
|
|
182
199
|
|
|
183
200
|
return PyObjC_IdToPython(rv);
|
|
@@ -192,19 +209,19 @@ static PyMethodDef mod_methods[] = {
|
|
|
192
209
|
static int
|
|
193
210
|
mod_exec_module(PyObject* m)
|
|
194
211
|
{
|
|
195
|
-
if (PyObjC_ImportAPI(m) == -1)
|
|
196
|
-
return -1;
|
|
212
|
+
if (PyObjC_ImportAPI(m) == -1) // LCOV_BR_EXCL_LINE
|
|
213
|
+
return -1; // LCOV_EXCL_LINE
|
|
197
214
|
|
|
198
215
|
#if PyObjC_BUILD_RELEASE >= 1012
|
|
199
216
|
Class classSKWarpGeometryGrid = objc_lookUpClass("SKWarpGeometryGrid");
|
|
200
|
-
if (classSKWarpGeometryGrid != NULL) {
|
|
217
|
+
if (classSKWarpGeometryGrid != NULL) { // LCOV_BR_EXCL_LINE
|
|
201
218
|
if (PyObjC_RegisterMethodMapping(
|
|
202
219
|
classSKWarpGeometryGrid,
|
|
203
220
|
@selector(gridWithColumns:rows:sourcePositions:destPositions:),
|
|
204
221
|
mod_SKWarpGeometryGrid_xWithColumns_rows_sourcePositions_destPositions_,
|
|
205
222
|
PyObjCUnsupportedMethod_IMP)
|
|
206
|
-
== -1) {
|
|
207
|
-
return -1;
|
|
223
|
+
== -1) { // LCOV_BR_EXCL_LINE
|
|
224
|
+
return -1; // LCOV_EXCL_LINE
|
|
208
225
|
}
|
|
209
226
|
|
|
210
227
|
if (PyObjC_RegisterMethodMapping(
|
|
@@ -212,24 +229,24 @@ mod_exec_module(PyObject* m)
|
|
|
212
229
|
@selector(initWithColumns:rows:sourcePositions:destPositions:),
|
|
213
230
|
mod_SKWarpGeometryGrid_xWithColumns_rows_sourcePositions_destPositions_,
|
|
214
231
|
PyObjCUnsupportedMethod_IMP)
|
|
215
|
-
== -1) {
|
|
216
|
-
return -1;
|
|
232
|
+
== -1) { // LCOV_BR_EXCL_LINE
|
|
233
|
+
return -1; // LCOV_EXCL_LINE
|
|
217
234
|
}
|
|
218
235
|
|
|
219
236
|
if (PyObjC_RegisterMethodMapping(classSKWarpGeometryGrid,
|
|
220
237
|
@selector(gridByReplacingSourcePositions:),
|
|
221
238
|
mod_SKWarpGeometryGrid_gridByReplacingPositions_,
|
|
222
239
|
PyObjCUnsupportedMethod_IMP)
|
|
223
|
-
== -1) {
|
|
224
|
-
return -1;
|
|
240
|
+
== -1) { // LCOV_BR_EXCL_LINE
|
|
241
|
+
return -1; // LCOV_EXCL_LINE
|
|
225
242
|
}
|
|
226
243
|
|
|
227
244
|
if (PyObjC_RegisterMethodMapping(classSKWarpGeometryGrid,
|
|
228
245
|
@selector(gridByReplacingDestPositions:),
|
|
229
246
|
mod_SKWarpGeometryGrid_gridByReplacingPositions_,
|
|
230
247
|
PyObjCUnsupportedMethod_IMP)
|
|
231
|
-
== -1) {
|
|
232
|
-
return -1;
|
|
248
|
+
== -1) { // LCOV_BR_EXCL_LINE
|
|
249
|
+
return -1; // LCOV_EXCL_LINE
|
|
233
250
|
}
|
|
234
251
|
}
|
|
235
252
|
#endif
|
|
@@ -268,10 +285,11 @@ static struct PyModuleDef mod_module = {
|
|
|
268
285
|
.m_free = NULL,
|
|
269
286
|
};
|
|
270
287
|
|
|
271
|
-
PyObject* PyInit__SpriteKit(void);
|
|
288
|
+
PyObject* _Nullable PyInit__SpriteKit(void);
|
|
272
289
|
|
|
273
|
-
PyObject* __attribute__((__visibility__("default")))
|
|
290
|
+
PyObject* _Nullable __attribute__((__visibility__("default")))
|
|
274
291
|
PyInit__SpriteKit(void)
|
|
275
292
|
{
|
|
276
293
|
return PyModuleDef_Init(&mod_module);
|
|
277
294
|
}
|
|
295
|
+
NS_ASSUME_NONNULL_END
|
{pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/Modules/_SpriteKit_protocols.m
RENAMED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
*/
|
|
1
|
+
// LCOV_EXCL_START
|
|
2
|
+
// This function is only present to ensure protocols are
|
|
3
|
+
// available at runtime.
|
|
4
|
+
NS_ASSUME_NONNULL_BEGIN
|
|
6
5
|
|
|
7
6
|
static void __attribute__((__used__))
|
|
8
7
|
use_protocols(void)
|
|
@@ -19,3 +18,6 @@ use_protocols(void)
|
|
|
19
18
|
Py_XDECREF(p);
|
|
20
19
|
#endif
|
|
21
20
|
}
|
|
21
|
+
|
|
22
|
+
NS_ASSUME_NONNULL_END
|
|
23
|
+
// LCOV_EXCL_STOP
|
|
@@ -60,6 +60,11 @@ typedef int(RegisterMethodMappingFunctionType)(
|
|
|
60
60
|
PyObject* _Nonnull const* _Nonnull, size_t),
|
|
61
61
|
IMP _Nullable (*_Nonnull)(PyObject* _Nonnull, PyObject* _Nonnull));
|
|
62
62
|
|
|
63
|
+
#ifndef PyObjC_FUNCTION_CALL_H
|
|
64
|
+
typedef PyObject* _Nullable (*PyObjC_FunctionCallFunc)(
|
|
65
|
+
PyObject* meth, PyObject* _Nonnull const* _Nonnull args, size_t nargs);
|
|
66
|
+
#endif
|
|
67
|
+
|
|
63
68
|
struct pyobjc_api {
|
|
64
69
|
int api_version; /* API version */
|
|
65
70
|
size_t struct_len; /* Length of this struct */
|
|
@@ -117,6 +122,9 @@ struct pyobjc_api {
|
|
|
117
122
|
|
|
118
123
|
PyObject* _Nullable (*_Nonnull createopaquepointertype)(const char*, const char*,
|
|
119
124
|
const char*);
|
|
125
|
+
int (*_Nonnull register_functioncaller)(void*, PyObjC_FunctionCallFunc);
|
|
126
|
+
PyObject* _Nullable (*_Nonnull create_registered_struct)(
|
|
127
|
+
const char*, Py_ssize_t, const char* _Nonnull* _Nullable, Py_ssize_t*);
|
|
120
128
|
};
|
|
121
129
|
|
|
122
130
|
#ifndef PYOBJC_BUILD
|
|
@@ -159,6 +167,8 @@ static struct pyobjc_api* PyObjC_API;
|
|
|
159
167
|
#define PyObjC_CheckArgCount (PyObjC_API->checkargcount)
|
|
160
168
|
#define PyObjC_CheckNoKwnames (PyObjC_API->checknokwnames)
|
|
161
169
|
#define PyObjCCreateOpaquePointerType (PyObjC_API->createopaquepointertype)
|
|
170
|
+
#define PyObjCRegister_FunctionCaller (PyObjC_API->register_functioncaller)
|
|
171
|
+
#define PyObjC_CreateRegisteredStruct (PyObjC_API->create_registered_struct)
|
|
162
172
|
|
|
163
173
|
typedef void (*PyObjC_Function_Pointer)(void);
|
|
164
174
|
typedef struct PyObjC_function_map {
|
|
@@ -178,21 +188,25 @@ static inline int
|
|
|
178
188
|
PyObjC_ImportAPI(PyObject* calling_module)
|
|
179
189
|
{
|
|
180
190
|
PyObjC_API = (struct pyobjc_api*)PyCapsule_Import("objc." PYOBJC_API_NAME, 0);
|
|
181
|
-
if (PyObjC_API == NULL) {
|
|
182
|
-
return -1;
|
|
191
|
+
if (PyObjC_API == NULL) { // LCOV_BR_EXCL_LINE
|
|
192
|
+
return -1; // LCOV_EXCL_LINE
|
|
183
193
|
}
|
|
184
|
-
if (PyObjC_API->api_version != PYOBJC_API_VERSION) {
|
|
194
|
+
if (PyObjC_API->api_version != PYOBJC_API_VERSION) { // LCOV_BR_EXCL_LINE
|
|
195
|
+
// LCOV_EXCL_START
|
|
185
196
|
PyErr_Format(PyExc_RuntimeError,
|
|
186
197
|
"Wrong version of PyObjC C API (got %d, expected %d)",
|
|
187
198
|
(int)PyObjC_API->api_version, (int)PYOBJC_API_VERSION);
|
|
188
199
|
return -1;
|
|
200
|
+
// LCOV_EXCL_STOP
|
|
189
201
|
}
|
|
190
202
|
|
|
191
|
-
if (PyObjC_API->struct_len < PyObjC_EXPECTED_STRUCT_SIZE) {
|
|
203
|
+
if (PyObjC_API->struct_len < PyObjC_EXPECTED_STRUCT_SIZE) { // LCOV_EXCL_LINE
|
|
204
|
+
// LCOV_EXCL_START
|
|
192
205
|
PyErr_Format(PyExc_RuntimeError,
|
|
193
206
|
"Wrong struct-size of PyObjC C API (got %d, expected %d)",
|
|
194
207
|
(int)PyObjC_API->struct_len, (int)sizeof(struct pyobjc_api));
|
|
195
208
|
return -1;
|
|
209
|
+
// LCOV_EXCL_STOP
|
|
196
210
|
}
|
|
197
211
|
|
|
198
212
|
/* Current pyobjc implementation doesn't allow deregistering
|
{pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/Modules/pyobjc-compat.h
RENAMED
|
@@ -167,24 +167,6 @@ _PyObjCTuple_GetItem(PyObject* tuple, Py_ssize_t idx)
|
|
|
167
167
|
PyGILState_Release(_GILState); \
|
|
168
168
|
} while (0)
|
|
169
169
|
|
|
170
|
-
#if PY_VERSION_HEX < 0x030a0000
|
|
171
|
-
|
|
172
|
-
static inline PyObject*
|
|
173
|
-
Py_NewRef(PyObject* o)
|
|
174
|
-
{
|
|
175
|
-
Py_INCREF(o);
|
|
176
|
-
return o;
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
static inline PyObject*
|
|
180
|
-
Py_XNewRef(PyObject* o)
|
|
181
|
-
{
|
|
182
|
-
Py_XINCREF(o);
|
|
183
|
-
return o;
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
#endif /* PY_VERSION_HEX < 0x030a0000 */
|
|
187
|
-
|
|
188
170
|
#if PY_VERSION_HEX < 0x030d0000
|
|
189
171
|
#define Py_BEGIN_CRITICAL_SECTION(value) \
|
|
190
172
|
{ \
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pyobjc-framework-SpriteKit
|
|
3
|
-
Version:
|
|
3
|
+
Version: 13.0
|
|
4
4
|
Summary: Wrappers for the framework SpriteKit on macOS
|
|
5
5
|
Home-page: https://github.com/ronaldoussoren/pyobjc
|
|
6
6
|
Author: Ronald Oussoren
|
|
@@ -17,22 +17,22 @@ 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.10
|
|
21
20
|
Classifier: Programming Language :: Python :: 3.11
|
|
22
21
|
Classifier: Programming Language :: Python :: 3.12
|
|
23
22
|
Classifier: Programming Language :: Python :: 3.13
|
|
24
23
|
Classifier: Programming Language :: Python :: 3.14
|
|
25
24
|
Classifier: Programming Language :: Python :: 3.15
|
|
25
|
+
Classifier: Programming Language :: Python :: 3.16
|
|
26
26
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
27
27
|
Classifier: Programming Language :: Python :: Free Threading :: 3 - Stable
|
|
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.
|
|
31
|
+
Requires-Python: >=3.11
|
|
32
32
|
Description-Content-Type: text/x-rst; charset=UTF-8
|
|
33
|
-
Requires-Dist: pyobjc-core>=
|
|
34
|
-
Requires-Dist: pyobjc-framework-Cocoa>=
|
|
35
|
-
Requires-Dist: pyobjc-framework-Quartz>=
|
|
33
|
+
Requires-Dist: pyobjc-core>=13.0
|
|
34
|
+
Requires-Dist: pyobjc-framework-Cocoa>=13.0
|
|
35
|
+
Requires-Dist: pyobjc-framework-Quartz>=13.0
|
|
36
36
|
Dynamic: author
|
|
37
37
|
Dynamic: author-email
|
|
38
38
|
Dynamic: classifier
|
{pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/PyObjCTest/test_skaction.py
RENAMED
|
@@ -2,23 +2,18 @@ import objc
|
|
|
2
2
|
from PyObjCTools.TestSupport import TestCase, min_os_level, expectedFailure
|
|
3
3
|
import SpriteKit
|
|
4
4
|
|
|
5
|
-
|
|
6
5
|
SKActionTimingFunction = objc._C_FLT + objc._C_FLT
|
|
7
6
|
|
|
8
7
|
|
|
9
8
|
class TestSKAction(TestCase):
|
|
10
|
-
def
|
|
9
|
+
def test_enums(self):
|
|
11
10
|
self.assertIsEnumType(SpriteKit.SKActionTimingMode)
|
|
12
|
-
|
|
13
|
-
@min_os_level("10.9")
|
|
14
|
-
def testConstants(self):
|
|
15
11
|
self.assertEqual(SpriteKit.SKActionTimingLinear, 0)
|
|
16
12
|
self.assertEqual(SpriteKit.SKActionTimingEaseIn, 1)
|
|
17
13
|
self.assertEqual(SpriteKit.SKActionTimingEaseOut, 2)
|
|
18
14
|
self.assertEqual(SpriteKit.SKActionTimingEaseInEaseOut, 3)
|
|
19
15
|
|
|
20
|
-
|
|
21
|
-
def testMethods(self):
|
|
16
|
+
def test_methods(self):
|
|
22
17
|
self.assertIsInstance(SpriteKit.SKAction, objc.objc_class)
|
|
23
18
|
|
|
24
19
|
self.assertArgIsBOOL(
|
|
@@ -48,12 +43,12 @@ class TestSKAction(TestCase):
|
|
|
48
43
|
)
|
|
49
44
|
|
|
50
45
|
@expectedFailure
|
|
51
|
-
def
|
|
46
|
+
def test_methods_dispatch(self):
|
|
52
47
|
self.fail("SpriteKit.SKAction.runBlock_queue_")
|
|
53
48
|
self.fail("SpriteKit.SKAction.runBlock_")
|
|
54
49
|
|
|
55
50
|
@min_os_level("10.10")
|
|
56
|
-
def
|
|
51
|
+
def test_methods10_10(self):
|
|
57
52
|
self.assertArgIsBOOL(
|
|
58
53
|
SpriteKit.SKAction.followPath_asOffset_orientToPath_speed_, 1
|
|
59
54
|
)
|
{pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/PyObjCTest/test_skattribute.py
RENAMED
|
@@ -5,11 +5,8 @@ from objc import simd
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
class TestSKAttribute(TestCase):
|
|
8
|
-
def
|
|
8
|
+
def test_enums(self):
|
|
9
9
|
self.assertIsEnumType(SpriteKit.SKAttributeType)
|
|
10
|
-
|
|
11
|
-
@min_os_level("10.11")
|
|
12
|
-
def testConstants(self):
|
|
13
10
|
self.assertEqual(SpriteKit.SKAttributeTypeNone, 0)
|
|
14
11
|
self.assertEqual(SpriteKit.SKAttributeTypeFloat, 1)
|
|
15
12
|
self.assertEqual(SpriteKit.SKAttributeTypeVectorFloat2, 2)
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
from PyObjCTools.TestSupport import TestCase
|
|
1
|
+
from PyObjCTools.TestSupport import TestCase
|
|
2
2
|
|
|
3
3
|
import SpriteKit
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
class TestSKEffectNode(TestCase):
|
|
7
|
-
|
|
8
|
-
def testMethods(self):
|
|
7
|
+
def test_methods(self):
|
|
9
8
|
self.assertArgIsBOOL(SpriteKit.SKEffectNode.setShouldCenterFilter_, 0)
|
|
10
9
|
self.assertResultIsBOOL(SpriteKit.SKEffectNode.shouldCenterFilter)
|
|
11
10
|
self.assertArgIsBOOL(SpriteKit.SKEffectNode.setShouldEnableEffects_, 0)
|
|
@@ -4,10 +4,8 @@ import SpriteKit
|
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
class TestSKEmitterNode(TestCase):
|
|
7
|
-
def
|
|
7
|
+
def test_enums(self):
|
|
8
8
|
self.assertIsEnumType(SpriteKit.SKParticleRenderOrder)
|
|
9
|
-
|
|
10
|
-
def test_constants(self):
|
|
11
9
|
self.assertEqual(SpriteKit.SKParticleRenderOrderOldestLast, 0)
|
|
12
10
|
self.assertEqual(SpriteKit.SKParticleRenderOrderOldestFirst, 1)
|
|
13
11
|
self.assertEqual(SpriteKit.SKParticleRenderOrderDontCare, 2)
|
{pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/PyObjCTest/test_skfieldnode.py
RENAMED
|
@@ -6,7 +6,7 @@ from objc import simd
|
|
|
6
6
|
|
|
7
7
|
class TestSKFieldNode(TestCase):
|
|
8
8
|
@min_os_level("10.10")
|
|
9
|
-
def
|
|
9
|
+
def test_methods(self):
|
|
10
10
|
self.assertArgIsBOOL(SpriteKit.SKFieldNode.setEnabled_, 0)
|
|
11
11
|
self.assertResultIsBOOL(SpriteKit.SKFieldNode.isEnabled)
|
|
12
12
|
self.assertArgIsBOOL(SpriteKit.SKFieldNode.setExclusive_, 0)
|
|
@@ -4,14 +4,12 @@ import SpriteKit
|
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
class TestSKKeyframeSequence(TestCase):
|
|
7
|
-
def
|
|
7
|
+
def test_enums(self):
|
|
8
8
|
self.assertIsEnumType(SpriteKit.SKInterpolationMode)
|
|
9
|
-
self.assertIsEnumType(SpriteKit.SKRepeatMode)
|
|
10
|
-
|
|
11
|
-
def testConstants(self):
|
|
12
9
|
self.assertEqual(SpriteKit.SKInterpolationModeLinear, 1)
|
|
13
10
|
self.assertEqual(SpriteKit.SKInterpolationModeSpline, 2)
|
|
14
11
|
self.assertEqual(SpriteKit.SKInterpolationModeStep, 3)
|
|
15
12
|
|
|
13
|
+
self.assertIsEnumType(SpriteKit.SKRepeatMode)
|
|
16
14
|
self.assertEqual(SpriteKit.SKRepeatModeClamp, 1)
|
|
17
15
|
self.assertEqual(SpriteKit.SKRepeatModeLoop, 2)
|
{pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/PyObjCTest/test_sklabelnode.py
RENAMED
|
@@ -1,20 +1,17 @@
|
|
|
1
|
-
from PyObjCTools.TestSupport import TestCase
|
|
1
|
+
from PyObjCTools.TestSupport import TestCase
|
|
2
2
|
|
|
3
3
|
import SpriteKit
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
class TestSKKeyframeSequence(TestCase):
|
|
7
|
-
def
|
|
8
|
-
self.assertIsEnumType(SpriteKit.SKLabelHorizontalAlignmentMode)
|
|
7
|
+
def test_enums(self):
|
|
9
8
|
self.assertIsEnumType(SpriteKit.SKLabelVerticalAlignmentMode)
|
|
10
|
-
|
|
11
|
-
@min_os_level("10.9")
|
|
12
|
-
def testConstants(self):
|
|
13
9
|
self.assertEqual(SpriteKit.SKLabelVerticalAlignmentModeBaseline, 0)
|
|
14
10
|
self.assertEqual(SpriteKit.SKLabelVerticalAlignmentModeCenter, 1)
|
|
15
11
|
self.assertEqual(SpriteKit.SKLabelVerticalAlignmentModeTop, 2)
|
|
16
12
|
self.assertEqual(SpriteKit.SKLabelVerticalAlignmentModeBottom, 3)
|
|
17
13
|
|
|
14
|
+
self.assertIsEnumType(SpriteKit.SKLabelHorizontalAlignmentMode)
|
|
18
15
|
self.assertEqual(SpriteKit.SKLabelHorizontalAlignmentModeCenter, 0)
|
|
19
16
|
self.assertEqual(SpriteKit.SKLabelHorizontalAlignmentModeLeft, 1)
|
|
20
17
|
self.assertEqual(SpriteKit.SKLabelHorizontalAlignmentModeRight, 2)
|
{pyobjc_framework_spritekit-12.2.1 → pyobjc_framework_spritekit-13.0}/PyObjCTest/test_sknode.py
RENAMED
|
@@ -5,12 +5,8 @@ import SpriteKit
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
class TestSKNode(TestCase):
|
|
8
|
-
def
|
|
8
|
+
def test_enums(self):
|
|
9
9
|
self.assertIsEnumType(SpriteKit.SKBlendMode)
|
|
10
|
-
self.assertIsEnumType(SpriteKit.SKNodeFocusBehavior)
|
|
11
|
-
|
|
12
|
-
@min_os_level("10.9")
|
|
13
|
-
def testConstants(self):
|
|
14
10
|
self.assertEqual(SpriteKit.SKBlendModeAlpha, 0)
|
|
15
11
|
self.assertEqual(SpriteKit.SKBlendModeAdd, 1)
|
|
16
12
|
self.assertEqual(SpriteKit.SKBlendModeSubtract, 2)
|
|
@@ -20,7 +16,7 @@ class TestSKNode(TestCase):
|
|
|
20
16
|
self.assertEqual(SpriteKit.SKBlendModeReplace, 6)
|
|
21
17
|
|
|
22
18
|
@min_os_level("10.9")
|
|
23
|
-
def
|
|
19
|
+
def test_methods(self):
|
|
24
20
|
self.assertIsInstance(SpriteKit.SKNode, objc.objc_class)
|
|
25
21
|
|
|
26
22
|
self.assertArgIsBOOL(SpriteKit.SKNode.setPaused_, 0)
|
|
@@ -40,7 +36,7 @@ class TestSKNode(TestCase):
|
|
|
40
36
|
self.assertArgIsBlock(SpriteKit.SKNode.runAction_completion_, 1, b"v")
|
|
41
37
|
|
|
42
38
|
@min_os_level("10.14")
|
|
43
|
-
def
|
|
39
|
+
def test_methods10_14(self):
|
|
44
40
|
self.assertArgIsOut(
|
|
45
41
|
SpriteKit.SKNode.nodeWithFileNamed_securelyWithClasses_andError_, 2
|
|
46
42
|
)
|