pyobjc-framework-ModelIO 12.2.2__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.
Files changed (46) hide show
  1. {pyobjc_framework_modelio-12.2.2 → pyobjc_framework_modelio-13.0}/Lib/ModelIO/_metadata.py +58 -37
  2. {pyobjc_framework_modelio-12.2.2 → pyobjc_framework_modelio-13.0}/Lib/pyobjc_framework_ModelIO.egg-info/PKG-INFO +6 -6
  3. {pyobjc_framework_modelio-12.2.2 → pyobjc_framework_modelio-13.0}/Lib/pyobjc_framework_ModelIO.egg-info/SOURCES.txt +2 -3
  4. pyobjc_framework_modelio-13.0/Lib/pyobjc_framework_ModelIO.egg-info/pyobjc-build-info.txt +3 -0
  5. pyobjc_framework_modelio-13.0/Lib/pyobjc_framework_ModelIO.egg-info/requires.txt +3 -0
  6. {pyobjc_framework_modelio-12.2.2 → pyobjc_framework_modelio-13.0}/Modules/_ModelIO.m +9 -2
  7. {pyobjc_framework_modelio-12.2.2 → pyobjc_framework_modelio-13.0}/Modules/_ModelIO_protocols.m +8 -0
  8. {pyobjc_framework_modelio-12.2.2 → pyobjc_framework_modelio-13.0}/Modules/pyobjc-api.h +18 -4
  9. {pyobjc_framework_modelio-12.2.2 → pyobjc_framework_modelio-13.0}/Modules/pyobjc-compat.h +0 -18
  10. {pyobjc_framework_modelio-12.2.2 → pyobjc_framework_modelio-13.0}/PKG-INFO +6 -6
  11. {pyobjc_framework_modelio-12.2.2 → pyobjc_framework_modelio-13.0}/PyObjCTest/test_mdlanimatedvaluetypes.py +3 -5
  12. {pyobjc_framework_modelio-12.2.2 → pyobjc_framework_modelio-13.0}/PyObjCTest/test_mdlanimation.py +2 -2
  13. {pyobjc_framework_modelio-12.2.2 → pyobjc_framework_modelio-13.0}/PyObjCTest/test_mdlasset.py +22 -21
  14. {pyobjc_framework_modelio-12.2.2 → pyobjc_framework_modelio-13.0}/PyObjCTest/test_mdlassetresolver.py +3 -3
  15. {pyobjc_framework_modelio-12.2.2 → pyobjc_framework_modelio-13.0}/PyObjCTest/test_mdlcamera.py +2 -4
  16. {pyobjc_framework_modelio-12.2.2 → pyobjc_framework_modelio-13.0}/PyObjCTest/test_mdllight.py +1 -3
  17. {pyobjc_framework_modelio-12.2.2 → pyobjc_framework_modelio-13.0}/PyObjCTest/test_mdlmaterial.py +26 -28
  18. {pyobjc_framework_modelio-12.2.2 → pyobjc_framework_modelio-13.0}/PyObjCTest/test_mdlmesh.py +31 -5
  19. {pyobjc_framework_modelio-12.2.2 → pyobjc_framework_modelio-13.0}/PyObjCTest/test_mdlmeshbuffer.py +22 -9
  20. {pyobjc_framework_modelio-12.2.2 → pyobjc_framework_modelio-13.0}/PyObjCTest/test_mdlobject.py +1 -1
  21. {pyobjc_framework_modelio-12.2.2 → pyobjc_framework_modelio-13.0}/PyObjCTest/test_mdltexture.py +4 -6
  22. {pyobjc_framework_modelio-12.2.2 → pyobjc_framework_modelio-13.0}/PyObjCTest/test_mdltransform.py +56 -63
  23. {pyobjc_framework_modelio-12.2.2 → pyobjc_framework_modelio-13.0}/PyObjCTest/test_mdltransformstack.py +3 -5
  24. {pyobjc_framework_modelio-12.2.2 → pyobjc_framework_modelio-13.0}/PyObjCTest/test_mdltypes.py +30 -31
  25. {pyobjc_framework_modelio-12.2.2 → pyobjc_framework_modelio-13.0}/PyObjCTest/test_mdlvaluetypes.py +1 -1
  26. {pyobjc_framework_modelio-12.2.2 → pyobjc_framework_modelio-13.0}/PyObjCTest/test_mdlvertexdescriptor.py +18 -19
  27. {pyobjc_framework_modelio-12.2.2 → pyobjc_framework_modelio-13.0}/PyObjCTest/test_mdlvoxelarray.py +3 -3
  28. {pyobjc_framework_modelio-12.2.2 → pyobjc_framework_modelio-13.0}/metadata/ModelIO.fwinfo +2 -676
  29. pyobjc_framework_modelio-12.2.2/metadata/raw/arm64-26.5.fwinfo → pyobjc_framework_modelio-13.0/metadata/raw/arm64-27.fwinfo +17 -3
  30. pyobjc_framework_modelio-12.2.2/metadata/raw/x86_64-26.5.fwinfo → pyobjc_framework_modelio-13.0/metadata/raw/x86_64-27.fwinfo +17 -3
  31. {pyobjc_framework_modelio-12.2.2 → pyobjc_framework_modelio-13.0}/pyobjc_setup.py +7 -7
  32. {pyobjc_framework_modelio-12.2.2 → pyobjc_framework_modelio-13.0}/setup.py +1 -1
  33. pyobjc_framework_modelio-12.2.2/Lib/pyobjc_framework_ModelIO.egg-info/pyobjc-build-info.txt +0 -3
  34. pyobjc_framework_modelio-12.2.2/Lib/pyobjc_framework_ModelIO.egg-info/requires.txt +0 -3
  35. pyobjc_framework_modelio-12.2.2/PyObjCTest/test_mdlprimitive.py +0 -26
  36. {pyobjc_framework_modelio-12.2.2 → pyobjc_framework_modelio-13.0}/Lib/ModelIO/__init__.py +0 -0
  37. {pyobjc_framework_modelio-12.2.2 → pyobjc_framework_modelio-13.0}/Lib/pyobjc_framework_ModelIO.egg-info/dependency_links.txt +0 -0
  38. {pyobjc_framework_modelio-12.2.2 → pyobjc_framework_modelio-13.0}/Lib/pyobjc_framework_ModelIO.egg-info/not-zip-safe +0 -0
  39. {pyobjc_framework_modelio-12.2.2 → pyobjc_framework_modelio-13.0}/Lib/pyobjc_framework_ModelIO.egg-info/top_level.txt +0 -0
  40. {pyobjc_framework_modelio-12.2.2 → pyobjc_framework_modelio-13.0}/License.txt +0 -0
  41. {pyobjc_framework_modelio-12.2.2 → pyobjc_framework_modelio-13.0}/MANIFEST.in +0 -0
  42. {pyobjc_framework_modelio-12.2.2 → pyobjc_framework_modelio-13.0}/PyObjCTest/__init__.py +0 -0
  43. {pyobjc_framework_modelio-12.2.2 → pyobjc_framework_modelio-13.0}/PyObjCTest/test_modelio.py +0 -0
  44. {pyobjc_framework_modelio-12.2.2 → pyobjc_framework_modelio-13.0}/metadata/metadata.ini +0 -0
  45. {pyobjc_framework_modelio-12.2.2 → pyobjc_framework_modelio-13.0}/pyproject.toml +0 -0
  46. {pyobjc_framework_modelio-12.2.2 → pyobjc_framework_modelio-13.0}/setup.cfg +0 -0
@@ -1,7 +1,5 @@
1
1
  # This file is generated by objective.metadata
2
2
  #
3
- # Last update: Thu May 28 22:15:45 2026
4
- #
5
3
  # flake8: noqa
6
4
 
7
5
  import objc, sys
@@ -45,7 +43,7 @@ misc.update(
45
43
  }
46
44
  )
47
45
  constants = """$MDLVertexAttributeAnisotropy$MDLVertexAttributeBinormal$MDLVertexAttributeBitangent$MDLVertexAttributeColor$MDLVertexAttributeEdgeCrease$MDLVertexAttributeJointIndices$MDLVertexAttributeJointWeights$MDLVertexAttributeNormal$MDLVertexAttributeOcclusionValue$MDLVertexAttributePosition$MDLVertexAttributeShadingBasisU$MDLVertexAttributeShadingBasisV$MDLVertexAttributeSubdivisionStencil$MDLVertexAttributeTangent$MDLVertexAttributeTextureCoordinate$kUTType3dObject$kUTTypeAlembic$kUTTypePolygon$kUTTypeStereolithography$kUTTypeUniversalSceneDescription$kUTTypeUniversalSceneDescriptionMobile$"""
48
- enums = """$MDLAnimatedValueInterpolationConstant@0$MDLAnimatedValueInterpolationLinear@1$MDLCameraProjectionOrthographic@1$MDLCameraProjectionPerspective@0$MDLDataPrecisionDouble@2$MDLDataPrecisionFloat@1$MDLDataPrecisionUndefined@0$MDLGeometryTypeLines@1$MDLGeometryTypePoints@0$MDLGeometryTypeQuads@4$MDLGeometryTypeTriangleStrips@3$MDLGeometryTypeTriangles@2$MDLGeometryTypeVariableTopology@5$MDLIndexBitDepthInvalid@0$MDLIndexBitDepthUInt16@16$MDLIndexBitDepthUInt32@32$MDLIndexBitDepthUInt8@8$MDLIndexBitDepthUint16@16$MDLIndexBitDepthUint32@32$MDLIndexBitDepthUint8@8$MDLLightTypeAmbient@1$MDLLightTypeDirectional@2$MDLLightTypeDiscArea@6$MDLLightTypeEnvironment@11$MDLLightTypeLinear@5$MDLLightTypePhotometric@9$MDLLightTypePoint@4$MDLLightTypeProbe@10$MDLLightTypeRectangularArea@7$MDLLightTypeSpot@3$MDLLightTypeSuperElliptical@8$MDLLightTypeUnknown@0$MDLMaterialFaceBack@1$MDLMaterialFaceDoubleSided@2$MDLMaterialFaceFront@0$MDLMaterialMipMapFilterModeLinear@1$MDLMaterialMipMapFilterModeNearest@0$MDLMaterialPropertyTypeBuffer@10$MDLMaterialPropertyTypeColor@4$MDLMaterialPropertyTypeFloat@5$MDLMaterialPropertyTypeFloat2@6$MDLMaterialPropertyTypeFloat3@7$MDLMaterialPropertyTypeFloat4@8$MDLMaterialPropertyTypeMatrix44@9$MDLMaterialPropertyTypeNone@0$MDLMaterialPropertyTypeString@1$MDLMaterialPropertyTypeTexture@3$MDLMaterialPropertyTypeURL@2$MDLMaterialSemanticAmbientOcclusion@22$MDLMaterialSemanticAmbientOcclusionScale@23$MDLMaterialSemanticAnisotropic@7$MDLMaterialSemanticAnisotropicRotation@8$MDLMaterialSemanticBaseColor@0$MDLMaterialSemanticBump@14$MDLMaterialSemanticClearcoat@11$MDLMaterialSemanticClearcoatGloss@12$MDLMaterialSemanticDisplacement@20$MDLMaterialSemanticDisplacementScale@21$MDLMaterialSemanticEmission@13$MDLMaterialSemanticInterfaceIndexOfRefraction@16$MDLMaterialSemanticMaterialIndexOfRefraction@17$MDLMaterialSemanticMetallic@2$MDLMaterialSemanticNone@32768$MDLMaterialSemanticObjectSpaceNormal@18$MDLMaterialSemanticOpacity@15$MDLMaterialSemanticRoughness@6$MDLMaterialSemanticSheen@9$MDLMaterialSemanticSheenTint@10$MDLMaterialSemanticSpecular@3$MDLMaterialSemanticSpecularExponent@4$MDLMaterialSemanticSpecularTint@5$MDLMaterialSemanticSubsurface@1$MDLMaterialSemanticTangentSpaceNormal@19$MDLMaterialSemanticUserDefined@32769$MDLMaterialTextureFilterModeLinear@1$MDLMaterialTextureFilterModeNearest@0$MDLMaterialTextureWrapModeClamp@0$MDLMaterialTextureWrapModeMirror@2$MDLMaterialTextureWrapModeRepeat@1$MDLMeshBufferTypeCustom@3$MDLMeshBufferTypeIndex@2$MDLMeshBufferTypeVertex@1$MDLPrimitiveTypeCapsule@3$MDLPrimitiveTypeCone@2$MDLPrimitiveTypeCube@0$MDLPrimitiveTypeCylinder@4$MDLPrimitiveTypeNone@5$MDLPrimitiveTypeSphere@1$MDLProbePlacementIrradianceDistribution@1$MDLProbePlacementUniformGrid@0$MDLTextureChannelEncodingFloat16@258$MDLTextureChannelEncodingFloat16SR@770$MDLTextureChannelEncodingFloat32@260$MDLTextureChannelEncodingUInt16@2$MDLTextureChannelEncodingUInt24@3$MDLTextureChannelEncodingUInt32@4$MDLTextureChannelEncodingUInt8@1$MDLTextureChannelEncodingUint16@2$MDLTextureChannelEncodingUint24@3$MDLTextureChannelEncodingUint32@4$MDLTextureChannelEncodingUint8@1$MDLTransformOpRotationOrderXYZ@1$MDLTransformOpRotationOrderXZY@2$MDLTransformOpRotationOrderYXZ@3$MDLTransformOpRotationOrderYZX@4$MDLTransformOpRotationOrderZXY@5$MDLTransformOpRotationOrderZYX@6$MDLVertexFormatChar@131073$MDLVertexFormatChar2@131074$MDLVertexFormatChar2Normalized@262146$MDLVertexFormatChar3@131075$MDLVertexFormatChar3Normalized@262147$MDLVertexFormatChar4@131076$MDLVertexFormatChar4Normalized@262148$MDLVertexFormatCharBits@131072$MDLVertexFormatCharNormalized@262145$MDLVertexFormatCharNormalizedBits@262144$MDLVertexFormatFloat@786433$MDLVertexFormatFloat2@786434$MDLVertexFormatFloat3@786435$MDLVertexFormatFloat4@786436$MDLVertexFormatFloatBits@786432$MDLVertexFormatHalf@720897$MDLVertexFormatHalf2@720898$MDLVertexFormatHalf3@720899$MDLVertexFormatHalf4@720900$MDLVertexFormatHalfBits@720896$MDLVertexFormatInt@655361$MDLVertexFormatInt1010102Normalized@659460$MDLVertexFormatInt2@655362$MDLVertexFormatInt3@655363$MDLVertexFormatInt4@655364$MDLVertexFormatIntBits@655360$MDLVertexFormatInvalid@0$MDLVertexFormatPackedBit@4096$MDLVertexFormatShort@393217$MDLVertexFormatShort2@393218$MDLVertexFormatShort2Normalized@524290$MDLVertexFormatShort3@393219$MDLVertexFormatShort3Normalized@524291$MDLVertexFormatShort4@393220$MDLVertexFormatShort4Normalized@524292$MDLVertexFormatShortBits@393216$MDLVertexFormatShortNormalized@524289$MDLVertexFormatShortNormalizedBits@524288$MDLVertexFormatUChar@65537$MDLVertexFormatUChar2@65538$MDLVertexFormatUChar2Normalized@196610$MDLVertexFormatUChar3@65539$MDLVertexFormatUChar3Normalized@196611$MDLVertexFormatUChar4@65540$MDLVertexFormatUChar4Normalized@196612$MDLVertexFormatUCharBits@65536$MDLVertexFormatUCharNormalized@196609$MDLVertexFormatUCharNormalizedBits@196608$MDLVertexFormatUInt@589825$MDLVertexFormatUInt1010102Normalized@593924$MDLVertexFormatUInt2@589826$MDLVertexFormatUInt3@589827$MDLVertexFormatUInt4@589828$MDLVertexFormatUIntBits@589824$MDLVertexFormatUShort@327681$MDLVertexFormatUShort2@327682$MDLVertexFormatUShort2Normalized@458754$MDLVertexFormatUShort3@327683$MDLVertexFormatUShort3Normalized@458755$MDLVertexFormatUShort4@327684$MDLVertexFormatUShort4Normalized@458756$MDLVertexFormatUShortBits@327680$MDLVertexFormatUShortNormalized@458753$MDLVertexFormatUShortNormalizedBits@458752$"""
46
+ enums = """$MDLAnimatedValueInterpolationConstant@0$MDLAnimatedValueInterpolationLinear@1$MDLCameraProjectionOrthographic@1$MDLCameraProjectionPerspective@0$MDLDataPrecisionDouble@2$MDLDataPrecisionFloat@1$MDLDataPrecisionUndefined@0$MDLGeometryTypeLines@1$MDLGeometryTypePoints@0$MDLGeometryTypeQuads@4$MDLGeometryTypeTriangleStrips@3$MDLGeometryTypeTriangles@2$MDLGeometryTypeVariableTopology@5$MDLIndexBitDepthInvalid@0$MDLIndexBitDepthUInt16@16$MDLIndexBitDepthUInt32@32$MDLIndexBitDepthUInt8@8$MDLIndexBitDepthUint16@16$MDLIndexBitDepthUint32@32$MDLIndexBitDepthUint8@8$MDLLightTypeAmbient@1$MDLLightTypeDirectional@2$MDLLightTypeDiscArea@6$MDLLightTypeEnvironment@11$MDLLightTypeLinear@5$MDLLightTypePhotometric@9$MDLLightTypePoint@4$MDLLightTypeProbe@10$MDLLightTypeRectangularArea@7$MDLLightTypeSpot@3$MDLLightTypeSuperElliptical@8$MDLLightTypeUnknown@0$MDLMaterialFaceBack@1$MDLMaterialFaceDoubleSided@2$MDLMaterialFaceFront@0$MDLMaterialMipMapFilterModeLinear@1$MDLMaterialMipMapFilterModeNearest@0$MDLMaterialPropertyTypeBuffer@10$MDLMaterialPropertyTypeColor@4$MDLMaterialPropertyTypeFloat@5$MDLMaterialPropertyTypeFloat2@6$MDLMaterialPropertyTypeFloat3@7$MDLMaterialPropertyTypeFloat4@8$MDLMaterialPropertyTypeMatrix44@9$MDLMaterialPropertyTypeNone@0$MDLMaterialPropertyTypeString@1$MDLMaterialPropertyTypeTexture@3$MDLMaterialPropertyTypeURL@2$MDLMaterialSemanticAmbientOcclusion@22$MDLMaterialSemanticAmbientOcclusionScale@23$MDLMaterialSemanticAnisotropic@7$MDLMaterialSemanticAnisotropicRotation@8$MDLMaterialSemanticBaseColor@0$MDLMaterialSemanticBump@14$MDLMaterialSemanticClearcoat@11$MDLMaterialSemanticClearcoatGloss@12$MDLMaterialSemanticDisplacement@20$MDLMaterialSemanticDisplacementScale@21$MDLMaterialSemanticEmission@13$MDLMaterialSemanticInterfaceIndexOfRefraction@16$MDLMaterialSemanticMaterialIndexOfRefraction@17$MDLMaterialSemanticMetallic@2$MDLMaterialSemanticNone@32768$MDLMaterialSemanticObjectSpaceNormal@18$MDLMaterialSemanticOpacity@15$MDLMaterialSemanticRoughness@6$MDLMaterialSemanticSheen@9$MDLMaterialSemanticSheenTint@10$MDLMaterialSemanticSpecular@3$MDLMaterialSemanticSpecularExponent@4$MDLMaterialSemanticSpecularTint@5$MDLMaterialSemanticSubsurface@1$MDLMaterialSemanticTangentSpaceNormal@19$MDLMaterialSemanticUserDefined@32769$MDLMaterialTextureFilterModeLinear@1$MDLMaterialTextureFilterModeNearest@0$MDLMaterialTextureWrapModeClamp@0$MDLMaterialTextureWrapModeMirror@2$MDLMaterialTextureWrapModeRepeat@1$MDLMeshBufferTypeCustom@3$MDLMeshBufferTypeIndex@2$MDLMeshBufferTypeVertex@1$MDLProbePlacementIrradianceDistribution@1$MDLProbePlacementUniformGrid@0$MDLTextureChannelEncodingFloat16@258$MDLTextureChannelEncodingFloat16SR@770$MDLTextureChannelEncodingFloat32@260$MDLTextureChannelEncodingUInt16@2$MDLTextureChannelEncodingUInt24@3$MDLTextureChannelEncodingUInt32@4$MDLTextureChannelEncodingUInt8@1$MDLTextureChannelEncodingUint16@2$MDLTextureChannelEncodingUint24@3$MDLTextureChannelEncodingUint32@4$MDLTextureChannelEncodingUint8@1$MDLTransformOpRotationOrderXYZ@1$MDLTransformOpRotationOrderXZY@2$MDLTransformOpRotationOrderYXZ@3$MDLTransformOpRotationOrderYZX@4$MDLTransformOpRotationOrderZXY@5$MDLTransformOpRotationOrderZYX@6$MDLVertexFormatChar@131073$MDLVertexFormatChar2@131074$MDLVertexFormatChar2Normalized@262146$MDLVertexFormatChar3@131075$MDLVertexFormatChar3Normalized@262147$MDLVertexFormatChar4@131076$MDLVertexFormatChar4Normalized@262148$MDLVertexFormatCharBits@131072$MDLVertexFormatCharNormalized@262145$MDLVertexFormatCharNormalizedBits@262144$MDLVertexFormatFloat@786433$MDLVertexFormatFloat2@786434$MDLVertexFormatFloat3@786435$MDLVertexFormatFloat4@786436$MDLVertexFormatFloatBits@786432$MDLVertexFormatHalf@720897$MDLVertexFormatHalf2@720898$MDLVertexFormatHalf3@720899$MDLVertexFormatHalf4@720900$MDLVertexFormatHalfBits@720896$MDLVertexFormatInt@655361$MDLVertexFormatInt1010102Normalized@659460$MDLVertexFormatInt2@655362$MDLVertexFormatInt3@655363$MDLVertexFormatInt4@655364$MDLVertexFormatIntBits@655360$MDLVertexFormatInvalid@0$MDLVertexFormatPackedBit@4096$MDLVertexFormatShort@393217$MDLVertexFormatShort2@393218$MDLVertexFormatShort2Normalized@524290$MDLVertexFormatShort3@393219$MDLVertexFormatShort3Normalized@524291$MDLVertexFormatShort4@393220$MDLVertexFormatShort4Normalized@524292$MDLVertexFormatShortBits@393216$MDLVertexFormatShortNormalized@524289$MDLVertexFormatShortNormalizedBits@524288$MDLVertexFormatUChar@65537$MDLVertexFormatUChar2@65538$MDLVertexFormatUChar2Normalized@196610$MDLVertexFormatUChar3@65539$MDLVertexFormatUChar3Normalized@196611$MDLVertexFormatUChar4@65540$MDLVertexFormatUChar4Normalized@196612$MDLVertexFormatUCharBits@65536$MDLVertexFormatUCharNormalized@196609$MDLVertexFormatUCharNormalizedBits@196608$MDLVertexFormatUInt@589825$MDLVertexFormatUInt1010102Normalized@593924$MDLVertexFormatUInt2@589826$MDLVertexFormatUInt3@589827$MDLVertexFormatUInt4@589828$MDLVertexFormatUIntBits@589824$MDLVertexFormatUShort@327681$MDLVertexFormatUShort2@327682$MDLVertexFormatUShort2Normalized@458754$MDLVertexFormatUShort3@327683$MDLVertexFormatUShort3Normalized@458755$MDLVertexFormatUShort4@327684$MDLVertexFormatUShort4Normalized@458756$MDLVertexFormatUShortBits@327680$MDLVertexFormatUShortNormalized@458753$MDLVertexFormatUShortNormalizedBits@458752$"""
49
47
  misc.update(
50
48
  {
51
49
  "MDLMaterialTextureFilterMode": NewType("MDLMaterialTextureFilterMode", int),
@@ -78,9 +76,9 @@ try:
78
76
  {
79
77
  "arguments": {
80
78
  2: {
79
+ "c_array_length_in_arg": 3,
81
80
  "c_array_length_in_result": True,
82
81
  "type_modifier": b"o",
83
- "c_array_length_in_arg": 3,
84
82
  }
85
83
  }
86
84
  },
@@ -91,9 +89,9 @@ try:
91
89
  {
92
90
  "arguments": {
93
91
  2: {
92
+ "c_array_length_in_arg": 3,
94
93
  "c_array_length_in_result": True,
95
94
  "type_modifier": b"o",
96
- "c_array_length_in_arg": 3,
97
95
  }
98
96
  }
99
97
  },
@@ -378,9 +376,9 @@ try:
378
376
  {
379
377
  "arguments": {
380
378
  2: {
379
+ "c_array_length_in_arg": 3,
381
380
  "c_array_length_in_result": True,
382
381
  "type_modifier": b"o",
383
- "c_array_length_in_arg": 3,
384
382
  }
385
383
  }
386
384
  },
@@ -391,9 +389,9 @@ try:
391
389
  {
392
390
  "arguments": {
393
391
  2: {
392
+ "c_array_length_in_arg": 3,
394
393
  "c_array_length_in_result": True,
395
394
  "type_modifier": b"o",
396
- "c_array_length_in_arg": 3,
397
395
  }
398
396
  }
399
397
  },
@@ -450,9 +448,9 @@ try:
450
448
  {
451
449
  "arguments": {
452
450
  2: {
451
+ "c_array_length_in_arg": 3,
453
452
  "c_array_length_in_result": True,
454
453
  "type_modifier": b"o",
455
- "c_array_length_in_arg": 3,
456
454
  }
457
455
  }
458
456
  },
@@ -463,9 +461,9 @@ try:
463
461
  {
464
462
  "arguments": {
465
463
  2: {
464
+ "c_array_length_in_arg": 3,
466
465
  "c_array_length_in_result": True,
467
466
  "type_modifier": b"o",
468
- "c_array_length_in_arg": 3,
469
467
  }
470
468
  }
471
469
  },
@@ -476,9 +474,9 @@ try:
476
474
  {
477
475
  "arguments": {
478
476
  2: {
477
+ "c_array_length_in_arg": 3,
479
478
  "c_array_length_in_result": True,
480
479
  "type_modifier": b"o",
481
- "c_array_length_in_arg": 3,
482
480
  }
483
481
  }
484
482
  },
@@ -489,9 +487,9 @@ try:
489
487
  {
490
488
  "arguments": {
491
489
  2: {
490
+ "c_array_length_in_arg": 3,
492
491
  "c_array_length_in_result": True,
493
492
  "type_modifier": b"o",
494
- "c_array_length_in_arg": 3,
495
493
  }
496
494
  }
497
495
  },
@@ -563,8 +561,8 @@ try:
563
561
  b"resetWithFloatArray:atTimes:count:",
564
562
  {
565
563
  "arguments": {
566
- 2: {"type_modifier": b"n", "c_array_length_in_arg": 3},
567
- 4: {"type_modifier": b"n", "c_array_length_in_arg": 5},
564
+ 2: {"type_modifier": b"n", "c_array_length_in_arg": 4},
565
+ 3: {"type_modifier": b"n", "c_array_length_in_arg": 4},
568
566
  }
569
567
  },
570
568
  )
@@ -594,9 +592,9 @@ try:
594
592
  {
595
593
  "arguments": {
596
594
  2: {
595
+ "c_array_length_in_arg": 3,
597
596
  "c_array_length_in_result": True,
598
597
  "type_modifier": b"o",
599
- "c_array_length_in_arg": 3,
600
598
  }
601
599
  }
602
600
  },
@@ -621,9 +619,9 @@ try:
621
619
  {
622
620
  "arguments": {
623
621
  2: {
622
+ "c_array_length_in_arg": 3,
624
623
  "c_array_length_in_result": True,
625
624
  "type_modifier": b"o",
626
- "c_array_length_in_arg": 3,
627
625
  }
628
626
  }
629
627
  },
@@ -634,9 +632,9 @@ try:
634
632
  {
635
633
  "arguments": {
636
634
  2: {
635
+ "c_array_length_in_arg": 3,
637
636
  "c_array_length_in_result": True,
638
637
  "type_modifier": b"o",
639
- "c_array_length_in_arg": 3,
640
638
  }
641
639
  }
642
640
  },
@@ -727,9 +725,9 @@ try:
727
725
  {
728
726
  "arguments": {
729
727
  2: {
728
+ "c_array_length_in_arg": 3,
730
729
  "c_array_length_in_result": True,
731
730
  "type_modifier": b"o",
732
- "c_array_length_in_arg": 3,
733
731
  }
734
732
  }
735
733
  },
@@ -740,9 +738,9 @@ try:
740
738
  {
741
739
  "arguments": {
742
740
  2: {
741
+ "c_array_length_in_arg": 3,
743
742
  "c_array_length_in_result": True,
744
743
  "type_modifier": b"o",
745
- "c_array_length_in_arg": 3,
746
744
  }
747
745
  }
748
746
  },
@@ -943,9 +941,9 @@ try:
943
941
  {
944
942
  "arguments": {
945
943
  2: {
944
+ "c_array_length_in_arg": 3,
946
945
  "c_array_length_in_result": True,
947
946
  "type_modifier": b"o",
948
- "c_array_length_in_arg": 3,
949
947
  }
950
948
  }
951
949
  },
@@ -956,9 +954,9 @@ try:
956
954
  {
957
955
  "arguments": {
958
956
  2: {
957
+ "c_array_length_in_arg": 3,
959
958
  "c_array_length_in_result": True,
960
959
  "type_modifier": b"o",
961
- "c_array_length_in_arg": 3,
962
960
  }
963
961
  }
964
962
  },
@@ -1091,7 +1089,7 @@ try:
1091
1089
  r(
1092
1090
  b"MDLAsset",
1093
1091
  b"exportAssetToURL:error:",
1094
- {"retval": {"type": "Z"}, "arguments": {3: {"type_modifier": b"o"}}},
1092
+ {"retval": {"type": b"Z"}, "arguments": {3: {"type_modifier": b"o"}}},
1095
1093
  )
1096
1094
  r(
1097
1095
  b"MDLAsset",
@@ -1101,7 +1099,7 @@ try:
1101
1099
  r(
1102
1100
  b"MDLAsset",
1103
1101
  b"initWithURL:vertexDescriptor:bufferAllocator:preserveTopology:error:",
1104
- {"arguments": {5: {"type": "Z"}, 6: {"type_modifier": b"o"}}},
1102
+ {"arguments": {5: {"type": b"Z"}, 6: {"type_modifier": b"o"}}},
1105
1103
  )
1106
1104
  r(
1107
1105
  b"MDLAsset",
@@ -1569,13 +1567,14 @@ try:
1569
1567
  r(
1570
1568
  b"MDLMesh",
1571
1569
  b"makeVerticesUniqueAndReturnError:",
1572
- {"retval": {"type": "Z"}, "arguments": {2: {"type_modifier": b"o"}}},
1570
+ {"retval": {"type": b"Z"}, "arguments": {2: {"type_modifier": b"o"}}},
1573
1571
  )
1574
1572
  r(
1575
1573
  b"MDLMesh",
1576
1574
  b"newBoxWithDimensions:segments:geometryType:inwardNormals:allocator:",
1577
1575
  {
1578
1576
  "full_signature": b"@@:<3f><3I>qZ@",
1577
+ "retval": {"already_retained": True},
1579
1578
  "arguments": {2: {"type": b"<3f>"}, 3: {"type": b"<3I>"}, 5: {"type": "Z"}},
1580
1579
  },
1581
1580
  )
@@ -1584,6 +1583,7 @@ try:
1584
1583
  b"newCapsuleWithHeight:radii:radialSegments:verticalSegments:hemisphereSegments:geometryType:inwardNormals:allocator:",
1585
1584
  {
1586
1585
  "full_signature": b"@@:f<2f>QQQqZ@",
1586
+ "retval": {"already_retained": True},
1587
1587
  "arguments": {3: {"type": b"<2f>"}, 8: {"type": "Z"}},
1588
1588
  },
1589
1589
  )
@@ -1592,6 +1592,7 @@ try:
1592
1592
  b"newCylinderWithHeight:radii:radialSegments:verticalSegments:geometryType:inwardNormals:allocator:",
1593
1593
  {
1594
1594
  "full_signature": b"@@:f<2f>QQqZ@",
1595
+ "retval": {"already_retained": True},
1595
1596
  "arguments": {3: {"type": b"<2f>"}, 7: {"type": "Z"}},
1596
1597
  },
1597
1598
  )
@@ -1600,6 +1601,7 @@ try:
1600
1601
  b"newEllipsoidWithRadii:radialSegments:verticalSegments:geometryType:inwardNormals:hemisphere:allocator:",
1601
1602
  {
1602
1603
  "full_signature": b"@@:<3f>QQqZZ@",
1604
+ "retval": {"already_retained": True},
1603
1605
  "arguments": {2: {"type": b"<3f>"}, 6: {"type": "Z"}, 7: {"type": "Z"}},
1604
1606
  },
1605
1607
  )
@@ -1608,6 +1610,7 @@ try:
1608
1610
  b"newEllipticalConeWithHeight:radii:radialSegments:verticalSegments:geometryType:inwardNormals:allocator:",
1609
1611
  {
1610
1612
  "full_signature": b"@@:f<2f>QQqZ@",
1613
+ "retval": {"already_retained": True},
1611
1614
  "arguments": {3: {"type": b"<2f>"}, 7: {"type": "Z"}},
1612
1615
  },
1613
1616
  )
@@ -1619,21 +1622,22 @@ try:
1619
1622
  r(
1620
1623
  b"MDLMesh",
1621
1624
  b"newIcosahedronWithRadius:inwardNormals:geometryType:allocator:",
1622
- {"arguments": {3: {"type": b"Z"}}},
1623
- )
1624
- r(
1625
- b"MDLMesh",
1626
- b"newMeshWithPrimitive:segments:inwardNormals:geometryType:allocator:",
1627
- {"arguments": {4: {"type": "Z"}}},
1625
+ {"retval": {"already_retained": True}, "arguments": {3: {"type": b"Z"}}},
1628
1626
  )
1629
1627
  r(
1630
1628
  b"MDLMesh",
1631
1629
  b"newPlaneWithDimensions:segments:geometryType:allocator:",
1632
1630
  {
1633
1631
  "full_signature": b"@@:<2f><2I>q@",
1632
+ "retval": {"already_retained": True},
1634
1633
  "arguments": {2: {"type": b"<2f>"}, 3: {"type": b"<2I>"}},
1635
1634
  },
1636
1635
  )
1636
+ r(
1637
+ b"MDLMesh",
1638
+ b"newSubdividedMesh:submeshIndex:subdivisionLevels:",
1639
+ {"retval": {"already_retained": True}},
1640
+ )
1637
1641
  r(b"MDLMeshBufferMap", b"bytes", {"retval": {"c_array_of_variable_length": True}})
1638
1642
  r(
1639
1643
  b"MDLMeshBufferMap",
@@ -1656,9 +1660,9 @@ try:
1656
1660
  {
1657
1661
  "arguments": {
1658
1662
  2: {
1663
+ "c_array_length_in_arg": 3,
1659
1664
  "c_array_length_in_result": True,
1660
1665
  "type_modifier": b"o",
1661
- "c_array_length_in_arg": 3,
1662
1666
  }
1663
1667
  }
1664
1668
  },
@@ -1669,9 +1673,9 @@ try:
1669
1673
  {
1670
1674
  "arguments": {
1671
1675
  2: {
1676
+ "c_array_length_in_arg": 3,
1672
1677
  "c_array_length_in_result": True,
1673
1678
  "type_modifier": b"o",
1674
- "c_array_length_in_arg": 3,
1675
1679
  }
1676
1680
  }
1677
1681
  },
@@ -2190,7 +2194,7 @@ try:
2190
2194
  b"newBuffer:type:",
2191
2195
  {
2192
2196
  "required": True,
2193
- "retval": {"type": b"@"},
2197
+ "retval": {"already_retained": True, "type": b"@"},
2194
2198
  "arguments": {2: {"type": "Q"}, 3: {"type": "Q"}},
2195
2199
  },
2196
2200
  )
@@ -2199,7 +2203,7 @@ try:
2199
2203
  b"newBufferFromZone:data:type:",
2200
2204
  {
2201
2205
  "required": True,
2202
- "retval": {"type": b"@"},
2206
+ "retval": {"already_retained": True, "type": b"@"},
2203
2207
  "arguments": {2: {"type": b"@"}, 3: {"type": b"@"}, 4: {"type": "Q"}},
2204
2208
  },
2205
2209
  )
@@ -2208,7 +2212,7 @@ try:
2208
2212
  b"newBufferFromZone:length:type:",
2209
2213
  {
2210
2214
  "required": True,
2211
- "retval": {"type": b"@"},
2215
+ "retval": {"already_retained": True, "type": b"@"},
2212
2216
  "arguments": {2: {"type": b"@"}, 3: {"type": "Q"}, 4: {"type": "Q"}},
2213
2217
  },
2214
2218
  )
@@ -2217,21 +2221,25 @@ try:
2217
2221
  b"newBufferWithData:type:",
2218
2222
  {
2219
2223
  "required": True,
2220
- "retval": {"type": b"@"},
2224
+ "retval": {"already_retained": True, "type": b"@"},
2221
2225
  "arguments": {2: {"type": b"@"}, 3: {"type": "Q"}},
2222
2226
  },
2223
2227
  )
2224
2228
  r(
2225
2229
  b"NSObject",
2226
2230
  b"newZone:",
2227
- {"required": True, "retval": {"type": b"@"}, "arguments": {2: {"type": "Q"}}},
2231
+ {
2232
+ "required": True,
2233
+ "retval": {"already_retained": True, "type": b"@"},
2234
+ "arguments": {2: {"type": "Q"}},
2235
+ },
2228
2236
  )
2229
2237
  r(
2230
2238
  b"NSObject",
2231
2239
  b"newZoneForBuffersWithSize:andType:",
2232
2240
  {
2233
2241
  "required": True,
2234
- "retval": {"type": b"@"},
2242
+ "retval": {"already_retained": True, "type": b"@"},
2235
2243
  "arguments": {2: {"type": b"@"}, 3: {"type": b"@"}},
2236
2244
  },
2237
2245
  )
@@ -2613,5 +2621,18 @@ objc.registerNewKeywords(
2613
2621
  "MDLTexture", ("imagesNamed", "bundle"), "textureCubeWithImagesNamed_bundle_"
2614
2622
  )
2615
2623
  expressions = {}
2624
+ formal_protocols = {
2625
+ "MDLAssetResolver": "MDLAssetResolver",
2626
+ "MDLComponent": "MDLComponent",
2627
+ "MDLJointAnimation": "MDLJointAnimation",
2628
+ "MDLLightProbeIrradianceDataSource": "MDLLightProbeIrradianceDataSource",
2629
+ "MDLMeshBuffer": "MDLMeshBuffer",
2630
+ "MDLMeshBufferAllocator": "MDLMeshBufferAllocator",
2631
+ "MDLMeshBufferZone": "MDLMeshBufferZone",
2632
+ "MDLNamed": "MDLNamed",
2633
+ "MDLObjectContainerComponent": "MDLObjectContainerComponent",
2634
+ "MDLTransformComponent": "MDLTransformComponent",
2635
+ "MDLTransformOp": "MDLTransformOp",
2636
+ }
2616
2637
 
2617
2638
  # END OF FILE
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyobjc-framework-ModelIO
3
- Version: 12.2.2
3
+ Version: 13.0
4
4
  Summary: Wrappers for the framework ModelIO 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.10
31
+ Requires-Python: >=3.11
32
32
  Description-Content-Type: text/x-rst; charset=UTF-8
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
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
@@ -27,7 +27,6 @@ PyObjCTest/test_mdlmaterial.py
27
27
  PyObjCTest/test_mdlmesh.py
28
28
  PyObjCTest/test_mdlmeshbuffer.py
29
29
  PyObjCTest/test_mdlobject.py
30
- PyObjCTest/test_mdlprimitive.py
31
30
  PyObjCTest/test_mdltexture.py
32
31
  PyObjCTest/test_mdltransform.py
33
32
  PyObjCTest/test_mdltransformstack.py
@@ -38,5 +37,5 @@ PyObjCTest/test_mdlvoxelarray.py
38
37
  PyObjCTest/test_modelio.py
39
38
  metadata/ModelIO.fwinfo
40
39
  metadata/metadata.ini
41
- metadata/raw/arm64-26.5.fwinfo
42
- metadata/raw/x86_64-26.5.fwinfo
40
+ metadata/raw/arm64-27.fwinfo
41
+ metadata/raw/x86_64-27.fwinfo
@@ -0,0 +1,3 @@
1
+ macOS 27.2 (26B123)
2
+ Apple clang version 21.0.0 (clang-2100.4.1.1)
3
+ SDK: macOS 27.2
@@ -0,0 +1,3 @@
1
+ pyobjc-core>=13.0
2
+ pyobjc-framework-Cocoa>=13.0
3
+ pyobjc-framework-Quartz>=13.0
@@ -2,6 +2,10 @@
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
  #import <Foundation/Foundation.h>
6
10
  #import <ModelIO/ModelIO.h>
7
11
 
@@ -10,6 +14,8 @@
10
14
  */
11
15
  #include "_ModelIO_protocols.m"
12
16
 
17
+ NS_ASSUME_NONNULL_BEGIN
18
+
13
19
  static PyMethodDef mod_methods[] = {
14
20
  {0, 0, 0, 0} /* sentinel */
15
21
  };
@@ -55,10 +61,11 @@ static struct PyModuleDef mod_module = {
55
61
  .m_free = NULL,
56
62
  };
57
63
 
58
- PyObject* PyInit__ModelIO(void);
64
+ PyObject* _Nullable PyInit__ModelIO(void);
59
65
 
60
- PyObject* __attribute__((__visibility__("default")))
66
+ PyObject* _Nullable __attribute__((__visibility__("default")))
61
67
  PyInit__ModelIO(void)
62
68
  {
63
69
  return PyModuleDef_Init(&mod_module);
64
70
  }
71
+ NS_ASSUME_NONNULL_END
@@ -1,3 +1,8 @@
1
+ // LCOV_EXCL_START
2
+ // This function is only present to ensure protocols are
3
+ // available at runtime.
4
+ NS_ASSUME_NONNULL_BEGIN
5
+
1
6
  static void __attribute__((__used__))
2
7
  use_protocols(void)
3
8
  {
@@ -29,3 +34,6 @@ use_protocols(void)
29
34
  Py_XDECREF(p);
30
35
  #endif
31
36
  }
37
+
38
+ NS_ASSUME_NONNULL_END
39
+ // 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
@@ -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-ModelIO
3
- Version: 12.2.2
3
+ Version: 13.0
4
4
  Summary: Wrappers for the framework ModelIO 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.10
31
+ Requires-Python: >=3.11
32
32
  Description-Content-Type: text/x-rst; charset=UTF-8
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
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
@@ -4,15 +4,13 @@ from objc import simd
4
4
 
5
5
 
6
6
  class TestMDLAnimatedValue(TestCase):
7
- def test_enum_types(self):
7
+ def test_enums(self):
8
8
  self.assertIsEnumType(ModelIO.MDLAnimatedValueInterpolation)
9
-
10
- def testConstants(self):
11
9
  self.assertEqual(ModelIO.MDLAnimatedValueInterpolationConstant, 0)
12
10
  self.assertEqual(ModelIO.MDLAnimatedValueInterpolationLinear, 1)
13
11
 
14
12
  @min_os_level("10.13")
15
- def testMethods(self):
13
+ def test_methods(self):
16
14
  self.assertResultIsBOOL(ModelIO.MDLAnimatedValue.isAnimated)
17
15
 
18
16
  self.assertArgIsOut(ModelIO.MDLAnimatedValue.getTimes_maxCount_, 0)
@@ -154,7 +152,7 @@ class TestMDLAnimatedValue(TestCase):
154
152
  self.assertArgIsOut(ModelIO.MDLAnimatedScalar.getDoubleArray_maxCount_, 0)
155
153
 
156
154
  @min_os_level("10.13")
157
- def testMethodsVector(self):
155
+ def test_methods_simd(self):
158
156
  self.assertArgHasType(
159
157
  ModelIO.MDLAnimatedVector3Array.setFloat3Array_count_atTime_,
160
158
  0,
@@ -5,8 +5,8 @@ from objc import simd
5
5
 
6
6
  class TestMDLAnimation(TestCase):
7
7
  @min_sdk_level("10.13")
8
- def testProtocols(self):
9
- self.assertProtocolExists("MDLJointAnimation")
8
+ def test_protocols(self):
9
+ self.assertProtocolExists("MDLJointAnimation", ModelIO)
10
10
 
11
11
  @min_os_level("10.13")
12
12
  def test_methods(self):