pyobjc-framework-SceneKit 10.3.2__tar.gz → 12.2.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. {pyobjc_framework_scenekit-10.3.2 → pyobjc_framework_scenekit-12.2.2}/Lib/SceneKit/__init__.py +0 -1
  2. {pyobjc_framework_scenekit-10.3.2 → pyobjc_framework_scenekit-12.2.2}/Lib/SceneKit/_metadata.py +237 -1
  3. {pyobjc_framework_scenekit-10.3.2 → pyobjc_framework_scenekit-12.2.2}/Lib/pyobjc_framework_SceneKit.egg-info/PKG-INFO +22 -10
  4. {pyobjc_framework_scenekit-10.3.2 → pyobjc_framework_scenekit-12.2.2}/Lib/pyobjc_framework_SceneKit.egg-info/SOURCES.txt +3 -4
  5. pyobjc_framework_scenekit-12.2.2/Lib/pyobjc_framework_SceneKit.egg-info/pyobjc-build-info.txt +3 -0
  6. pyobjc_framework_scenekit-12.2.2/Lib/pyobjc_framework_SceneKit.egg-info/requires.txt +3 -0
  7. {pyobjc_framework_scenekit-10.3.2 → pyobjc_framework_scenekit-12.2.2}/License.txt +1 -1
  8. {pyobjc_framework_scenekit-10.3.2 → pyobjc_framework_scenekit-12.2.2}/Modules/_SceneKit.m +45 -16
  9. {pyobjc_framework_scenekit-10.3.2 → pyobjc_framework_scenekit-12.2.2}/Modules/_SceneKit_inlines.m +43 -33
  10. {pyobjc_framework_scenekit-10.3.2 → pyobjc_framework_scenekit-12.2.2}/Modules/_SceneKit_protocols.m +2 -1
  11. {pyobjc_framework_scenekit-10.3.2 → pyobjc_framework_scenekit-12.2.2}/Modules/pyobjc-api.h +6 -3
  12. pyobjc_framework_scenekit-12.2.2/Modules/pyobjc-compat.h +371 -0
  13. {pyobjc_framework_scenekit-10.3.2 → pyobjc_framework_scenekit-12.2.2}/PKG-INFO +22 -10
  14. pyobjc_framework_scenekit-12.2.2/PyObjCTest/__init__.py +1 -0
  15. {pyobjc_framework_scenekit-10.3.2 → pyobjc_framework_scenekit-12.2.2}/PyObjCTest/test_scngeometry.py +14 -0
  16. {pyobjc_framework_scenekit-10.3.2 → pyobjc_framework_scenekit-12.2.2}/PyObjCTest/test_scnmaterialproperty.py +16 -1
  17. {pyobjc_framework_scenekit-10.3.2 → pyobjc_framework_scenekit-12.2.2}/metadata/SceneKit.fwinfo +135 -135
  18. pyobjc_framework_scenekit-10.3.2/metadata/raw/arm64-14.5.fwinfo → pyobjc_framework_scenekit-12.2.2/metadata/raw/arm64-26.5.fwinfo +7436 -300
  19. pyobjc_framework_scenekit-10.3.2/metadata/raw/x86_64-14.5.fwinfo → pyobjc_framework_scenekit-12.2.2/metadata/raw/x86_64-26.5.fwinfo +7436 -300
  20. {pyobjc_framework_scenekit-10.3.2 → pyobjc_framework_scenekit-12.2.2}/pyobjc_setup.py +75 -54
  21. {pyobjc_framework_scenekit-10.3.2 → pyobjc_framework_scenekit-12.2.2}/setup.py +1 -4
  22. pyobjc_framework_scenekit-10.3.2/Lib/pyobjc_framework_SceneKit.egg-info/requires.txt +0 -3
  23. pyobjc_framework_scenekit-10.3.2/Modules/pyobjc-compat.h +0 -245
  24. pyobjc_framework_scenekit-10.3.2/PyObjCTest/__init__.py +0 -1
  25. pyobjc_framework_scenekit-10.3.2/metadata/raw/arm64-13.0.fwinfo +0 -29005
  26. pyobjc_framework_scenekit-10.3.2/metadata/raw/x86_64-13.0.fwinfo +0 -29005
  27. {pyobjc_framework_scenekit-10.3.2 → pyobjc_framework_scenekit-12.2.2}/Lib/pyobjc_framework_SceneKit.egg-info/dependency_links.txt +0 -0
  28. {pyobjc_framework_scenekit-10.3.2 → pyobjc_framework_scenekit-12.2.2}/Lib/pyobjc_framework_SceneKit.egg-info/not-zip-safe +0 -0
  29. {pyobjc_framework_scenekit-10.3.2 → pyobjc_framework_scenekit-12.2.2}/Lib/pyobjc_framework_SceneKit.egg-info/top_level.txt +0 -0
  30. {pyobjc_framework_scenekit-10.3.2 → pyobjc_framework_scenekit-12.2.2}/MANIFEST.in +0 -0
  31. {pyobjc_framework_scenekit-10.3.2 → pyobjc_framework_scenekit-12.2.2}/PyObjCTest/test_scenekit.py +0 -0
  32. {pyobjc_framework_scenekit-10.3.2 → pyobjc_framework_scenekit-12.2.2}/PyObjCTest/test_scenekittypes.py +0 -0
  33. {pyobjc_framework_scenekit-10.3.2 → pyobjc_framework_scenekit-12.2.2}/PyObjCTest/test_scnaction.py +0 -0
  34. {pyobjc_framework_scenekit-10.3.2 → pyobjc_framework_scenekit-12.2.2}/PyObjCTest/test_scnanimation.py +0 -0
  35. {pyobjc_framework_scenekit-10.3.2 → pyobjc_framework_scenekit-12.2.2}/PyObjCTest/test_scnaudiosource.py +0 -0
  36. {pyobjc_framework_scenekit-10.3.2 → pyobjc_framework_scenekit-12.2.2}/PyObjCTest/test_scnboundingvolume.py +0 -0
  37. {pyobjc_framework_scenekit-10.3.2 → pyobjc_framework_scenekit-12.2.2}/PyObjCTest/test_scncamera.py +0 -0
  38. {pyobjc_framework_scenekit-10.3.2 → pyobjc_framework_scenekit-12.2.2}/PyObjCTest/test_scncameracontroller.py +0 -0
  39. {pyobjc_framework_scenekit-10.3.2 → pyobjc_framework_scenekit-12.2.2}/PyObjCTest/test_scnconstraint.py +0 -0
  40. {pyobjc_framework_scenekit-10.3.2 → pyobjc_framework_scenekit-12.2.2}/PyObjCTest/test_scnhittest.py +0 -0
  41. {pyobjc_framework_scenekit-10.3.2 → pyobjc_framework_scenekit-12.2.2}/PyObjCTest/test_scnjavascript.py +0 -0
  42. {pyobjc_framework_scenekit-10.3.2 → pyobjc_framework_scenekit-12.2.2}/PyObjCTest/test_scnlight.py +0 -0
  43. {pyobjc_framework_scenekit-10.3.2 → pyobjc_framework_scenekit-12.2.2}/PyObjCTest/test_scnmaterial.py +0 -0
  44. {pyobjc_framework_scenekit-10.3.2 → pyobjc_framework_scenekit-12.2.2}/PyObjCTest/test_scnmorpher.py +0 -0
  45. {pyobjc_framework_scenekit-10.3.2 → pyobjc_framework_scenekit-12.2.2}/PyObjCTest/test_scnnode.py +0 -0
  46. {pyobjc_framework_scenekit-10.3.2 → pyobjc_framework_scenekit-12.2.2}/PyObjCTest/test_scnparametricgeometry.py +0 -0
  47. {pyobjc_framework_scenekit-10.3.2 → pyobjc_framework_scenekit-12.2.2}/PyObjCTest/test_scnparticlesystem.py +0 -0
  48. {pyobjc_framework_scenekit-10.3.2 → pyobjc_framework_scenekit-12.2.2}/PyObjCTest/test_scnphysicsbody.py +0 -0
  49. {pyobjc_framework_scenekit-10.3.2 → pyobjc_framework_scenekit-12.2.2}/PyObjCTest/test_scnphysicsfield.py +0 -0
  50. {pyobjc_framework_scenekit-10.3.2 → pyobjc_framework_scenekit-12.2.2}/PyObjCTest/test_scnphysicsshape.py +0 -0
  51. {pyobjc_framework_scenekit-10.3.2 → pyobjc_framework_scenekit-12.2.2}/PyObjCTest/test_scnphysicsworld.py +0 -0
  52. {pyobjc_framework_scenekit-10.3.2 → pyobjc_framework_scenekit-12.2.2}/PyObjCTest/test_scnreferencenode.py +0 -0
  53. {pyobjc_framework_scenekit-10.3.2 → pyobjc_framework_scenekit-12.2.2}/PyObjCTest/test_scnscene.py +0 -0
  54. {pyobjc_framework_scenekit-10.3.2 → pyobjc_framework_scenekit-12.2.2}/PyObjCTest/test_scnscenerenderer.py +0 -0
  55. {pyobjc_framework_scenekit-10.3.2 → pyobjc_framework_scenekit-12.2.2}/PyObjCTest/test_scnscenesource.py +0 -0
  56. {pyobjc_framework_scenekit-10.3.2 → pyobjc_framework_scenekit-12.2.2}/PyObjCTest/test_scnshadable.py +0 -0
  57. {pyobjc_framework_scenekit-10.3.2 → pyobjc_framework_scenekit-12.2.2}/PyObjCTest/test_scntechnique.py +0 -0
  58. {pyobjc_framework_scenekit-10.3.2 → pyobjc_framework_scenekit-12.2.2}/PyObjCTest/test_scntransaction.py +0 -0
  59. {pyobjc_framework_scenekit-10.3.2 → pyobjc_framework_scenekit-12.2.2}/PyObjCTest/test_scnview.py +0 -0
  60. {pyobjc_framework_scenekit-10.3.2 → pyobjc_framework_scenekit-12.2.2}/metadata/metadata.ini +0 -0
  61. {pyobjc_framework_scenekit-10.3.2 → pyobjc_framework_scenekit-12.2.2}/pyproject.toml +0 -0
  62. {pyobjc_framework_scenekit-10.3.2 → pyobjc_framework_scenekit-12.2.2}/setup.cfg +0 -0
@@ -41,7 +41,6 @@ def _setup():
41
41
 
42
42
  import SceneKit as mod # isort:skip
43
43
 
44
- global SCNMatrix4Identity, SCNMatrix4MakeTranslation, SCNMatrix4MakeScale
45
44
  try:
46
45
  mod.SCNMatrix4Identity
47
46
  except AttributeError:
@@ -1,6 +1,6 @@
1
1
  # This file is generated by objective.metadata
2
2
  #
3
- # Last update: Sat May 18 09:36:01 2024
3
+ # Last update: Fri May 29 08:18:54 2026
4
4
  #
5
5
  # flake8: noqa
6
6
 
@@ -1232,6 +1232,21 @@ try:
1232
1232
  {"arguments": {2: {"type": "Z"}}},
1233
1233
  )
1234
1234
  r(b"SCNGeometry", b"wantsAdaptiveSubdivision", {"retval": {"type": "Z"}})
1235
+ r(
1236
+ b"SCNGeometryElement",
1237
+ b"geometryElementWithBuffer:primitiveType:primitiveCount:indicesChannelCount:interleavedIndicesChannels:bytesPerIndex:",
1238
+ {"arguments": {6: {"type": b"Z"}}},
1239
+ )
1240
+ r(
1241
+ b"SCNGeometryElement",
1242
+ b"geometryElementWithData:primitiveType:primitiveCount:indicesChannelCount:interleavedIndicesChannels:bytesPerIndex:",
1243
+ {"arguments": {6: {"type": b"Z"}}},
1244
+ )
1245
+ r(
1246
+ b"SCNGeometryElement",
1247
+ b"hasInterleavedIndicesChannels",
1248
+ {"retval": {"type": b"Z"}},
1249
+ )
1235
1250
  r(b"SCNGeometrySource", b"floatComponents", {"retval": {"type": b"Z"}})
1236
1251
  r(
1237
1252
  b"SCNGeometrySource",
@@ -1377,6 +1392,21 @@ try:
1377
1392
  r(b"SCNMaterial", b"setReadsFromDepthBuffer:", {"arguments": {2: {"type": b"Z"}}})
1378
1393
  r(b"SCNMaterial", b"setWritesToDepthBuffer:", {"arguments": {2: {"type": b"Z"}}})
1379
1394
  r(b"SCNMaterial", b"writesToDepthBuffer", {"retval": {"type": b"Z"}})
1395
+ r(
1396
+ b"SCNMaterialProperty",
1397
+ b"precomputedLightingEnvironmentContentsWithData:error:",
1398
+ {"arguments": {3: {"type_modifier": b"o"}}},
1399
+ )
1400
+ r(
1401
+ b"SCNMaterialProperty",
1402
+ b"precomputedLightingEnvironmentContentsWithURL:error:",
1403
+ {"arguments": {3: {"type_modifier": b"o"}}},
1404
+ )
1405
+ r(
1406
+ b"SCNMaterialProperty",
1407
+ b"precomputedLightingEnvironmentDataForContents:device:error:",
1408
+ {"arguments": {4: {"type_modifier": b"o"}}},
1409
+ )
1380
1410
  r(b"SCNMorpher", b"setUnifiesNormals:", {"arguments": {2: {"type": "Z"}}})
1381
1411
  r(b"SCNMorpher", b"unifiesNormals", {"retval": {"type": "Z"}})
1382
1412
  r(b"SCNNode", b"castsShadow", {"retval": {"type": b"Z"}})
@@ -2059,6 +2089,7 @@ try:
2059
2089
  finally:
2060
2090
  objc._updatingMetadata(False)
2061
2091
 
2092
+ objc.registerNewKeywordsFromSelector("SCNAudioPlayer", b"init")
2062
2093
  objc.registerNewKeywordsFromSelector("SCNAudioPlayer", b"initWithAVAudioNode:")
2063
2094
  objc.registerNewKeywordsFromSelector("SCNAudioPlayer", b"initWithSource:")
2064
2095
  objc.registerNewKeywordsFromSelector("SCNAudioSource", b"initWithFileNamed:")
@@ -2069,6 +2100,211 @@ objc.registerNewKeywordsFromSelector("SCNReferenceNode", b"initWithURL:")
2069
2100
  objc.registerNewKeywordsFromSelector("SCNSceneSource", b"initWithData:options:")
2070
2101
  objc.registerNewKeywordsFromSelector("SCNSceneSource", b"initWithURL:options:")
2071
2102
  objc.registerNewKeywordsFromSelector("SCNView", b"initWithFrame:options:")
2103
+
2104
+ objc.registerNewKeywords(
2105
+ "SCNAnimationEvent", ("keyTime", "block"), "animationEventWithKeyTime_block_"
2106
+ )
2107
+ objc.registerNewKeywords(
2108
+ "SCNAvoidOccluderConstraint", ("target",), "avoidOccluderConstraintWithTarget_"
2109
+ )
2110
+ objc.registerNewKeywords(
2111
+ "SCNBox",
2112
+ ("width", "height", "length", "chamferRadius"),
2113
+ "boxWithWidth_height_length_chamferRadius_",
2114
+ )
2115
+ objc.registerNewKeywords(
2116
+ "SCNCapsule", ("capRadius", "height"), "capsuleWithCapRadius_height_"
2117
+ )
2118
+ objc.registerNewKeywords(
2119
+ "SCNCone",
2120
+ ("topRadius", "bottomRadius", "height"),
2121
+ "coneWithTopRadius_bottomRadius_height_",
2122
+ )
2123
+ objc.registerNewKeywords(
2124
+ "SCNCylinder", ("radius", "height"), "cylinderWithRadius_height_"
2125
+ )
2126
+ objc.registerNewKeywords(
2127
+ "SCNDistanceConstraint", ("target",), "distanceConstraintWithTarget_"
2128
+ )
2129
+ objc.registerNewKeywords(
2130
+ "SCNGeometry", ("sources", "elements"), "geometryWithSources_elements_"
2131
+ )
2132
+ objc.registerNewKeywords(
2133
+ "SCNGeometry",
2134
+ ("sources", "elements", "sourceChannels"),
2135
+ "geometryWithSources_elements_sourceChannels_",
2136
+ )
2137
+ objc.registerNewKeywords(
2138
+ "SCNGeometryElement",
2139
+ ("buffer", "primitiveType", "primitiveCount", "bytesPerIndex"),
2140
+ "geometryElementWithBuffer_primitiveType_primitiveCount_bytesPerIndex_",
2141
+ )
2142
+ objc.registerNewKeywords(
2143
+ "SCNGeometryElement",
2144
+ (
2145
+ "buffer",
2146
+ "primitiveType",
2147
+ "primitiveCount",
2148
+ "indicesChannelCount",
2149
+ "interleavedIndicesChannels",
2150
+ "bytesPerIndex",
2151
+ ),
2152
+ "geometryElementWithBuffer_primitiveType_primitiveCount_indicesChannelCount_interleavedIndicesChannels_bytesPerIndex_",
2153
+ )
2154
+ objc.registerNewKeywords(
2155
+ "SCNGeometryElement",
2156
+ ("data", "primitiveType", "primitiveCount", "bytesPerIndex"),
2157
+ "geometryElementWithData_primitiveType_primitiveCount_bytesPerIndex_",
2158
+ )
2159
+ objc.registerNewKeywords(
2160
+ "SCNGeometryElement",
2161
+ (
2162
+ "data",
2163
+ "primitiveType",
2164
+ "primitiveCount",
2165
+ "indicesChannelCount",
2166
+ "interleavedIndicesChannels",
2167
+ "bytesPerIndex",
2168
+ ),
2169
+ "geometryElementWithData_primitiveType_primitiveCount_indicesChannelCount_interleavedIndicesChannels_bytesPerIndex_",
2170
+ )
2171
+ objc.registerNewKeywords(
2172
+ "SCNGeometrySource",
2173
+ ("buffer", "vertexFormat", "semantic", "vertexCount", "dataOffset", "dataStride"),
2174
+ "geometrySourceWithBuffer_vertexFormat_semantic_vertexCount_dataOffset_dataStride_",
2175
+ )
2176
+ objc.registerNewKeywords(
2177
+ "SCNGeometrySource",
2178
+ (
2179
+ "data",
2180
+ "semantic",
2181
+ "vectorCount",
2182
+ "floatComponents",
2183
+ "componentsPerVector",
2184
+ "bytesPerComponent",
2185
+ "dataOffset",
2186
+ "dataStride",
2187
+ ),
2188
+ "geometrySourceWithData_semantic_vectorCount_floatComponents_componentsPerVector_bytesPerComponent_dataOffset_dataStride_",
2189
+ )
2190
+ objc.registerNewKeywords(
2191
+ "SCNGeometrySource", ("normals", "count"), "geometrySourceWithNormals_count_"
2192
+ )
2193
+ objc.registerNewKeywords(
2194
+ "SCNGeometrySource",
2195
+ ("textureCoordinates", "count"),
2196
+ "geometrySourceWithTextureCoordinates_count_",
2197
+ )
2198
+ objc.registerNewKeywords(
2199
+ "SCNGeometrySource", ("vertices", "count"), "geometrySourceWithVertices_count_"
2200
+ )
2201
+ objc.registerNewKeywords(
2202
+ "SCNLevelOfDetail",
2203
+ ("geometry", "screenSpaceRadius"),
2204
+ "levelOfDetailWithGeometry_screenSpaceRadius_",
2205
+ )
2206
+ objc.registerNewKeywords(
2207
+ "SCNLevelOfDetail",
2208
+ ("geometry", "worldSpaceDistance"),
2209
+ "levelOfDetailWithGeometry_worldSpaceDistance_",
2210
+ )
2211
+ objc.registerNewKeywords(
2212
+ "SCNLookAtConstraint", ("target",), "lookAtConstraintWithTarget_"
2213
+ )
2214
+ objc.registerNewKeywords(
2215
+ "SCNMaterialProperty", ("contents",), "materialPropertyWithContents_"
2216
+ )
2217
+ objc.registerNewKeywords(
2218
+ "SCNParticlePropertyController", ("animation",), "controllerWithAnimation_"
2219
+ )
2220
+ objc.registerNewKeywords(
2221
+ "SCNPhysicsBallSocketJoint",
2222
+ ("bodyA", "anchorA", "bodyB", "anchorB"),
2223
+ "jointWithBodyA_anchorA_bodyB_anchorB_",
2224
+ )
2225
+ objc.registerNewKeywords(
2226
+ "SCNPhysicsBallSocketJoint", ("body", "anchor"), "jointWithBody_anchor_"
2227
+ )
2228
+ objc.registerNewKeywords("SCNPhysicsBody", ("type", "shape"), "bodyWithType_shape_")
2229
+ objc.registerNewKeywords(
2230
+ "SCNPhysicsConeTwistJoint",
2231
+ ("bodyA", "frameA", "bodyB", "frameB"),
2232
+ "jointWithBodyA_frameA_bodyB_frameB_",
2233
+ )
2234
+ objc.registerNewKeywords(
2235
+ "SCNPhysicsConeTwistJoint", ("body", "frame"), "jointWithBody_frame_"
2236
+ )
2237
+ objc.registerNewKeywords(
2238
+ "SCNPhysicsHingeJoint",
2239
+ ("bodyA", "axisA", "anchorA", "bodyB", "axisB", "anchorB"),
2240
+ "jointWithBodyA_axisA_anchorA_bodyB_axisB_anchorB_",
2241
+ )
2242
+ objc.registerNewKeywords(
2243
+ "SCNPhysicsHingeJoint", ("body", "axis", "anchor"), "jointWithBody_axis_anchor_"
2244
+ )
2245
+ objc.registerNewKeywords(
2246
+ "SCNPhysicsShape", ("geometry", "options"), "shapeWithGeometry_options_"
2247
+ )
2248
+ objc.registerNewKeywords(
2249
+ "SCNPhysicsShape", ("node", "options"), "shapeWithNode_options_"
2250
+ )
2251
+ objc.registerNewKeywords(
2252
+ "SCNPhysicsShape", ("shapes", "transforms"), "shapeWithShapes_transforms_"
2253
+ )
2254
+ objc.registerNewKeywords(
2255
+ "SCNPhysicsSliderJoint",
2256
+ ("bodyA", "axisA", "anchorA", "bodyB", "axisB", "anchorB"),
2257
+ "jointWithBodyA_axisA_anchorA_bodyB_axisB_anchorB_",
2258
+ )
2259
+ objc.registerNewKeywords(
2260
+ "SCNPhysicsSliderJoint", ("body", "axis", "anchor"), "jointWithBody_axis_anchor_"
2261
+ )
2262
+ objc.registerNewKeywords(
2263
+ "SCNPhysicsVehicle", ("chassisBody", "wheels"), "vehicleWithChassisBody_wheels_"
2264
+ )
2265
+ objc.registerNewKeywords("SCNPhysicsVehicleWheel", ("node",), "wheelWithNode_")
2266
+ objc.registerNewKeywords("SCNPlane", ("width", "height"), "planeWithWidth_height_")
2267
+ objc.registerNewKeywords(
2268
+ "SCNPyramid", ("width", "height", "length"), "pyramidWithWidth_height_length_"
2269
+ )
2270
+ objc.registerNewKeywords(
2271
+ "SCNRenderer", ("context", "options"), "rendererWithContext_options_"
2272
+ )
2273
+ objc.registerNewKeywords(
2274
+ "SCNRenderer", ("device", "options"), "rendererWithDevice_options_"
2275
+ )
2276
+ objc.registerNewKeywords(
2277
+ "SCNReplicatorConstraint", ("target",), "replicatorConstraintWithTarget_"
2278
+ )
2279
+ objc.registerNewKeywords(
2280
+ "SCNScene", ("URL", "options", "error"), "sceneWithURL_options_error_"
2281
+ )
2282
+ objc.registerNewKeywords(
2283
+ "SCNShape", ("path", "extrusionDepth"), "shapeWithPath_extrusionDepth_"
2284
+ )
2285
+ objc.registerNewKeywords(
2286
+ "SCNSkinner",
2287
+ (
2288
+ "baseGeometry",
2289
+ "bones",
2290
+ "boneInverseBindTransforms",
2291
+ "boneWeights",
2292
+ "boneIndices",
2293
+ ),
2294
+ "skinnerWithBaseGeometry_bones_boneInverseBindTransforms_boneWeights_boneIndices_",
2295
+ )
2296
+ objc.registerNewKeywords("SCNSphere", ("radius",), "sphereWithRadius_")
2297
+ objc.registerNewKeywords(
2298
+ "SCNText", ("string", "extrusionDepth"), "textWithString_extrusionDepth_"
2299
+ )
2300
+ objc.registerNewKeywords(
2301
+ "SCNTorus", ("ringRadius", "pipeRadius"), "torusWithRingRadius_pipeRadius_"
2302
+ )
2303
+ objc.registerNewKeywords(
2304
+ "SCNTube",
2305
+ ("innerRadius", "outerRadius", "height"),
2306
+ "tubeWithInnerRadius_outerRadius_height_",
2307
+ )
2072
2308
  expressions = {}
2073
2309
 
2074
2310
  # END OF FILE
@@ -1,38 +1,50 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: pyobjc-framework-SceneKit
3
- Version: 10.3.2
3
+ Version: 12.2.2
4
4
  Summary: Wrappers for the framework SceneKit 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,SceneKit
10
10
  Platform: MacOS X (>=10.7)
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
- Classifier: Programming Language :: Python :: 3.9
23
20
  Classifier: Programming Language :: Python :: 3.10
24
21
  Classifier: Programming Language :: Python :: 3.11
25
22
  Classifier: Programming Language :: Python :: 3.12
26
23
  Classifier: Programming Language :: Python :: 3.13
24
+ Classifier: Programming Language :: Python :: 3.14
25
+ Classifier: Programming Language :: Python :: 3.15
27
26
  Classifier: Programming Language :: Python :: Implementation :: CPython
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.8
31
+ Requires-Python: >=3.10
32
32
  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
33
+ Requires-Dist: pyobjc-core>=12.2.2
34
+ Requires-Dist: pyobjc-framework-Cocoa>=12.2.2
35
+ Requires-Dist: pyobjc-framework-Quartz>=12.2.2
36
+ Dynamic: author
37
+ Dynamic: author-email
38
+ Dynamic: classifier
39
+ Dynamic: description
40
+ Dynamic: description-content-type
41
+ Dynamic: home-page
42
+ Dynamic: keywords
43
+ Dynamic: license
44
+ Dynamic: platform
45
+ Dynamic: requires-dist
46
+ Dynamic: requires-python
47
+ Dynamic: summary
36
48
  Project-URL: Documentation, https://pyobjc.readthedocs.io/en/latest/
37
49
  Project-URL: Issue tracker, https://github.com/ronaldoussoren/pyobjc/issues
38
50
  Project-URL: Repository, https://github.com/ronaldoussoren/pyobjc
@@ -9,6 +9,7 @@ Lib/pyobjc_framework_SceneKit.egg-info/PKG-INFO
9
9
  Lib/pyobjc_framework_SceneKit.egg-info/SOURCES.txt
10
10
  Lib/pyobjc_framework_SceneKit.egg-info/dependency_links.txt
11
11
  Lib/pyobjc_framework_SceneKit.egg-info/not-zip-safe
12
+ Lib/pyobjc_framework_SceneKit.egg-info/pyobjc-build-info.txt
12
13
  Lib/pyobjc_framework_SceneKit.egg-info/requires.txt
13
14
  Lib/pyobjc_framework_SceneKit.egg-info/top_level.txt
14
15
  Modules/_SceneKit.m
@@ -50,7 +51,5 @@ PyObjCTest/test_scntransaction.py
50
51
  PyObjCTest/test_scnview.py
51
52
  metadata/SceneKit.fwinfo
52
53
  metadata/metadata.ini
53
- metadata/raw/arm64-13.0.fwinfo
54
- metadata/raw/arm64-14.5.fwinfo
55
- metadata/raw/x86_64-13.0.fwinfo
56
- metadata/raw/x86_64-14.5.fwinfo
54
+ metadata/raw/arm64-26.5.fwinfo
55
+ metadata/raw/x86_64-26.5.fwinfo
@@ -0,0 +1,3 @@
1
+ macOS 26.6 (25G70)
2
+ Apple clang version 21.0.0 (clang-2100.1.1.101)
3
+ SDK: macOS 26.5
@@ -0,0 +1,3 @@
1
+ pyobjc-core>=12.2.2
2
+ pyobjc-framework-Cocoa>=12.2.2
3
+ pyobjc-framework-Quartz>=12.2.2
@@ -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,6 +1,3 @@
1
- #ifndef PyObjC_GIL_DISABLED
2
- #define Py_LIMITED_API 0x03060000
3
- #endif
4
1
  #define PY_SSIZE_T_CLEAN
5
2
  #include "Python.h"
6
3
  #include "pyobjc-api.h"
@@ -118,22 +115,54 @@ static PyMethodDef mod_methods[] = {
118
115
  {0, 0, 0, 0} /* sentinel */
119
116
  };
120
117
 
121
- /* Python glue */
118
+ static int
119
+ mod_exec_module(PyObject* m)
120
+ {
121
+ if (PyObjC_ImportAPI(m) == -1)
122
+ return -1;
123
+
124
+ return 0;
125
+ }
126
+
127
+ static struct PyModuleDef_Slot mod_slots[] = {
128
+ {.slot = Py_mod_exec, .value = (void*)mod_exec_module},
129
+ #if PY_VERSION_HEX >= 0x030c0000
130
+ {
131
+ /* This extension does not use the CPython API other than initializing
132
+ * the module, hence is safe with subinterpreters and per-interpreter
133
+ * GILs
134
+ */
135
+ .slot = Py_mod_multiple_interpreters,
136
+ .value = Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED,
137
+ },
138
+ #endif
139
+ #if PY_VERSION_HEX >= 0x030d0000
140
+ {
141
+ /* The code in this extension should be safe to use without the GIL */
142
+ .slot = Py_mod_gil,
143
+ .value = Py_MOD_GIL_NOT_USED,
144
+ },
145
+ #endif
146
+ {/* Sentinel */
147
+ .slot = 0,
148
+ .value = 0}};
149
+
122
150
  static struct PyModuleDef mod_module = {
123
- PyModuleDef_HEAD_INIT, "_SceneKit", NULL, 0, mod_methods, NULL, NULL, NULL, NULL};
151
+ .m_base = PyModuleDef_HEAD_INIT,
152
+ .m_name = "_SceneKit",
153
+ .m_doc = NULL,
154
+ .m_size = 0,
155
+ .m_methods = mod_methods,
156
+ .m_slots = mod_slots,
157
+ .m_traverse = NULL,
158
+ .m_clear = NULL,
159
+ .m_free = NULL,
160
+ };
124
161
 
125
162
  PyObject* PyInit__SceneKit(void);
126
163
 
127
- PyObject* __attribute__((__visibility__("default"))) PyInit__SceneKit(void)
164
+ PyObject* __attribute__((__visibility__("default")))
165
+ PyInit__SceneKit(void)
128
166
  {
129
- PyObject* m;
130
- m = PyModule_Create(&mod_module);
131
- if (!m) {
132
- return NULL;
133
- }
134
-
135
- if (PyObjC_ImportAPI(m) == -1)
136
- return NULL;
137
-
138
- return m;
167
+ return PyModuleDef_Init(&mod_module);
139
168
  }
@@ -1,6 +1,3 @@
1
- #ifndef PyObjC_GIL_DISABLED
2
- #define Py_LIMITED_API 0x03060000
3
- #endif
4
1
  #define PY_SSIZE_T_CLEAN
5
2
  #include "Python.h"
6
3
  #include "pyobjc-api.h"
@@ -43,41 +40,54 @@ static PyMethodDef mod_methods[] = {
43
40
  {0, 0, 0, 0} /* sentinel */
44
41
  };
45
42
 
46
- /* Python glue */
47
- #if PY_VERSION_HEX >= 0x03000000
48
-
49
- static struct PyModuleDef mod_module = {
50
- PyModuleDef_HEAD_INIT, "_inlines", NULL, 0, mod_methods, NULL, NULL, NULL, NULL};
51
-
52
- #define INITERROR() return NULL
53
- #define INITDONE() return m
54
-
55
- PyObject* PyInit__inlines(void);
56
-
57
- PyObject*
58
- PyInit__inlines(void)
59
-
60
- #else
61
-
62
- #define INITERROR() return
63
- #define INITDONE() return
43
+ static int
44
+ mod_exec_module(PyObject* m)
45
+ {
46
+ if (PyModule_AddObject(m, "_inline_list_", PyObjC_CreateInlineTab(function_map)) < 0)
47
+ return -1;
64
48
 
65
- void init_inlines(void);
49
+ return 0;
50
+ }
66
51
 
67
- void
68
- init_inlines(void)
52
+ static struct PyModuleDef_Slot mod_slots[] = {
53
+ {.slot = Py_mod_exec, .value = (void*)mod_exec_module},
54
+ #if PY_VERSION_HEX >= 0x030c0000
55
+ {
56
+ /* This extension does not use the CPython API other than initializing
57
+ * the module, hence is safe with subinterpreters and per-interpreter
58
+ * GILs
59
+ */
60
+ .slot = Py_mod_multiple_interpreters,
61
+ .value = Py_MOD_PER_INTERPRETER_GIL_SUPPORTED,
62
+ },
69
63
  #endif
70
- {
71
- PyObject* m;
72
- #if PY_VERSION_HEX >= 0x03000000
73
- m = PyModule_Create(&mod_module);
74
- #else
75
- m = Py_InitModule4("_inlines", mod_methods, NULL, NULL, PYTHON_API_VERSION);
64
+ #if PY_VERSION_HEX >= 0x030d0000
65
+ {
66
+ /* The code in this extension should be safe to use without the GIL */
67
+ .slot = Py_mod_gil,
68
+ .value = Py_MOD_GIL_NOT_USED,
69
+ },
76
70
  #endif
71
+ {/* Sentinel */
72
+ .slot = 0,
73
+ .value = 0}};
77
74
 
78
- if (PyModule_AddObject(m, "_inline_list_", PyObjC_CreateInlineTab(function_map)) < 0)
75
+ static struct PyModuleDef mod_module = {
76
+ .m_base = PyModuleDef_HEAD_INIT,
77
+ .m_name = "_inlines",
78
+ .m_doc = NULL,
79
+ .m_size = 0,
80
+ .m_methods = mod_methods,
81
+ .m_slots = mod_slots,
82
+ .m_traverse = NULL,
83
+ .m_clear = NULL,
84
+ .m_free = NULL,
85
+ };
79
86
 
80
- INITERROR();
87
+ PyObject* PyInit__inlines(void);
81
88
 
82
- INITDONE();
89
+ PyObject* __attribute__((__visibility__("default")))
90
+ PyInit__inlines(void)
91
+ {
92
+ return PyModuleDef_Init(&mod_module);
83
93
  }
@@ -4,7 +4,8 @@
4
4
  * Last update: Tue May 26 22:53:41 2015
5
5
  */
6
6
 
7
- static void __attribute__((__used__)) use_protocols(void)
7
+ static void __attribute__((__used__))
8
+ use_protocols(void)
8
9
  {
9
10
  PyObject* p __attribute__((__unused__));
10
11
  #if PyObjC_BUILD_RELEASE >= 1010
@@ -53,8 +53,9 @@ NS_ASSUME_NONNULL_BEGIN
53
53
  /*
54
54
  * Only add items to the end of this list!
55
55
  */
56
+
56
57
  typedef int(RegisterMethodMappingFunctionType)(
57
- Class, SEL,
58
+ Class _Nullable, SEL,
58
59
  PyObject* _Nullable (*_Nonnull)(PyObject* _Nonnull, PyObject* _Nonnull,
59
60
  PyObject* _Nonnull const* _Nonnull, size_t),
60
61
  IMP _Nullable (*_Nonnull)(PyObject* _Nonnull, PyObject* _Nonnull));
@@ -83,7 +84,8 @@ struct pyobjc_api {
83
84
  PyObject* _Nullable (*_Nonnull unsupported_method_caller)(
84
85
  PyObject* _Nonnull, PyObject* _Nonnull, PyObject* _Nonnull const* _Nonnull,
85
86
  size_t);
86
- void (*_Nonnull err_python_to_objc_gil)(PyGILState_STATE* _Nonnull state);
87
+ void (*_Nonnull err_python_to_objc_gil)(PyGILState_STATE* _Nonnull state)
88
+ __attribute__((__noreturn__));
87
89
  int (*_Nonnull simplify_sig)(const char* signature, char* buf, size_t buflen);
88
90
  void (*_Nonnull free_c_array)(int, Py_buffer*);
89
91
  int (*_Nonnull py_to_c_array)(BOOL, BOOL, const char* _Nonnull, PyObject* _Nonnull,
@@ -113,7 +115,8 @@ struct pyobjc_api {
113
115
  int (*_Nonnull checknokwnames)(PyObject* _Nonnull callable,
114
116
  PyObject* _Nullable kwnames);
115
117
 
116
- PyObject* _Nullable (*_Nonnull createopaquepointertype)(const char*, const char*, const char*);
118
+ PyObject* _Nullable (*_Nonnull createopaquepointertype)(const char*, const char*,
119
+ const char*);
117
120
  };
118
121
 
119
122
  #ifndef PYOBJC_BUILD