pyobjc-framework-Vision 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 (79) hide show
  1. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/Lib/Vision/_metadata.py +47 -43
  2. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/Lib/pyobjc_framework_Vision.egg-info/PKG-INFO +7 -7
  3. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/Lib/pyobjc_framework_Vision.egg-info/SOURCES.txt +2 -5
  4. pyobjc_framework_vision-13.0/Lib/pyobjc_framework_Vision.egg-info/pyobjc-build-info.txt +3 -0
  5. pyobjc_framework_vision-13.0/Lib/pyobjc_framework_Vision.egg-info/requires.txt +4 -0
  6. pyobjc_framework_vision-13.0/Modules/_Vision.m +67 -0
  7. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/Modules/_Vision_protocols.m +8 -0
  8. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/Modules/pyobjc-api.h +18 -4
  9. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/Modules/pyobjc-compat.h +0 -18
  10. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/PKG-INFO +7 -7
  11. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vision.py +1 -1
  12. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vncoremlrequest.py +1 -1
  13. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vndetectfacelandmarksrequest.py +1 -3
  14. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vndetecthumanbodyposerequest.py +2 -2
  15. pyobjc_framework_vision-12.2.2/PyObjCTest/test_vndetecthumanHandposerequest.py → pyobjc_framework_vision-13.0/PyObjCTest/test_vndetecthumanhandposerequest.py +1 -1
  16. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vndetectpoint.py +1 -1
  17. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vndetecttextrectanglesrequest.py +1 -1
  18. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vnerror.py +3 -3
  19. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vnfacelandmarks.py +1 -1
  20. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vnfaceobservationaccepting.py +2 -2
  21. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vngenerateopticalflowrequest.py +1 -3
  22. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vngeneratepersonsegmentationrequest.py +1 -3
  23. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vnobservation.py +1 -1
  24. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vnrecognizeanimalsrequest.py +1 -1
  25. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vnrecognizetextrequest.py +1 -3
  26. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vnrequest.py +13 -12
  27. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vnrequesthandler.py +4 -4
  28. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vnrequestrevisionproviding.py +5 -5
  29. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vntargetedimagerequest.py +3 -3
  30. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vntrackingrequest.py +3 -5
  31. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vntrackobjectrequest.py +1 -1
  32. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vntrackopticalflowrequest.py +1 -1
  33. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vntrackrectanglerequest.py +1 -1
  34. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vntypes.py +26 -27
  35. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vnutils.py +5 -6
  36. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/metadata/Vision.fwinfo +47 -446
  37. pyobjc_framework_vision-12.2.2/metadata/raw/arm64-26.5.fwinfo → pyobjc_framework_vision-13.0/metadata/raw/arm64-27.fwinfo +10 -3
  38. pyobjc_framework_vision-12.2.2/metadata/raw/x86_64-26.5.fwinfo → pyobjc_framework_vision-13.0/metadata/raw/x86_64-27.fwinfo +10 -3
  39. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/pyobjc_setup.py +7 -7
  40. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/setup.py +1 -1
  41. pyobjc_framework_vision-12.2.2/Lib/pyobjc_framework_Vision.egg-info/pyobjc-build-info.txt +0 -3
  42. pyobjc_framework_vision-12.2.2/Lib/pyobjc_framework_Vision.egg-info/requires.txt +0 -4
  43. pyobjc_framework_vision-12.2.2/Modules/_Vision.m +0 -214
  44. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/Lib/Vision/__init__.py +0 -0
  45. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/Lib/pyobjc_framework_Vision.egg-info/dependency_links.txt +0 -0
  46. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/Lib/pyobjc_framework_Vision.egg-info/not-zip-safe +0 -0
  47. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/Lib/pyobjc_framework_Vision.egg-info/top_level.txt +0 -0
  48. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/License.txt +0 -0
  49. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/MANIFEST.in +0 -0
  50. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/PyObjCTest/__init__.py +0 -0
  51. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vncalculateimageaestheticsscoresrequest.py +0 -0
  52. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vnclassifyimagerequest.py +0 -0
  53. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vndetectanimalbodyposerequest.py +0 -0
  54. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vndetectbarcodesrequest.py +0 -0
  55. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vndetectcontoursrequest.py +0 -0
  56. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vndetectdocumentsegmentationrequest.py +0 -0
  57. /pyobjc_framework_vision-12.2.2/PyObjCTest/test_vndetectfacecapturequalityRequest.py → /pyobjc_framework_vision-13.0/PyObjCTest/test_vndetectfacecapturequalityrequest.py +0 -0
  58. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vndetectfacelandmarks.py +0 -0
  59. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vndetectfacerectanglesrequest.py +0 -0
  60. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vndetecthorizonrequest.py +0 -0
  61. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vndetecthumanbodypose3drequest.py +0 -0
  62. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vndetecthumanrectanglesrequest.py +0 -0
  63. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vndetectrectanglesrequest.py +0 -0
  64. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vndetecttrajectoriesrequest.py +0 -0
  65. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vngenerateattentionbasedsaliencyimagerequest.py +0 -0
  66. /pyobjc_framework_vision-12.2.2/PyObjCTest/test_vngenerateforegroundinstanceMaskrequest.py → /pyobjc_framework_vision-13.0/PyObjCTest/test_vngenerateforegroundinstancemaskrequest.py +0 -0
  67. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vngenerateimagefeatureprintrequest.py +0 -0
  68. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vngenerateobjectnessbasedsaliencyimagerequest.py +0 -0
  69. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vngeneratepersoninstancemaskrequest.py +0 -0
  70. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vngeometry.py +0 -0
  71. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vngeometryutils.py +0 -0
  72. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vnimageregistrationrequest.py +0 -0
  73. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vnstatefulrequest.py +0 -0
  74. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vntrackhomographicimageregistrationrequest.py +0 -0
  75. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vntracktranslationalimageregistrationrequest.py +0 -0
  76. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vnvideoprocessor.py +0 -0
  77. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/metadata/metadata.ini +0 -0
  78. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/pyproject.toml +0 -0
  79. {pyobjc_framework_vision-12.2.2 → pyobjc_framework_vision-13.0}/setup.cfg +0 -0
@@ -1,7 +1,5 @@
1
1
  # This file is generated by objective.metadata
2
2
  #
3
- # Last update: Fri May 29 08:52:53 2026
4
- #
5
3
  # flake8: noqa
6
4
 
7
5
  import objc, sys
@@ -30,8 +28,8 @@ else:
30
28
 
31
29
 
32
30
  misc = {}
33
- constants = """$VNAnimalBodyPoseObservationJointNameLeftBackElbow$VNAnimalBodyPoseObservationJointNameLeftBackKnee$VNAnimalBodyPoseObservationJointNameLeftBackPaw$VNAnimalBodyPoseObservationJointNameLeftEarBottom$VNAnimalBodyPoseObservationJointNameLeftEarMiddle$VNAnimalBodyPoseObservationJointNameLeftEarTop$VNAnimalBodyPoseObservationJointNameLeftEye$VNAnimalBodyPoseObservationJointNameLeftFrontElbow$VNAnimalBodyPoseObservationJointNameLeftFrontKnee$VNAnimalBodyPoseObservationJointNameLeftFrontPaw$VNAnimalBodyPoseObservationJointNameNeck$VNAnimalBodyPoseObservationJointNameNose$VNAnimalBodyPoseObservationJointNameRightBackElbow$VNAnimalBodyPoseObservationJointNameRightBackKnee$VNAnimalBodyPoseObservationJointNameRightBackPaw$VNAnimalBodyPoseObservationJointNameRightEarBottom$VNAnimalBodyPoseObservationJointNameRightEarMiddle$VNAnimalBodyPoseObservationJointNameRightEarTop$VNAnimalBodyPoseObservationJointNameRightEye$VNAnimalBodyPoseObservationJointNameRightFrontElbow$VNAnimalBodyPoseObservationJointNameRightFrontKnee$VNAnimalBodyPoseObservationJointNameRightFrontPaw$VNAnimalBodyPoseObservationJointNameTailBottom$VNAnimalBodyPoseObservationJointNameTailMiddle$VNAnimalBodyPoseObservationJointNameTailTop$VNAnimalBodyPoseObservationJointsGroupNameAll$VNAnimalBodyPoseObservationJointsGroupNameForelegs$VNAnimalBodyPoseObservationJointsGroupNameHead$VNAnimalBodyPoseObservationJointsGroupNameHindlegs$VNAnimalBodyPoseObservationJointsGroupNameTail$VNAnimalBodyPoseObservationJointsGroupNameTrunk$VNAnimalDetectorCat$VNAnimalDetectorDog$VNAnimalIdentifierCat$VNAnimalIdentifierDog$VNBarcodeSymbologyAztec$VNBarcodeSymbologyCodabar$VNBarcodeSymbologyCode128$VNBarcodeSymbologyCode39$VNBarcodeSymbologyCode39Checksum$VNBarcodeSymbologyCode39FullASCII$VNBarcodeSymbologyCode39FullASCIIChecksum$VNBarcodeSymbologyCode93$VNBarcodeSymbologyCode93i$VNBarcodeSymbologyDataMatrix$VNBarcodeSymbologyEAN13$VNBarcodeSymbologyEAN8$VNBarcodeSymbologyGS1DataBar$VNBarcodeSymbologyGS1DataBarExpanded$VNBarcodeSymbologyGS1DataBarLimited$VNBarcodeSymbologyI2of5$VNBarcodeSymbologyI2of5Checksum$VNBarcodeSymbologyITF14$VNBarcodeSymbologyMSIPlessey$VNBarcodeSymbologyMicroPDF417$VNBarcodeSymbologyMicroQR$VNBarcodeSymbologyPDF417$VNBarcodeSymbologyQR$VNBarcodeSymbologyUPCE$VNBodyLandmarkKeyLeftAnkle$VNBodyLandmarkKeyLeftEar$VNBodyLandmarkKeyLeftElbow$VNBodyLandmarkKeyLeftEye$VNBodyLandmarkKeyLeftHip$VNBodyLandmarkKeyLeftKnee$VNBodyLandmarkKeyLeftShoulder$VNBodyLandmarkKeyLeftWrist$VNBodyLandmarkKeyNeck$VNBodyLandmarkKeyNose$VNBodyLandmarkKeyRightAnkle$VNBodyLandmarkKeyRightEar$VNBodyLandmarkKeyRightElbow$VNBodyLandmarkKeyRightEye$VNBodyLandmarkKeyRightHip$VNBodyLandmarkKeyRightKnee$VNBodyLandmarkKeyRightShoulder$VNBodyLandmarkKeyRightWrist$VNBodyLandmarkKeyRoot$VNBodyLandmarkRegionKeyFace$VNBodyLandmarkRegionKeyLeftArm$VNBodyLandmarkRegionKeyLeftLeg$VNBodyLandmarkRegionKeyRightArm$VNBodyLandmarkRegionKeyRightLeg$VNBodyLandmarkRegionKeyTorso$VNComputeStageMain$VNComputeStagePostProcessing$VNErrorDomain$VNHumanBodyPose3DObservationJointNameCenterHead$VNHumanBodyPose3DObservationJointNameCenterShoulder$VNHumanBodyPose3DObservationJointNameLeftAnkle$VNHumanBodyPose3DObservationJointNameLeftElbow$VNHumanBodyPose3DObservationJointNameLeftHip$VNHumanBodyPose3DObservationJointNameLeftKnee$VNHumanBodyPose3DObservationJointNameLeftShoulder$VNHumanBodyPose3DObservationJointNameLeftWrist$VNHumanBodyPose3DObservationJointNameRightAnkle$VNHumanBodyPose3DObservationJointNameRightElbow$VNHumanBodyPose3DObservationJointNameRightHip$VNHumanBodyPose3DObservationJointNameRightKnee$VNHumanBodyPose3DObservationJointNameRightShoulder$VNHumanBodyPose3DObservationJointNameRightWrist$VNHumanBodyPose3DObservationJointNameRoot$VNHumanBodyPose3DObservationJointNameSpine$VNHumanBodyPose3DObservationJointNameTopHead$VNHumanBodyPose3DObservationJointsGroupNameAll$VNHumanBodyPose3DObservationJointsGroupNameHead$VNHumanBodyPose3DObservationJointsGroupNameLeftArm$VNHumanBodyPose3DObservationJointsGroupNameLeftLeg$VNHumanBodyPose3DObservationJointsGroupNameRightArm$VNHumanBodyPose3DObservationJointsGroupNameRightLeg$VNHumanBodyPose3DObservationJointsGroupNameTorso$VNHumanBodyPoseObservationJointNameLeftAnkle$VNHumanBodyPoseObservationJointNameLeftEar$VNHumanBodyPoseObservationJointNameLeftElbow$VNHumanBodyPoseObservationJointNameLeftEye$VNHumanBodyPoseObservationJointNameLeftHip$VNHumanBodyPoseObservationJointNameLeftKnee$VNHumanBodyPoseObservationJointNameLeftShoulder$VNHumanBodyPoseObservationJointNameLeftWrist$VNHumanBodyPoseObservationJointNameNeck$VNHumanBodyPoseObservationJointNameNose$VNHumanBodyPoseObservationJointNameRightAnkle$VNHumanBodyPoseObservationJointNameRightEar$VNHumanBodyPoseObservationJointNameRightElbow$VNHumanBodyPoseObservationJointNameRightEye$VNHumanBodyPoseObservationJointNameRightHip$VNHumanBodyPoseObservationJointNameRightKnee$VNHumanBodyPoseObservationJointNameRightShoulder$VNHumanBodyPoseObservationJointNameRightWrist$VNHumanBodyPoseObservationJointNameRoot$VNHumanBodyPoseObservationJointsGroupNameAll$VNHumanBodyPoseObservationJointsGroupNameFace$VNHumanBodyPoseObservationJointsGroupNameLeftArm$VNHumanBodyPoseObservationJointsGroupNameLeftLeg$VNHumanBodyPoseObservationJointsGroupNameRightArm$VNHumanBodyPoseObservationJointsGroupNameRightLeg$VNHumanBodyPoseObservationJointsGroupNameTorso$VNHumanHandPoseObservationJointNameIndexDIP$VNHumanHandPoseObservationJointNameIndexMCP$VNHumanHandPoseObservationJointNameIndexPIP$VNHumanHandPoseObservationJointNameIndexTip$VNHumanHandPoseObservationJointNameLittleDIP$VNHumanHandPoseObservationJointNameLittleMCP$VNHumanHandPoseObservationJointNameLittlePIP$VNHumanHandPoseObservationJointNameLittleTip$VNHumanHandPoseObservationJointNameMiddleDIP$VNHumanHandPoseObservationJointNameMiddleMCP$VNHumanHandPoseObservationJointNameMiddlePIP$VNHumanHandPoseObservationJointNameMiddleTip$VNHumanHandPoseObservationJointNameRingDIP$VNHumanHandPoseObservationJointNameRingMCP$VNHumanHandPoseObservationJointNameRingPIP$VNHumanHandPoseObservationJointNameRingTip$VNHumanHandPoseObservationJointNameThumbCMC$VNHumanHandPoseObservationJointNameThumbIP$VNHumanHandPoseObservationJointNameThumbMP$VNHumanHandPoseObservationJointNameThumbTip$VNHumanHandPoseObservationJointNameWrist$VNHumanHandPoseObservationJointsGroupNameAll$VNHumanHandPoseObservationJointsGroupNameIndexFinger$VNHumanHandPoseObservationJointsGroupNameLittleFinger$VNHumanHandPoseObservationJointsGroupNameMiddleFinger$VNHumanHandPoseObservationJointsGroupNameRingFinger$VNHumanHandPoseObservationJointsGroupNameThumb$VNImageOptionCIContext$VNImageOptionCameraIntrinsics$VNImageOptionProperties$VNNormalizedIdentityRect@{CGRect={CGPoint=dd}{CGSize=dd}}$VNRecognizedPoint3DGroupKeyAll$VNRecognizedPointGroupKeyAll$VNVideoProcessingOptionFrameCadence$VNVideoProcessingOptionTimeInterval$VNVisionVersionNumber@d$"""
34
- enums = """$VNBarcodeCompositeTypeGS1TypeA@2$VNBarcodeCompositeTypeGS1TypeB@3$VNBarcodeCompositeTypeGS1TypeC@4$VNBarcodeCompositeTypeLinked@1$VNBarcodeCompositeTypeNone@0$VNCalculateImageAestheticsScoresRequestRevision1@1$VNChiralityLeft@-1$VNChiralityRight@1$VNChiralityUnknown@0$VNClassifyImageRequestRevision1@1$VNClassifyImageRequestRevision2@2$VNCoreMLRequestRevision1@1$VNDetectAnimalBodyPoseRequestRevision1@1$VNDetectAnimalRectanglesRequestRevision1@1$VNDetectBarcodesRequestRevision1@1$VNDetectBarcodesRequestRevision2@2$VNDetectBarcodesRequestRevision3@3$VNDetectBarcodesRequestRevision4@4$VNDetectContourRequestRevision1@1$VNDetectDocumentSegmentationRequestRevision1@1$VNDetectFaceCaptureQualityRequestRevision1@1$VNDetectFaceCaptureQualityRequestRevision2@2$VNDetectFaceCaptureQualityRequestRevision3@3$VNDetectFaceLandmarksRequestRevision1@1$VNDetectFaceLandmarksRequestRevision2@2$VNDetectFaceLandmarksRequestRevision3@3$VNDetectFaceQualityRequestRevision1@1$VNDetectFaceRectanglesRequestRevision1@1$VNDetectFaceRectanglesRequestRevision2@2$VNDetectFaceRectanglesRequestRevision3@3$VNDetectHorizonRequestRevision1@1$VNDetectHumanBodyPose3DRequestRevision1@1$VNDetectHumanBodyPoseRequestRevision1@1$VNDetectHumanHandPoseRequestRevision1@1$VNDetectHumanRectanglesRequestRevision1@1$VNDetectHumanRectanglesRequestRevision2@2$VNDetectRectanglesRequestRevision1@1$VNDetectTextRectanglesRequestRevision1@1$VNDetectTrajectoriesRequestRevision1@1$VNElementTypeDouble@2$VNElementTypeFloat@1$VNElementTypeUnknown@0$VNErrorDataUnavailable@17$VNErrorIOError@6$VNErrorInternalError@9$VNErrorInvalidArgument@14$VNErrorInvalidFormat@2$VNErrorInvalidImage@13$VNErrorInvalidModel@15$VNErrorInvalidOperation@12$VNErrorInvalidOption@5$VNErrorMissingOption@7$VNErrorNotImplemented@8$VNErrorOK@0$VNErrorOperationFailed@3$VNErrorOutOfBoundsError@4$VNErrorOutOfMemory@10$VNErrorRequestCancelled@1$VNErrorTimeStampNotFound@18$VNErrorTimeout@20$VNErrorTuriCoreErrorCode@-1$VNErrorUnknownError@11$VNErrorUnsupportedComputeDevice@22$VNErrorUnsupportedComputeStage@21$VNErrorUnsupportedRequest@19$VNErrorUnsupportedRevision@16$VNGenerateAttentionBasedSaliencyImageRequestRevision1@1$VNGenerateAttentionBasedSaliencyImageRequestRevision2@2$VNGenerateForegroundInstanceMaskRequestRevision1@1$VNGenerateImageFeaturePrintRequestRevision1@1$VNGenerateImageFeaturePrintRequestRevision2@2$VNGenerateObjectnessBasedSaliencyImageRequestRevision1@1$VNGenerateObjectnessBasedSaliencyImageRequestRevision2@2$VNGenerateOpticalFlowRequestComputationAccuracyHigh@2$VNGenerateOpticalFlowRequestComputationAccuracyLow@0$VNGenerateOpticalFlowRequestComputationAccuracyMedium@1$VNGenerateOpticalFlowRequestComputationAccuracyVeryHigh@3$VNGenerateOpticalFlowRequestRevision1@1$VNGenerateOpticalFlowRequestRevision2@2$VNGeneratePersonInstanceMaskRequestRevision1@1$VNGeneratePersonSegmentationRequestQualityLevelAccurate@0$VNGeneratePersonSegmentationRequestQualityLevelBalanced@1$VNGeneratePersonSegmentationRequestQualityLevelFast@2$VNGeneratePersonSegmentationRequestRevision1@1$VNHomographicImageRegistrationRequestRevision1@1$VNHumanBodyPose3DObservationHeightEstimationMeasured@1$VNHumanBodyPose3DObservationHeightEstimationReference@0$VNImageCropAndScaleOptionCenterCrop@0$VNImageCropAndScaleOptionScaleFill@2$VNImageCropAndScaleOptionScaleFillRotate90CCW@258$VNImageCropAndScaleOptionScaleFit@1$VNImageCropAndScaleOptionScaleFitRotate90CCW@257$VNPointsClassificationClosedPath@2$VNPointsClassificationDisconnected@0$VNPointsClassificationOpenPath@1$VNRecognizeAnimalsRequestRevision1@1$VNRecognizeAnimalsRequestRevision2@2$VNRecognizeTextRequestRevision1@1$VNRecognizeTextRequestRevision2@2$VNRecognizeTextRequestRevision3@3$VNRequestFaceLandmarksConstellation65Points@1$VNRequestFaceLandmarksConstellation76Points@2$VNRequestFaceLandmarksConstellationNotDefined@0$VNRequestRevisionUnspecified@0$VNRequestTextRecognitionLevelAccurate@0$VNRequestTextRecognitionLevelFast@1$VNRequestTrackingLevelAccurate@0$VNRequestTrackingLevelFast@1$VNTrackHomographicImageRegistrationRequestRevision1@1$VNTrackObjectRequestRevision1@1$VNTrackObjectRequestRevision2@2$VNTrackOpticalFlowRequestComputationAccuracyHigh@2$VNTrackOpticalFlowRequestComputationAccuracyLow@0$VNTrackOpticalFlowRequestComputationAccuracyMedium@1$VNTrackOpticalFlowRequestComputationAccuracyVeryHigh@3$VNTrackOpticalFlowRequestRevision1@1$VNTrackRectangleRequestRevision1@1$VNTrackTranslationalImageRegistrationRequestRevision1@1$VNTranslationalImageRegistrationRequestRevision1@1$"""
31
+ constants = """$VNAnimalBodyPoseObservationJointNameLeftBackElbow$VNAnimalBodyPoseObservationJointNameLeftBackKnee$VNAnimalBodyPoseObservationJointNameLeftBackPaw$VNAnimalBodyPoseObservationJointNameLeftEarBottom$VNAnimalBodyPoseObservationJointNameLeftEarMiddle$VNAnimalBodyPoseObservationJointNameLeftEarTop$VNAnimalBodyPoseObservationJointNameLeftEye$VNAnimalBodyPoseObservationJointNameLeftFrontElbow$VNAnimalBodyPoseObservationJointNameLeftFrontKnee$VNAnimalBodyPoseObservationJointNameLeftFrontPaw$VNAnimalBodyPoseObservationJointNameNeck$VNAnimalBodyPoseObservationJointNameNose$VNAnimalBodyPoseObservationJointNameRightBackElbow$VNAnimalBodyPoseObservationJointNameRightBackKnee$VNAnimalBodyPoseObservationJointNameRightBackPaw$VNAnimalBodyPoseObservationJointNameRightEarBottom$VNAnimalBodyPoseObservationJointNameRightEarMiddle$VNAnimalBodyPoseObservationJointNameRightEarTop$VNAnimalBodyPoseObservationJointNameRightEye$VNAnimalBodyPoseObservationJointNameRightFrontElbow$VNAnimalBodyPoseObservationJointNameRightFrontKnee$VNAnimalBodyPoseObservationJointNameRightFrontPaw$VNAnimalBodyPoseObservationJointNameTailBottom$VNAnimalBodyPoseObservationJointNameTailMiddle$VNAnimalBodyPoseObservationJointNameTailTop$VNAnimalBodyPoseObservationJointsGroupNameAll$VNAnimalBodyPoseObservationJointsGroupNameForelegs$VNAnimalBodyPoseObservationJointsGroupNameHead$VNAnimalBodyPoseObservationJointsGroupNameHindlegs$VNAnimalBodyPoseObservationJointsGroupNameTail$VNAnimalBodyPoseObservationJointsGroupNameTrunk$VNAnimalIdentifierCat$VNAnimalIdentifierDog$VNBarcodeSymbologyAztec$VNBarcodeSymbologyCodabar$VNBarcodeSymbologyCode128$VNBarcodeSymbologyCode39$VNBarcodeSymbologyCode39Checksum$VNBarcodeSymbologyCode39FullASCII$VNBarcodeSymbologyCode39FullASCIIChecksum$VNBarcodeSymbologyCode93$VNBarcodeSymbologyCode93i$VNBarcodeSymbologyDataMatrix$VNBarcodeSymbologyEAN13$VNBarcodeSymbologyEAN8$VNBarcodeSymbologyGS1DataBar$VNBarcodeSymbologyGS1DataBarExpanded$VNBarcodeSymbologyGS1DataBarLimited$VNBarcodeSymbologyI2of5$VNBarcodeSymbologyI2of5Checksum$VNBarcodeSymbologyITF14$VNBarcodeSymbologyMSIPlessey$VNBarcodeSymbologyMicroPDF417$VNBarcodeSymbologyMicroQR$VNBarcodeSymbologyPDF417$VNBarcodeSymbologyQR$VNBarcodeSymbologyUPCE$VNBodyLandmarkKeyLeftAnkle$VNBodyLandmarkKeyLeftEar$VNBodyLandmarkKeyLeftElbow$VNBodyLandmarkKeyLeftEye$VNBodyLandmarkKeyLeftHip$VNBodyLandmarkKeyLeftKnee$VNBodyLandmarkKeyLeftShoulder$VNBodyLandmarkKeyLeftWrist$VNBodyLandmarkKeyNeck$VNBodyLandmarkKeyNose$VNBodyLandmarkKeyRightAnkle$VNBodyLandmarkKeyRightEar$VNBodyLandmarkKeyRightElbow$VNBodyLandmarkKeyRightEye$VNBodyLandmarkKeyRightHip$VNBodyLandmarkKeyRightKnee$VNBodyLandmarkKeyRightShoulder$VNBodyLandmarkKeyRightWrist$VNBodyLandmarkKeyRoot$VNBodyLandmarkRegionKeyFace$VNBodyLandmarkRegionKeyLeftArm$VNBodyLandmarkRegionKeyLeftLeg$VNBodyLandmarkRegionKeyRightArm$VNBodyLandmarkRegionKeyRightLeg$VNBodyLandmarkRegionKeyTorso$VNComputeStageMain$VNComputeStagePostProcessing$VNErrorDomain$VNHumanBodyPose3DObservationJointNameCenterHead$VNHumanBodyPose3DObservationJointNameCenterShoulder$VNHumanBodyPose3DObservationJointNameLeftAnkle$VNHumanBodyPose3DObservationJointNameLeftElbow$VNHumanBodyPose3DObservationJointNameLeftHip$VNHumanBodyPose3DObservationJointNameLeftKnee$VNHumanBodyPose3DObservationJointNameLeftShoulder$VNHumanBodyPose3DObservationJointNameLeftWrist$VNHumanBodyPose3DObservationJointNameRightAnkle$VNHumanBodyPose3DObservationJointNameRightElbow$VNHumanBodyPose3DObservationJointNameRightHip$VNHumanBodyPose3DObservationJointNameRightKnee$VNHumanBodyPose3DObservationJointNameRightShoulder$VNHumanBodyPose3DObservationJointNameRightWrist$VNHumanBodyPose3DObservationJointNameRoot$VNHumanBodyPose3DObservationJointNameSpine$VNHumanBodyPose3DObservationJointNameTopHead$VNHumanBodyPose3DObservationJointsGroupNameAll$VNHumanBodyPose3DObservationJointsGroupNameHead$VNHumanBodyPose3DObservationJointsGroupNameLeftArm$VNHumanBodyPose3DObservationJointsGroupNameLeftLeg$VNHumanBodyPose3DObservationJointsGroupNameRightArm$VNHumanBodyPose3DObservationJointsGroupNameRightLeg$VNHumanBodyPose3DObservationJointsGroupNameTorso$VNHumanBodyPoseObservationJointNameLeftAnkle$VNHumanBodyPoseObservationJointNameLeftEar$VNHumanBodyPoseObservationJointNameLeftElbow$VNHumanBodyPoseObservationJointNameLeftEye$VNHumanBodyPoseObservationJointNameLeftHip$VNHumanBodyPoseObservationJointNameLeftKnee$VNHumanBodyPoseObservationJointNameLeftShoulder$VNHumanBodyPoseObservationJointNameLeftWrist$VNHumanBodyPoseObservationJointNameNeck$VNHumanBodyPoseObservationJointNameNose$VNHumanBodyPoseObservationJointNameRightAnkle$VNHumanBodyPoseObservationJointNameRightEar$VNHumanBodyPoseObservationJointNameRightElbow$VNHumanBodyPoseObservationJointNameRightEye$VNHumanBodyPoseObservationJointNameRightHip$VNHumanBodyPoseObservationJointNameRightKnee$VNHumanBodyPoseObservationJointNameRightShoulder$VNHumanBodyPoseObservationJointNameRightWrist$VNHumanBodyPoseObservationJointNameRoot$VNHumanBodyPoseObservationJointsGroupNameAll$VNHumanBodyPoseObservationJointsGroupNameFace$VNHumanBodyPoseObservationJointsGroupNameLeftArm$VNHumanBodyPoseObservationJointsGroupNameLeftLeg$VNHumanBodyPoseObservationJointsGroupNameRightArm$VNHumanBodyPoseObservationJointsGroupNameRightLeg$VNHumanBodyPoseObservationJointsGroupNameTorso$VNHumanHandPoseObservationJointNameIndexDIP$VNHumanHandPoseObservationJointNameIndexMCP$VNHumanHandPoseObservationJointNameIndexPIP$VNHumanHandPoseObservationJointNameIndexTip$VNHumanHandPoseObservationJointNameLittleDIP$VNHumanHandPoseObservationJointNameLittleMCP$VNHumanHandPoseObservationJointNameLittlePIP$VNHumanHandPoseObservationJointNameLittleTip$VNHumanHandPoseObservationJointNameMiddleDIP$VNHumanHandPoseObservationJointNameMiddleMCP$VNHumanHandPoseObservationJointNameMiddlePIP$VNHumanHandPoseObservationJointNameMiddleTip$VNHumanHandPoseObservationJointNameRingDIP$VNHumanHandPoseObservationJointNameRingMCP$VNHumanHandPoseObservationJointNameRingPIP$VNHumanHandPoseObservationJointNameRingTip$VNHumanHandPoseObservationJointNameThumbCMC$VNHumanHandPoseObservationJointNameThumbIP$VNHumanHandPoseObservationJointNameThumbMP$VNHumanHandPoseObservationJointNameThumbTip$VNHumanHandPoseObservationJointNameWrist$VNHumanHandPoseObservationJointsGroupNameAll$VNHumanHandPoseObservationJointsGroupNameIndexFinger$VNHumanHandPoseObservationJointsGroupNameLittleFinger$VNHumanHandPoseObservationJointsGroupNameMiddleFinger$VNHumanHandPoseObservationJointsGroupNameRingFinger$VNHumanHandPoseObservationJointsGroupNameThumb$VNImageOptionCIContext$VNImageOptionCameraIntrinsics$VNImageOptionProperties$VNNormalizedIdentityRect@{CGRect={CGPoint=dd}{CGSize=dd}}$VNRecognizedPoint3DGroupKeyAll$VNRecognizedPointGroupKeyAll$VNVideoProcessingOptionFrameCadence$VNVideoProcessingOptionTimeInterval$VNVisionVersionNumber@d$"""
32
+ enums = """$VNBarcodeCompositeTypeGS1TypeA@2$VNBarcodeCompositeTypeGS1TypeB@3$VNBarcodeCompositeTypeGS1TypeC@4$VNBarcodeCompositeTypeLinked@1$VNBarcodeCompositeTypeNone@0$VNCalculateImageAestheticsScoresRequestRevision1@1$VNChiralityLeft@-1$VNChiralityRight@1$VNChiralityUnknown@0$VNClassifyImageRequestRevision1@1$VNClassifyImageRequestRevision2@2$VNCoreMLRequestRevision1@1$VNDetectAnimalBodyPoseRequestRevision1@1$VNDetectAnimalRectanglesRequestRevision1@1$VNDetectBarcodesRequestRevision1@1$VNDetectBarcodesRequestRevision2@2$VNDetectBarcodesRequestRevision3@3$VNDetectBarcodesRequestRevision4@4$VNDetectContourRequestRevision1@1$VNDetectDocumentSegmentationRequestRevision1@1$VNDetectFaceCaptureQualityRequestRevision1@1$VNDetectFaceCaptureQualityRequestRevision2@2$VNDetectFaceCaptureQualityRequestRevision3@3$VNDetectFaceLandmarksRequestRevision1@1$VNDetectFaceLandmarksRequestRevision2@2$VNDetectFaceLandmarksRequestRevision3@3$VNDetectFaceQualityRequestRevision1@1$VNDetectFaceRectanglesRequestRevision1@1$VNDetectFaceRectanglesRequestRevision2@2$VNDetectFaceRectanglesRequestRevision3@3$VNDetectHorizonRequestRevision1@1$VNDetectHumanBodyPose3DRequestRevision1@1$VNDetectHumanBodyPoseRequestRevision1@1$VNDetectHumanHandPoseRequestRevision1@1$VNDetectHumanRectanglesRequestRevision1@1$VNDetectHumanRectanglesRequestRevision2@2$VNDetectRectanglesRequestRevision1@1$VNDetectTextRectanglesRequestRevision1@1$VNDetectTrajectoriesRequestRevision1@1$VNElementTypeDouble@2$VNElementTypeFloat@1$VNElementTypeUnknown@0$VNErrorDataUnavailable@17$VNErrorIOError@6$VNErrorInternalError@9$VNErrorInvalidArgument@14$VNErrorInvalidFormat@2$VNErrorInvalidImage@13$VNErrorInvalidModel@15$VNErrorInvalidOperation@12$VNErrorInvalidOption@5$VNErrorMissingOption@7$VNErrorNotImplemented@8$VNErrorOK@0$VNErrorOperationFailed@3$VNErrorOutOfBoundsError@4$VNErrorOutOfMemory@10$VNErrorRequestCancelled@1$VNErrorResourceCorrupted@24$VNErrorResourceUnavailable@23$VNErrorTimeStampNotFound@18$VNErrorTimeout@20$VNErrorTuriCoreErrorCode@-1$VNErrorUnknownError@11$VNErrorUnsupportedComputeDevice@22$VNErrorUnsupportedComputeStage@21$VNErrorUnsupportedRequest@19$VNErrorUnsupportedRevision@16$VNGenerateAttentionBasedSaliencyImageRequestRevision1@1$VNGenerateAttentionBasedSaliencyImageRequestRevision2@2$VNGenerateForegroundInstanceMaskRequestRevision1@1$VNGenerateImageFeaturePrintRequestRevision1@1$VNGenerateImageFeaturePrintRequestRevision2@2$VNGenerateObjectnessBasedSaliencyImageRequestRevision1@1$VNGenerateObjectnessBasedSaliencyImageRequestRevision2@2$VNGenerateOpticalFlowRequestComputationAccuracyHigh@2$VNGenerateOpticalFlowRequestComputationAccuracyLow@0$VNGenerateOpticalFlowRequestComputationAccuracyMedium@1$VNGenerateOpticalFlowRequestComputationAccuracyVeryHigh@3$VNGenerateOpticalFlowRequestRevision1@1$VNGenerateOpticalFlowRequestRevision2@2$VNGeneratePersonInstanceMaskRequestRevision1@1$VNGeneratePersonSegmentationRequestQualityLevelAccurate@0$VNGeneratePersonSegmentationRequestQualityLevelBalanced@1$VNGeneratePersonSegmentationRequestQualityLevelFast@2$VNGeneratePersonSegmentationRequestRevision1@1$VNHomographicImageRegistrationRequestRevision1@1$VNHumanBodyPose3DObservationHeightEstimationMeasured@1$VNHumanBodyPose3DObservationHeightEstimationReference@0$VNImageCropAndScaleOptionCenterCrop@0$VNImageCropAndScaleOptionScaleFill@2$VNImageCropAndScaleOptionScaleFillRotate90CCW@258$VNImageCropAndScaleOptionScaleFit@1$VNImageCropAndScaleOptionScaleFitRotate90CCW@257$VNPointsClassificationClosedPath@2$VNPointsClassificationDisconnected@0$VNPointsClassificationOpenPath@1$VNRecognizeAnimalsRequestRevision1@1$VNRecognizeAnimalsRequestRevision2@2$VNRecognizeTextRequestRevision1@1$VNRecognizeTextRequestRevision2@2$VNRecognizeTextRequestRevision3@3$VNRequestFaceLandmarksConstellation65Points@1$VNRequestFaceLandmarksConstellation76Points@2$VNRequestFaceLandmarksConstellationNotDefined@0$VNRequestRevisionUnspecified@0$VNRequestTextRecognitionLevelAccurate@0$VNRequestTextRecognitionLevelFast@1$VNRequestTrackingLevelAccurate@0$VNRequestTrackingLevelFast@1$VNTrackHomographicImageRegistrationRequestRevision1@1$VNTrackObjectRequestRevision1@1$VNTrackObjectRequestRevision2@2$VNTrackOpticalFlowRequestComputationAccuracyHigh@2$VNTrackOpticalFlowRequestComputationAccuracyLow@0$VNTrackOpticalFlowRequestComputationAccuracyMedium@1$VNTrackOpticalFlowRequestComputationAccuracyVeryHigh@3$VNTrackOpticalFlowRequestRevision1@1$VNTrackRectangleRequestRevision1@1$VNTrackTranslationalImageRegistrationRequestRevision1@1$VNTranslationalImageRegistrationRequestRevision1@1$"""
35
33
  misc.update(
36
34
  {
37
35
  "VNImageCropAndScaleOption": NewType("VNImageCropAndScaleOption", int),
@@ -106,23 +104,29 @@ functions = {
106
104
  "VNImagePointForNormalizedPointUsingRegionOfInterest": (
107
105
  b"{CGPoint=dd}{CGPoint=dd}QQ{CGRect={CGPoint=dd}{CGSize=dd}}",
108
106
  ),
109
- "VNNormalizedRectIsIdentityRect": (b"B{CGRect={CGPoint=dd}{CGSize=dd}}",),
107
+ "VNNormalizedFaceBoundingBoxPointForLandmarkPoint": (
108
+ b"{CGPoint=dd}<2f>{CGRect={CGPoint=dd}{CGSize=dd}}QQ",
109
+ ),
110
+ "VNNormalizedPointForImagePointUsingRegionOfInterest": (
111
+ b"{CGPoint=dd}{CGPoint=dd}QQ{CGRect={CGPoint=dd}{CGSize=dd}}",
112
+ ),
110
113
  "VNNormalizedRectForImageRectUsingRegionOfInterest": (
111
114
  b"{CGRect={CGPoint=dd}{CGSize=dd}}{CGRect={CGPoint=dd}{CGSize=dd}}QQ{CGRect={CGPoint=dd}{CGSize=dd}}",
112
115
  ),
113
116
  "VNNormalizedRectForImageRect": (
114
117
  b"{CGRect={CGPoint=dd}{CGSize=dd}}{CGRect={CGPoint=dd}{CGSize=dd}}QQ",
115
118
  ),
119
+ "VNNormalizedRectIsIdentityRect": (b"B{CGRect={CGPoint=dd}{CGSize=dd}}",),
116
120
  "VNImagePointForNormalizedPoint": (b"{CGPoint=dd}{CGPoint=dd}QQ",),
117
- "VNNormalizedPointForImagePointUsingRegionOfInterest": (
118
- b"{CGPoint=dd}{CGPoint=dd}QQ{CGRect={CGPoint=dd}{CGSize=dd}}",
121
+ "VNImagePointForFaceLandmarkPoint": (
122
+ b"{CGPoint=dd}<2f>{CGRect={CGPoint=dd}{CGSize=dd}}QQ",
119
123
  ),
120
124
  "VNElementTypeSize": (b"QQ",),
121
125
  }
122
126
  r = objc.registerMetaDataForSelector
123
127
  objc._updatingMetadata(True)
124
128
  try:
125
- r(b"NSObject", b"indeterminate", {"required": True, "retval": {"type": "Z"}})
129
+ r(b"NSObject", b"indeterminate", {"required": True, "retval": {"type": b"Z"}})
126
130
  r(
127
131
  b"NSObject",
128
132
  b"inputFaceObservations",
@@ -143,11 +147,11 @@ try:
143
147
  3: {"type": b"@"},
144
148
  },
145
149
  },
146
- "type": "@?",
150
+ "type": b"@?",
147
151
  },
148
152
  },
149
153
  )
150
- r(b"NSObject", b"requestRevision", {"required": True, "retval": {"type": "Q"}})
154
+ r(b"NSObject", b"requestRevision", {"required": True, "retval": {"type": b"Q"}})
151
155
  r(
152
156
  b"NSObject",
153
157
  b"setInputFaceObservations:",
@@ -170,7 +174,7 @@ try:
170
174
  3: {"type": b"@"},
171
175
  },
172
176
  },
173
- "type": "@?",
177
+ "type": b"@?",
174
178
  }
175
179
  },
176
180
  },
@@ -196,12 +200,12 @@ try:
196
200
  r(
197
201
  b"VNClassificationObservation",
198
202
  b"hasMinimumPrecision:forRecall:",
199
- {"retval": {"type": "Z"}},
203
+ {"retval": {"type": b"Z"}},
200
204
  )
201
205
  r(
202
206
  b"VNClassificationObservation",
203
207
  b"hasMinimumRecall:forPrecision:",
204
- {"retval": {"type": "Z"}},
208
+ {"retval": {"type": b"Z"}},
205
209
  )
206
210
  r(
207
211
  b"VNClassificationObservation",
@@ -406,12 +410,12 @@ try:
406
410
  r(
407
411
  b"VNDetectTextRectanglesRequest",
408
412
  b"reportCharacterBoxes",
409
- {"retval": {"type": "Z"}},
413
+ {"retval": {"type": b"Z"}},
410
414
  )
411
415
  r(
412
416
  b"VNDetectTextRectanglesRequest",
413
417
  b"setReportCharacterBoxes:",
414
- {"arguments": {2: {"type": "Z"}}},
418
+ {"arguments": {2: {"type": b"Z"}}},
415
419
  )
416
420
  r(
417
421
  b"VNDetectTrajectoriesRequest",
@@ -454,12 +458,12 @@ try:
454
458
  r(
455
459
  b"VNDetectTrajectoriesRequest",
456
460
  b"setTargetFrameTime:",
457
- {"arguments": {2: {"type": "{CMTime=qiIq}"}}},
461
+ {"arguments": {2: {"type": b"{CMTime=qiIq}"}}},
458
462
  )
459
463
  r(
460
464
  b"VNDetectTrajectoriesRequest",
461
465
  b"targetFrameTime",
462
- {"retval": {"type": "{CMTime=qiIq}"}},
466
+ {"retval": {"type": b"{CMTime=qiIq}"}},
463
467
  )
464
468
  r(
465
469
  b"VNFaceLandmarkRegion2D",
@@ -474,7 +478,7 @@ try:
474
478
  r(
475
479
  b"VNFeaturePrintObservation",
476
480
  b"computeDistance:toFeaturePrintObservation:error:",
477
- {"retval": {"type": "Z"}, "arguments": {4: {"type_modifier": b"o"}}},
481
+ {"retval": {"type": b"Z"}, "arguments": {4: {"type_modifier": b"o"}}},
478
482
  )
479
483
  r(b"VNGenerateOpticalFlowRequest", b"keepNetworkOutput", {"retval": {"type": b"Z"}})
480
484
  r(
@@ -650,7 +654,7 @@ try:
650
654
  r(
651
655
  b"VNImageRequestHandler",
652
656
  b"performRequests:error:",
653
- {"retval": {"type": "Z"}, "arguments": {3: {"type_modifier": b"o"}}},
657
+ {"retval": {"type": b"Z"}, "arguments": {3: {"type_modifier": b"o"}}},
654
658
  )
655
659
  r(
656
660
  b"VNInstanceMaskObservation",
@@ -711,7 +715,7 @@ try:
711
715
  r(
712
716
  b"VNRecognizeTextRequest",
713
717
  b"setUsesLanguageCorrection:",
714
- {"arguments": {2: {"type": "Z"}}},
718
+ {"arguments": {2: {"type": b"Z"}}},
715
719
  )
716
720
  r(
717
721
  b"VNRecognizeTextRequest",
@@ -723,7 +727,7 @@ try:
723
727
  b"supportedRecognitionLanguagesForTextRecognitionLevel:revision:error:",
724
728
  {"arguments": {4: {"type_modifier": b"o"}}},
725
729
  )
726
- r(b"VNRecognizeTextRequest", b"usesLanguageCorrection", {"retval": {"type": "Z"}})
730
+ r(b"VNRecognizeTextRequest", b"usesLanguageCorrection", {"retval": {"type": b"Z"}})
727
731
  r(
728
732
  b"VNRecognizedPoints3DObservation",
729
733
  b"recognizedPointForKey:error:",
@@ -734,11 +738,6 @@ try:
734
738
  b"recognizedPointsForGroupKey:error:",
735
739
  {"arguments": {3: {"type_modifier": b"o"}}},
736
740
  )
737
- r(
738
- b"VNRecognizedPointsObservation",
739
- b"identifiedPointsForGroupKey_error_",
740
- {"arguments": {3: {"type_modifier": b"o"}}},
741
- )
742
741
  r(
743
742
  b"VNRecognizedPointsObservation",
744
743
  b"keypointsMultiArrayAndReturnError:",
@@ -793,38 +792,38 @@ try:
793
792
  }
794
793
  },
795
794
  )
796
- r(b"VNRequest", b"preferBackgroundProcessing", {"retval": {"type": "Z"}})
795
+ r(b"VNRequest", b"preferBackgroundProcessing", {"retval": {"type": b"Z"}})
797
796
  r(
798
797
  b"VNRequest",
799
798
  b"setPreferBackgroundProcessing:",
800
- {"arguments": {2: {"type": "Z"}}},
799
+ {"arguments": {2: {"type": b"Z"}}},
801
800
  )
802
- r(b"VNRequest", b"setUsesCPUOnly:", {"arguments": {2: {"type": "Z"}}})
801
+ r(b"VNRequest", b"setUsesCPUOnly:", {"arguments": {2: {"type": b"Z"}}})
803
802
  r(
804
803
  b"VNRequest",
805
804
  b"supportedComputeStageDevicesAndReturnError:",
806
805
  {"arguments": {2: {"type_modifier": b"o"}}},
807
806
  )
808
- r(b"VNRequest", b"usesCPUOnly", {"retval": {"type": "Z"}})
807
+ r(b"VNRequest", b"usesCPUOnly", {"retval": {"type": b"Z"}})
809
808
  r(
810
809
  b"VNSequenceRequestHandler",
811
810
  b"performRequests:onCGImage:error:",
812
- {"retval": {"type": "Z"}, "arguments": {4: {"type_modifier": b"o"}}},
811
+ {"retval": {"type": b"Z"}, "arguments": {4: {"type_modifier": b"o"}}},
813
812
  )
814
813
  r(
815
814
  b"VNSequenceRequestHandler",
816
815
  b"performRequests:onCGImage:orientation:error:",
817
- {"retval": {"type": "Z"}, "arguments": {5: {"type_modifier": b"o"}}},
816
+ {"retval": {"type": b"Z"}, "arguments": {5: {"type_modifier": b"o"}}},
818
817
  )
819
818
  r(
820
819
  b"VNSequenceRequestHandler",
821
820
  b"performRequests:onCIImage:error:",
822
- {"retval": {"type": "Z"}, "arguments": {4: {"type_modifier": b"o"}}},
821
+ {"retval": {"type": b"Z"}, "arguments": {4: {"type_modifier": b"o"}}},
823
822
  )
824
823
  r(
825
824
  b"VNSequenceRequestHandler",
826
825
  b"performRequests:onCIImage:orientation:error:",
827
- {"retval": {"type": "Z"}, "arguments": {5: {"type_modifier": b"o"}}},
826
+ {"retval": {"type": b"Z"}, "arguments": {5: {"type_modifier": b"o"}}},
828
827
  )
829
828
  r(
830
829
  b"VNSequenceRequestHandler",
@@ -839,32 +838,32 @@ try:
839
838
  r(
840
839
  b"VNSequenceRequestHandler",
841
840
  b"performRequests:onCVPixelBuffer:error:",
842
- {"retval": {"type": "Z"}, "arguments": {4: {"type_modifier": b"o"}}},
841
+ {"retval": {"type": b"Z"}, "arguments": {4: {"type_modifier": b"o"}}},
843
842
  )
844
843
  r(
845
844
  b"VNSequenceRequestHandler",
846
845
  b"performRequests:onCVPixelBuffer:orientation:error:",
847
- {"retval": {"type": "Z"}, "arguments": {5: {"type_modifier": b"o"}}},
846
+ {"retval": {"type": b"Z"}, "arguments": {5: {"type_modifier": b"o"}}},
848
847
  )
849
848
  r(
850
849
  b"VNSequenceRequestHandler",
851
850
  b"performRequests:onImageData:error:",
852
- {"retval": {"type": "Z"}, "arguments": {4: {"type_modifier": b"o"}}},
851
+ {"retval": {"type": b"Z"}, "arguments": {4: {"type_modifier": b"o"}}},
853
852
  )
854
853
  r(
855
854
  b"VNSequenceRequestHandler",
856
855
  b"performRequests:onImageData:orientation:error:",
857
- {"retval": {"type": "Z"}, "arguments": {5: {"type_modifier": b"o"}}},
856
+ {"retval": {"type": b"Z"}, "arguments": {5: {"type_modifier": b"o"}}},
858
857
  )
859
858
  r(
860
859
  b"VNSequenceRequestHandler",
861
860
  b"performRequests:onImageURL:error:",
862
- {"retval": {"type": "Z"}, "arguments": {4: {"type_modifier": b"o"}}},
861
+ {"retval": {"type": b"Z"}, "arguments": {4: {"type_modifier": b"o"}}},
863
862
  )
864
863
  r(
865
864
  b"VNSequenceRequestHandler",
866
865
  b"performRequests:onImageURL:orientation:error:",
867
- {"retval": {"type": "Z"}, "arguments": {5: {"type_modifier": b"o"}}},
866
+ {"retval": {"type": b"Z"}, "arguments": {5: {"type_modifier": b"o"}}},
868
867
  )
869
868
  r(
870
869
  b"VNStatefulRequest",
@@ -894,7 +893,7 @@ try:
894
893
  b"initWithFrameAnalysisSpacing:completionHandler:",
895
894
  {
896
895
  "arguments": {
897
- 2: {"type": "{CMTime=qiIq}"},
896
+ 2: {"type": b"{CMTime=qiIq}"},
898
897
  3: {
899
898
  "callable": {
900
899
  "retval": {"type": b"v"},
@@ -1382,8 +1381,8 @@ try:
1382
1381
  }
1383
1382
  },
1384
1383
  )
1385
- r(b"VNTrackingRequest", b"isLastFrame", {"retval": {"type": "Z"}})
1386
- r(b"VNTrackingRequest", b"setLastFrame:", {"arguments": {2: {"type": "Z"}}})
1384
+ r(b"VNTrackingRequest", b"isLastFrame", {"retval": {"type": b"Z"}})
1385
+ r(b"VNTrackingRequest", b"setLastFrame:", {"arguments": {2: {"type": b"Z"}}})
1387
1386
  r(
1388
1387
  b"VNTrackingRequest",
1389
1388
  b"supportedNumberOfTrackersAndReturnError:",
@@ -1689,5 +1688,10 @@ objc.registerNewKeywords(
1689
1688
  "rectangleObservationWithRequestRevision_topLeft_topRight_bottomRight_bottomLeft_",
1690
1689
  )
1691
1690
  expressions = {}
1691
+ formal_protocols = {
1692
+ "VNFaceObservationAccepting": "VNFaceObservationAccepting",
1693
+ "VNRequestProgressProviding": "VNRequestProgressProviding",
1694
+ "VNRequestRevisionProviding": "VNRequestRevisionProviding",
1695
+ }
1692
1696
 
1693
1697
  # END OF FILE
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyobjc-framework-Vision
3
- Version: 12.2.2
3
+ Version: 13.0
4
4
  Summary: Wrappers for the framework Vision on macOS
5
5
  Home-page: https://github.com/ronaldoussoren/pyobjc
6
6
  Author: Ronald Oussoren
@@ -17,23 +17,23 @@ 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
36
- Requires-Dist: pyobjc-framework-CoreML>=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
+ Requires-Dist: pyobjc-framework-CoreML>=13.0
37
37
  Dynamic: author
38
38
  Dynamic: author-email
39
39
  Dynamic: classifier
@@ -25,13 +25,11 @@ PyObjCTest/test_vndetectanimalbodyposerequest.py
25
25
  PyObjCTest/test_vndetectbarcodesrequest.py
26
26
  PyObjCTest/test_vndetectcontoursrequest.py
27
27
  PyObjCTest/test_vndetectdocumentsegmentationrequest.py
28
- PyObjCTest/test_vndetectfacecapturequalityRequest.py
29
28
  PyObjCTest/test_vndetectfacecapturequalityrequest.py
30
29
  PyObjCTest/test_vndetectfacelandmarks.py
31
30
  PyObjCTest/test_vndetectfacelandmarksrequest.py
32
31
  PyObjCTest/test_vndetectfacerectanglesrequest.py
33
32
  PyObjCTest/test_vndetecthorizonrequest.py
34
- PyObjCTest/test_vndetecthumanHandposerequest.py
35
33
  PyObjCTest/test_vndetecthumanbodypose3drequest.py
36
34
  PyObjCTest/test_vndetecthumanbodyposerequest.py
37
35
  PyObjCTest/test_vndetecthumanhandposerequest.py
@@ -44,7 +42,6 @@ PyObjCTest/test_vnerror.py
44
42
  PyObjCTest/test_vnfacelandmarks.py
45
43
  PyObjCTest/test_vnfaceobservationaccepting.py
46
44
  PyObjCTest/test_vngenerateattentionbasedsaliencyimagerequest.py
47
- PyObjCTest/test_vngenerateforegroundinstanceMaskrequest.py
48
45
  PyObjCTest/test_vngenerateforegroundinstancemaskrequest.py
49
46
  PyObjCTest/test_vngenerateimagefeatureprintrequest.py
50
47
  PyObjCTest/test_vngenerateobjectnessbasedsaliencyimagerequest.py
@@ -73,5 +70,5 @@ PyObjCTest/test_vnutils.py
73
70
  PyObjCTest/test_vnvideoprocessor.py
74
71
  metadata/Vision.fwinfo
75
72
  metadata/metadata.ini
76
- metadata/raw/arm64-26.5.fwinfo
77
- metadata/raw/x86_64-26.5.fwinfo
73
+ metadata/raw/arm64-27.fwinfo
74
+ 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,4 @@
1
+ pyobjc-core>=13.0
2
+ pyobjc-framework-Cocoa>=13.0
3
+ pyobjc-framework-Quartz>=13.0
4
+ pyobjc-framework-CoreML>=13.0
@@ -0,0 +1,67 @@
1
+ #define PY_SSIZE_T_CLEAN
2
+ #include "Python.h"
3
+ #include "pyobjc-api.h"
4
+
5
+ #ifdef USE_STATIC_ANALYZER
6
+ #include "../../pyobjc-core/Modules/objc/python-api-used.h"
7
+ #endif
8
+
9
+ #import <Foundation/Foundation.h>
10
+ #import <Vision/Vision.h>
11
+
12
+ /* We include the source code here instead of
13
+ * using the linker due to limitations in pyobjc-api.h
14
+ */
15
+ #include "_Vision_protocols.m"
16
+
17
+ NS_ASSUME_NONNULL_BEGIN
18
+
19
+ static PyMethodDef mod_methods[] = {
20
+ {0, 0, 0, 0} /* sentinel */
21
+ };
22
+
23
+ static int
24
+ mod_exec_module(PyObject* m)
25
+ {
26
+ return 0;
27
+ }
28
+
29
+ static struct PyModuleDef_Slot mod_slots[] = {
30
+ {.slot = Py_mod_exec, .value = (void*)mod_exec_module},
31
+ #if PY_VERSION_HEX >= 0x030c0000
32
+ {
33
+ .slot = Py_mod_multiple_interpreters,
34
+ .value = Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED,
35
+ },
36
+ #endif
37
+ #if PY_VERSION_HEX >= 0x030d0000
38
+ {
39
+ /* The code in this extension should be safe to use without the GIL */
40
+ .slot = Py_mod_gil,
41
+ .value = Py_MOD_GIL_NOT_USED,
42
+ },
43
+ #endif
44
+ {/* Sentinel */
45
+ .slot = 0,
46
+ .value = 0}};
47
+
48
+ static struct PyModuleDef mod_module = {
49
+ .m_base = PyModuleDef_HEAD_INIT,
50
+ .m_name = "_Vision",
51
+ .m_doc = NULL,
52
+ .m_size = 0,
53
+ .m_methods = mod_methods,
54
+ .m_slots = mod_slots,
55
+ .m_traverse = NULL,
56
+ .m_clear = NULL,
57
+ .m_free = NULL,
58
+ };
59
+
60
+ PyObject* _Nullable PyInit__Vision(void);
61
+
62
+ PyObject* _Nullable __attribute__((__visibility__("default")))
63
+ PyInit__Vision(void)
64
+ {
65
+ return PyModuleDef_Init(&mod_module);
66
+ }
67
+ 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
  {
@@ -15,3 +20,6 @@ use_protocols(void)
15
20
  Py_XDECREF(p);
16
21
  #endif
17
22
  }
23
+
24
+ NS_ASSUME_NONNULL_END
25
+ // 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-Vision
3
- Version: 12.2.2
3
+ Version: 13.0
4
4
  Summary: Wrappers for the framework Vision on macOS
5
5
  Home-page: https://github.com/ronaldoussoren/pyobjc
6
6
  Author: Ronald Oussoren
@@ -17,23 +17,23 @@ 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
36
- Requires-Dist: pyobjc-framework-CoreML>=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
+ Requires-Dist: pyobjc-framework-CoreML>=13.0
37
37
  Dynamic: author
38
38
  Dynamic: author-email
39
39
  Dynamic: classifier
@@ -4,7 +4,7 @@ import Vision
4
4
 
5
5
  class TestVision(TestCase):
6
6
  @min_os_level("10.13")
7
- def testConstants10_13(self):
7
+ def test_constants10_13(self):
8
8
  self.assertIsInstance(Vision.VNVisionVersionNumber, float)
9
9
 
10
10
 
@@ -7,7 +7,7 @@ class TestVNCoreMLRequest(TestCase):
7
7
  self.assertEqual(Vision.VNCoreMLRequestRevision1, 1)
8
8
 
9
9
  @min_os_level("10.13")
10
- def testMethods10_13(self):
10
+ def test_methods10_13(self):
11
11
  self.assertArgIsOut(Vision.VNCoreMLModel.modelForMLModel_error_, 1)
12
12
 
13
13
  self.assertArgIsBlock(
@@ -3,10 +3,8 @@ import Vision
3
3
 
4
4
 
5
5
  class TestVNDetectFaceLandmarksRequest(TestCase):
6
- def test_enum_types(self):
6
+ def test_enums(self):
7
7
  self.assertIsEnumType(Vision.VNRequestFaceLandmarksConstellation)
8
-
9
- def test_constants(self):
10
8
  self.assertEqual(Vision.VNRequestFaceLandmarksConstellationNotDefined, 0)
11
9
  self.assertEqual(Vision.VNRequestFaceLandmarksConstellation65Points, 1)
12
10
  self.assertEqual(Vision.VNRequestFaceLandmarksConstellation76Points, 2)