pyobjc-framework-Vision 12.2.1__tar.gz → 13.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/Lib/Vision/_metadata.py +47 -43
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/Lib/pyobjc_framework_Vision.egg-info/PKG-INFO +7 -7
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/Lib/pyobjc_framework_Vision.egg-info/SOURCES.txt +2 -5
- pyobjc_framework_vision-13.0/Lib/pyobjc_framework_Vision.egg-info/pyobjc-build-info.txt +3 -0
- pyobjc_framework_vision-13.0/Lib/pyobjc_framework_Vision.egg-info/requires.txt +4 -0
- pyobjc_framework_vision-13.0/Modules/_Vision.m +67 -0
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/Modules/_Vision_protocols.m +8 -0
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/Modules/pyobjc-api.h +18 -4
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/Modules/pyobjc-compat.h +0 -18
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/PKG-INFO +7 -7
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vision.py +1 -1
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vncoremlrequest.py +1 -1
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vndetectfacelandmarksrequest.py +1 -3
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vndetecthumanbodyposerequest.py +2 -2
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vndetecthumanhandposerequest.py +1 -1
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vndetectpoint.py +1 -1
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vndetecttextrectanglesrequest.py +1 -1
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vnerror.py +3 -3
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vnfacelandmarks.py +1 -1
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vnfaceobservationaccepting.py +2 -2
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vngenerateopticalflowrequest.py +1 -3
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vngeneratepersonsegmentationrequest.py +1 -3
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vnobservation.py +1 -1
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vnrecognizeanimalsrequest.py +1 -1
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vnrecognizetextrequest.py +1 -3
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vnrequest.py +13 -12
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vnrequesthandler.py +4 -4
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vnrequestrevisionproviding.py +5 -5
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vntargetedimagerequest.py +3 -3
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vntrackingrequest.py +3 -5
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vntrackobjectrequest.py +1 -1
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vntrackopticalflowrequest.py +1 -1
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vntrackrectanglerequest.py +1 -1
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vntypes.py +26 -27
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vnutils.py +5 -6
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/metadata/Vision.fwinfo +47 -446
- pyobjc_framework_vision-12.2.1/metadata/raw/arm64-26.5.fwinfo → pyobjc_framework_vision-13.0/metadata/raw/arm64-27.fwinfo +10 -3
- pyobjc_framework_vision-12.2.1/metadata/raw/x86_64-26.5.fwinfo → pyobjc_framework_vision-13.0/metadata/raw/x86_64-27.fwinfo +10 -3
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/pyobjc_setup.py +7 -7
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/setup.py +1 -1
- pyobjc_framework_vision-12.2.1/Lib/pyobjc_framework_Vision.egg-info/pyobjc-build-info.txt +0 -3
- pyobjc_framework_vision-12.2.1/Lib/pyobjc_framework_Vision.egg-info/requires.txt +0 -4
- pyobjc_framework_vision-12.2.1/Modules/_Vision.m +0 -214
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/Lib/Vision/__init__.py +0 -0
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/Lib/pyobjc_framework_Vision.egg-info/dependency_links.txt +0 -0
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/Lib/pyobjc_framework_Vision.egg-info/not-zip-safe +0 -0
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/Lib/pyobjc_framework_Vision.egg-info/top_level.txt +0 -0
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/License.txt +0 -0
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/MANIFEST.in +0 -0
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/PyObjCTest/__init__.py +0 -0
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vncalculateimageaestheticsscoresrequest.py +0 -0
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vnclassifyimagerequest.py +0 -0
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vndetectanimalbodyposerequest.py +0 -0
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vndetectbarcodesrequest.py +0 -0
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vndetectcontoursrequest.py +0 -0
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vndetectdocumentsegmentationrequest.py +0 -0
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vndetectfacecapturequalityrequest.py +0 -0
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vndetectfacelandmarks.py +0 -0
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vndetectfacerectanglesrequest.py +0 -0
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vndetecthorizonrequest.py +0 -0
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vndetecthumanbodypose3drequest.py +0 -0
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vndetecthumanrectanglesrequest.py +0 -0
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vndetectrectanglesrequest.py +0 -0
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vndetecttrajectoriesrequest.py +0 -0
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vngenerateattentionbasedsaliencyimagerequest.py +0 -0
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vngenerateforegroundinstancemaskrequest.py +0 -0
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vngenerateimagefeatureprintrequest.py +0 -0
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vngenerateobjectnessbasedsaliencyimagerequest.py +0 -0
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vngeneratepersoninstancemaskrequest.py +0 -0
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vngeometry.py +0 -0
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vngeometryutils.py +0 -0
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vnimageregistrationrequest.py +0 -0
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vnstatefulrequest.py +0 -0
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vntrackhomographicimageregistrationrequest.py +0 -0
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vntracktranslationalimageregistrationrequest.py +0 -0
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vnvideoprocessor.py +0 -0
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/metadata/metadata.ini +0 -0
- {pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/pyproject.toml +0 -0
- {pyobjc_framework_vision-12.2.1 → 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$
|
|
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
|
-
"
|
|
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
|
-
"
|
|
118
|
-
b"{CGPoint=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:
|
|
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.
|
|
31
|
+
Requires-Python: >=3.11
|
|
32
32
|
Description-Content-Type: text/x-rst; charset=UTF-8
|
|
33
|
-
Requires-Dist: pyobjc-core>=
|
|
34
|
-
Requires-Dist: pyobjc-framework-Cocoa>=
|
|
35
|
-
Requires-Dist: pyobjc-framework-Quartz>=
|
|
36
|
-
Requires-Dist: pyobjc-framework-CoreML>=
|
|
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-
|
|
77
|
-
metadata/raw/x86_64-
|
|
73
|
+
metadata/raw/arm64-27.fwinfo
|
|
74
|
+
metadata/raw/x86_64-27.fwinfo
|
|
@@ -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:
|
|
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.
|
|
31
|
+
Requires-Python: >=3.11
|
|
32
32
|
Description-Content-Type: text/x-rst; charset=UTF-8
|
|
33
|
-
Requires-Dist: pyobjc-core>=
|
|
34
|
-
Requires-Dist: pyobjc-framework-Cocoa>=
|
|
35
|
-
Requires-Dist: pyobjc-framework-Quartz>=
|
|
36
|
-
Requires-Dist: pyobjc-framework-CoreML>=
|
|
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
|
{pyobjc_framework_vision-12.2.1 → pyobjc_framework_vision-13.0}/PyObjCTest/test_vncoremlrequest.py
RENAMED
|
@@ -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
|
|
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
|
|
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)
|