pyobjc-framework-Vision 10.1__tar.gz → 11.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 (88) hide show
  1. pyobjc_framework_vision-11.0/Lib/Vision/__init__.py +89 -0
  2. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/Lib/Vision/_metadata.py +209 -5
  3. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/Lib/pyobjc_framework_Vision.egg-info/PKG-INFO +7 -7
  4. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/Lib/pyobjc_framework_Vision.egg-info/SOURCES.txt +6 -4
  5. pyobjc_framework_vision-11.0/Lib/pyobjc_framework_Vision.egg-info/pyobjc-build-info.txt +3 -0
  6. pyobjc_framework_vision-11.0/Lib/pyobjc_framework_Vision.egg-info/requires.txt +4 -0
  7. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/License.txt +1 -1
  8. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/Modules/_Vision.m +58 -35
  9. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/Modules/pyobjc-api.h +1 -1
  10. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/Modules/pyobjc-compat.h +80 -5
  11. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/PKG-INFO +7 -7
  12. pyobjc_framework_vision-11.0/PyObjCTest/test_vncalculateimageaestheticsscoresrequest.py +7 -0
  13. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/PyObjCTest/test_vngeneratepersonsegmentationrequest.py +7 -0
  14. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/PyObjCTest/test_vnobservation.py +4 -0
  15. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/metadata/Vision.fwinfo +1 -0
  16. pyobjc-framework-Vision-10.1/metadata/raw/arm64-14.0.fwinfo → pyobjc_framework_vision-11.0/metadata/raw/arm64-14.5.fwinfo +227 -30
  17. pyobjc_framework_vision-11.0/metadata/raw/arm64-15.0.fwinfo +11049 -0
  18. pyobjc-framework-Vision-10.1/metadata/raw/x86_64-14.0.fwinfo → pyobjc_framework_vision-11.0/metadata/raw/x86_64-14.5.fwinfo +227 -30
  19. pyobjc_framework_vision-11.0/metadata/raw/x86_64-15.0.fwinfo +11049 -0
  20. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/pyobjc_setup.py +121 -27
  21. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/setup.py +1 -3
  22. pyobjc-framework-Vision-10.1/Lib/Vision/__init__.py +0 -41
  23. pyobjc-framework-Vision-10.1/Lib/pyobjc_framework_Vision.egg-info/requires.txt +0 -4
  24. pyobjc-framework-Vision-10.1/metadata/raw/arm64-12.0.fwinfo +0 -8916
  25. pyobjc-framework-Vision-10.1/metadata/raw/x86_64-12.0.fwinfo +0 -8916
  26. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/Lib/pyobjc_framework_Vision.egg-info/dependency_links.txt +0 -0
  27. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/Lib/pyobjc_framework_Vision.egg-info/not-zip-safe +0 -0
  28. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/Lib/pyobjc_framework_Vision.egg-info/top_level.txt +0 -0
  29. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/MANIFEST.in +0 -0
  30. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/Modules/_Vision_protocols.m +0 -0
  31. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/PyObjCTest/__init__.py +0 -0
  32. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/PyObjCTest/test_vision.py +0 -0
  33. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/PyObjCTest/test_vnclassifyimagerequest.py +0 -0
  34. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/PyObjCTest/test_vncoremlrequest.py +0 -0
  35. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/PyObjCTest/test_vndetectanimalbodyposerequest.py +0 -0
  36. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/PyObjCTest/test_vndetectbarcodesrequest.py +0 -0
  37. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/PyObjCTest/test_vndetectcontoursrequest.py +0 -0
  38. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/PyObjCTest/test_vndetectdocumentsegmentationrequest.py +0 -0
  39. /pyobjc-framework-Vision-10.1/PyObjCTest/test_vndetectfacecapturequalityRequest.py → /pyobjc_framework_vision-11.0/PyObjCTest/test_vndetectfacecapturequalityrequest.py +0 -0
  40. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/PyObjCTest/test_vndetectfacelandmarks.py +0 -0
  41. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/PyObjCTest/test_vndetectfacelandmarksrequest.py +0 -0
  42. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/PyObjCTest/test_vndetectfacerectanglesrequest.py +0 -0
  43. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/PyObjCTest/test_vndetecthorizonrequest.py +0 -0
  44. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/PyObjCTest/test_vndetecthumanbodypose3drequest.py +0 -0
  45. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/PyObjCTest/test_vndetecthumanbodyposerequest.py +0 -0
  46. /pyobjc-framework-Vision-10.1/PyObjCTest/test_vndetecthumanHandposerequest.py → /pyobjc_framework_vision-11.0/PyObjCTest/test_vndetecthumanhandposerequest.py +0 -0
  47. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/PyObjCTest/test_vndetecthumanrectanglesrequest.py +0 -0
  48. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/PyObjCTest/test_vndetectpoint.py +0 -0
  49. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/PyObjCTest/test_vndetectrectanglesrequest.py +0 -0
  50. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/PyObjCTest/test_vndetecttextrectanglesrequest.py +0 -0
  51. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/PyObjCTest/test_vndetecttrajectoriesrequest.py +0 -0
  52. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/PyObjCTest/test_vnerror.py +0 -0
  53. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/PyObjCTest/test_vnfacelandmarks.py +0 -0
  54. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/PyObjCTest/test_vnfaceobservationaccepting.py +0 -0
  55. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/PyObjCTest/test_vngenerateattentionbasedsaliencyimagerequest.py +0 -0
  56. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/PyObjCTest/test_vngenerateforegroundinstanceMaskrequest.py +0 -0
  57. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/PyObjCTest/test_vngenerateimagefeatureprintrequest.py +0 -0
  58. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/PyObjCTest/test_vngenerateobjectnessbasedsaliencyimagerequest.py +0 -0
  59. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/PyObjCTest/test_vngenerateopticalflowrequest.py +0 -0
  60. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/PyObjCTest/test_vngeneratepersoninstancemaskrequest.py +0 -0
  61. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/PyObjCTest/test_vngeometry.py +0 -0
  62. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/PyObjCTest/test_vngeometryutils.py +0 -0
  63. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/PyObjCTest/test_vnimageregistrationrequest.py +0 -0
  64. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/PyObjCTest/test_vnrecognizeanimalsrequest.py +0 -0
  65. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/PyObjCTest/test_vnrecognizetextrequest.py +0 -0
  66. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/PyObjCTest/test_vnrequest.py +0 -0
  67. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/PyObjCTest/test_vnrequesthandler.py +0 -0
  68. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/PyObjCTest/test_vnrequestrevisionproviding.py +0 -0
  69. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/PyObjCTest/test_vnstatefulrequest.py +0 -0
  70. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/PyObjCTest/test_vntargetedimagerequest.py +0 -0
  71. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/PyObjCTest/test_vntrackhomographicimageregistrationrequest.py +0 -0
  72. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/PyObjCTest/test_vntrackingrequest.py +0 -0
  73. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/PyObjCTest/test_vntrackobjectrequest.py +0 -0
  74. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/PyObjCTest/test_vntrackopticalflowrequest.py +0 -0
  75. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/PyObjCTest/test_vntrackrectanglerequest.py +0 -0
  76. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/PyObjCTest/test_vntracktranslationalimageregistrationrequest.py +0 -0
  77. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/PyObjCTest/test_vntypes.py +0 -0
  78. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/PyObjCTest/test_vnutils.py +0 -0
  79. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/PyObjCTest/test_vnvideoprocessor.py +0 -0
  80. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/metadata/metadata.ini +0 -0
  81. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/metadata/raw/arm64-12.3.fwinfo +0 -0
  82. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/metadata/raw/arm64-13.0.fwinfo +0 -0
  83. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/metadata/raw/x86_64-10.15.fwinfo +0 -0
  84. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/metadata/raw/x86_64-10.16.fwinfo +0 -0
  85. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/metadata/raw/x86_64-12.3.fwinfo +0 -0
  86. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/metadata/raw/x86_64-13.0.fwinfo +0 -0
  87. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/pyproject.toml +0 -0
  88. {pyobjc-framework-Vision-10.1 → pyobjc_framework_vision-11.0}/setup.cfg +0 -0
@@ -0,0 +1,89 @@
1
+ """
2
+ Python mapping for the Vision framework.
3
+
4
+ This module does not contain docstrings for the wrapped code, check Apple's
5
+ documentation for details on how to use these functions and classes.
6
+ """
7
+
8
+
9
+ def _setup():
10
+ import sys
11
+
12
+ import Foundation
13
+ import Quartz
14
+ import CoreML
15
+ import objc
16
+ from . import _metadata, _Vision
17
+
18
+ dir_func, getattr_func = objc.createFrameworkDirAndGetattr(
19
+ name="Vision",
20
+ frameworkIdentifier="com.apple.VN",
21
+ frameworkPath=objc.pathForFramework(
22
+ "/System/Library/Frameworks/Vision.framework"
23
+ ),
24
+ globals_dict=globals(),
25
+ inline_list=None,
26
+ parents=(
27
+ _Vision,
28
+ Quartz,
29
+ CoreML,
30
+ Foundation,
31
+ ),
32
+ metadict=_metadata.__dict__,
33
+ )
34
+
35
+ globals()["__dir__"] = dir_func
36
+ globals()["__getattr__"] = getattr_func
37
+
38
+ for cls, sel in (
39
+ ("VNVideoProcessorFrameRateCadence", b"init"),
40
+ ("VNVideoProcessorTimeIntervalCadence", b"init"),
41
+ ("VNVideoProcessor", b"init"),
42
+ (
43
+ "VNGeneratePersonSegmentationRequest",
44
+ b"initWithFrameAnalysisSpacing:completionHandler:",
45
+ ),
46
+ ("VNDetectedPoint", b"init"),
47
+ ("VNDetectedPoint", b"new"),
48
+ ("VNDetectedPoint", b"initWithX:y:"),
49
+ ("VNDetectedPoint", b"initWithLocation:"),
50
+ ("VNFaceLandmarkRegion", b"init"),
51
+ ("VNFaceLandmarkRegion", b"new"),
52
+ ("VNFaceLandmarks", b"init"),
53
+ ("VNCoreMLModel", b"init"),
54
+ ("VNCoreMLRequest", b"init"),
55
+ ("VNCoreMLRequest", b"initWithCompletionHandler:"),
56
+ ("VNTrackingRequest", b"init"),
57
+ ("VNTrackingRequest", b"initWithCompletionHandler:"),
58
+ ("VNHumanBodyRecognizedPoint3D", b"init"),
59
+ ("VNHumanBodyRecognizedPoint3D", b"new"),
60
+ ("VNImageRequestHandler", b"init"),
61
+ ("VNPoint3D", b"init"),
62
+ ("VNContour", b"init"),
63
+ ("VNContour", b"new"),
64
+ ("VNRecognizedPointsObservation", b"init"),
65
+ ("VNRecognizedPointsObservation", b"new"),
66
+ ("VNRecognizedPoints3DObservation", b"init"),
67
+ ("VNRecognizedPoints3DObservation", b"new"),
68
+ ("VNTrackObjectRequest", b"init"),
69
+ ("VNTrackObjectRequest", b"initWithCompletionHandler:"),
70
+ ("VNTargetedImageRequest", b"init"),
71
+ ("VNTargetedImageRequest", b"initWithCompletionHandler:"),
72
+ (
73
+ "VNDetectTrajectoriesRequest",
74
+ b"initWithFrameAnalysisSpacing:completionHandler:",
75
+ ),
76
+ ("VNTrackRectangleRequest", b"init"),
77
+ ("VNTrackRectangleRequest", b"initWithCompletionHandler:"),
78
+ ("VNStatefulRequest", b"init"),
79
+ ("VNStatefulRequest", b"initWithCompletionHandler:"),
80
+ ("VNStatefulRequest", b"new"),
81
+ ("VNRecognizedPoint3D", b"init"),
82
+ ("VNRecognizedPoint3D", b"new"),
83
+ ):
84
+ objc.registerUnavailableMethod(cls, sel)
85
+
86
+ del sys.modules["Vision._metadata"]
87
+
88
+
89
+ globals().pop("_setup")()
@@ -1,6 +1,6 @@
1
1
  # This file is generated by objective.metadata
2
2
  #
3
- # Last update: Sun Jul 2 22:29:19 2023
3
+ # Last update: Thu Jun 20 21:38:33 2024
4
4
  #
5
5
  # flake8: noqa
6
6
 
@@ -30,8 +30,8 @@ else:
30
30
 
31
31
 
32
32
  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$VNBarcodeSymbologyAztec_SwiftDeprecated$VNBarcodeSymbologyCodabar$VNBarcodeSymbologyCode128$VNBarcodeSymbologyCode128_SwiftDeprecated$VNBarcodeSymbologyCode39$VNBarcodeSymbologyCode39Checksum$VNBarcodeSymbologyCode39Checksum_SwiftDeprecated$VNBarcodeSymbologyCode39FullASCII$VNBarcodeSymbologyCode39FullASCIIChecksum$VNBarcodeSymbologyCode39FullASCIIChecksum_SwiftDeprecated$VNBarcodeSymbologyCode39FullASCII_SwiftDeprecated$VNBarcodeSymbologyCode39_SwiftDeprecated$VNBarcodeSymbologyCode93$VNBarcodeSymbologyCode93_SwiftDeprecated$VNBarcodeSymbologyCode93i$VNBarcodeSymbologyCode93i_SwiftDeprecated$VNBarcodeSymbologyDataMatrix$VNBarcodeSymbologyDataMatrix_SwiftDeprecated$VNBarcodeSymbologyEAN13$VNBarcodeSymbologyEAN13_SwiftDeprecated$VNBarcodeSymbologyEAN8$VNBarcodeSymbologyEAN8_SwiftDeprecated$VNBarcodeSymbologyGS1DataBar$VNBarcodeSymbologyGS1DataBarExpanded$VNBarcodeSymbologyGS1DataBarLimited$VNBarcodeSymbologyI2of5$VNBarcodeSymbologyI2of5Checksum$VNBarcodeSymbologyI2of5Checksum_SwiftDeprecated$VNBarcodeSymbologyI2of5_SwiftDeprecated$VNBarcodeSymbologyITF14$VNBarcodeSymbologyITF14_SwiftDeprecated$VNBarcodeSymbologyMSIPlessey$VNBarcodeSymbologyMicroPDF417$VNBarcodeSymbologyMicroQR$VNBarcodeSymbologyPDF417$VNBarcodeSymbologyPDF417_SwiftDeprecated$VNBarcodeSymbologyQR$VNBarcodeSymbologyQR_SwiftDeprecated$VNBarcodeSymbologyUPCE$VNBarcodeSymbologyUPCE_SwiftDeprecated$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$VNHandLandmarkKeyIndexDIP$VNHandLandmarkKeyIndexMCP$VNHandLandmarkKeyIndexPIP$VNHandLandmarkKeyIndexTIP$VNHandLandmarkKeyLittleDIP$VNHandLandmarkKeyLittleMCP$VNHandLandmarkKeyLittlePIP$VNHandLandmarkKeyLittleTIP$VNHandLandmarkKeyMiddleDIP$VNHandLandmarkKeyMiddleMCP$VNHandLandmarkKeyMiddlePIP$VNHandLandmarkKeyMiddleTIP$VNHandLandmarkKeyRingDIP$VNHandLandmarkKeyRingMCP$VNHandLandmarkKeyRingPIP$VNHandLandmarkKeyRingTIP$VNHandLandmarkKeyThumbCMC$VNHandLandmarkKeyThumbIP$VNHandLandmarkKeyThumbMP$VNHandLandmarkKeyThumbTIP$VNHandLandmarkKeyWrist$VNHandLandmarkRegionKeyIndexFinger$VNHandLandmarkRegionKeyLittleFinger$VNHandLandmarkRegionKeyMiddleFinger$VNHandLandmarkRegionKeyRingFinger$VNHandLandmarkRegionKeyThumb$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$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$"""
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$VNHandLandmarkKeyIndexDIP$VNHandLandmarkKeyIndexMCP$VNHandLandmarkKeyIndexPIP$VNHandLandmarkKeyIndexTIP$VNHandLandmarkKeyLittleDIP$VNHandLandmarkKeyLittleMCP$VNHandLandmarkKeyLittlePIP$VNHandLandmarkKeyLittleTIP$VNHandLandmarkKeyMiddleDIP$VNHandLandmarkKeyMiddleMCP$VNHandLandmarkKeyMiddlePIP$VNHandLandmarkKeyMiddleTIP$VNHandLandmarkKeyRingDIP$VNHandLandmarkKeyRingMCP$VNHandLandmarkKeyRingPIP$VNHandLandmarkKeyRingTIP$VNHandLandmarkKeyThumbCMC$VNHandLandmarkKeyThumbIP$VNHandLandmarkKeyThumbMP$VNHandLandmarkKeyThumbTIP$VNHandLandmarkKeyWrist$VNHandLandmarkRegionKeyIndexFinger$VNHandLandmarkRegionKeyLittleFinger$VNHandLandmarkRegionKeyMiddleFinger$VNHandLandmarkRegionKeyRingFinger$VNHandLandmarkRegionKeyThumb$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$"""
35
35
  misc.update(
36
36
  {
37
37
  "VNImageCropAndScaleOption": NewType("VNImageCropAndScaleOption", int),
@@ -559,6 +559,11 @@ try:
559
559
  }
560
560
  },
561
561
  )
562
+ r(
563
+ b"VNGeneratePersonSegmentationRequest",
564
+ b"supportedOutputPixelFormatsAndReturnError:",
565
+ {"arguments": {2: {"type_modifier": b"o"}}},
566
+ )
562
567
  r(
563
568
  b"VNGeometryUtils",
564
569
  b"boundingCircleForContour:error:",
@@ -673,6 +678,7 @@ try:
673
678
  {"arguments": {3: {"type_modifier": b"o"}}},
674
679
  )
675
680
  r(b"VNHumanObservation", b"upperBodyOnly", {"retval": {"type": b"Z"}})
681
+ r(b"VNImageAestheticsScoresObservation", b"isUtility", {"retval": {"type": b"Z"}})
676
682
  r(
677
683
  b"VNImageHomographicAlignmentObservation",
678
684
  b"setWarpTransform:",
@@ -1400,8 +1406,12 @@ try:
1400
1406
  "arguments": {
1401
1407
  2: {
1402
1408
  "callable": {
1403
- "retval": {"type": b"@?"},
1404
- "arguments": {0: {"type": b"^v"}},
1409
+ "retval": {"type": b"v"},
1410
+ "arguments": {
1411
+ 0: {"type": b"^v"},
1412
+ 1: {"type": b"@"},
1413
+ 2: {"type": b"@"},
1414
+ },
1405
1415
  }
1406
1416
  }
1407
1417
  }
@@ -1479,6 +1489,200 @@ try:
1479
1489
  r(b"null", b"hasPrecisionRecallCurve", {"retval": {"type": b"Z"}})
1480
1490
  finally:
1481
1491
  objc._updatingMetadata(False)
1492
+
1493
+ objc.registerNewKeywordsFromSelector("VNCircle", b"initWithCenter:diameter:")
1494
+ objc.registerNewKeywordsFromSelector("VNCircle", b"initWithCenter:radius:")
1495
+ objc.registerNewKeywordsFromSelector("VNCoreMLRequest", b"initWithCompletionHandler:")
1496
+ objc.registerNewKeywordsFromSelector("VNCoreMLRequest", b"initWithModel:")
1497
+ objc.registerNewKeywordsFromSelector(
1498
+ "VNCoreMLRequest", b"initWithModel:completionHandler:"
1499
+ )
1500
+ objc.registerNewKeywordsFromSelector(
1501
+ "VNDetectHumanBodyPose3DRequest", b"initWithCompletionHandler:"
1502
+ )
1503
+ objc.registerNewKeywordsFromSelector(
1504
+ "VNDetectTrajectoriesRequest", b"initWithFrameAnalysisSpacing:completionHandler:"
1505
+ )
1506
+ objc.registerNewKeywordsFromSelector(
1507
+ "VNDetectTrajectoriesRequest",
1508
+ b"initWithFrameAnalysisSpacing:trajectoryLength:completionHandler:",
1509
+ )
1510
+ objc.registerNewKeywordsFromSelector("VNDetectedPoint", b"initWithLocation:")
1511
+ objc.registerNewKeywordsFromSelector("VNDetectedPoint", b"initWithX:y:")
1512
+ objc.registerNewKeywordsFromSelector(
1513
+ "VNGeneratePersonSegmentationRequest", b"initWithCompletionHandler:"
1514
+ )
1515
+ objc.registerNewKeywordsFromSelector(
1516
+ "VNGeneratePersonSegmentationRequest",
1517
+ b"initWithFrameAnalysisSpacing:completionHandler:",
1518
+ )
1519
+ objc.registerNewKeywordsFromSelector(
1520
+ "VNImageRequestHandler", b"initWithCGImage:options:"
1521
+ )
1522
+ objc.registerNewKeywordsFromSelector(
1523
+ "VNImageRequestHandler", b"initWithCGImage:orientation:options:"
1524
+ )
1525
+ objc.registerNewKeywordsFromSelector(
1526
+ "VNImageRequestHandler", b"initWithCIImage:options:"
1527
+ )
1528
+ objc.registerNewKeywordsFromSelector(
1529
+ "VNImageRequestHandler", b"initWithCIImage:orientation:options:"
1530
+ )
1531
+ objc.registerNewKeywordsFromSelector(
1532
+ "VNImageRequestHandler", b"initWithCMSampleBuffer:depthData:orientation:options:"
1533
+ )
1534
+ objc.registerNewKeywordsFromSelector(
1535
+ "VNImageRequestHandler", b"initWithCMSampleBuffer:options:"
1536
+ )
1537
+ objc.registerNewKeywordsFromSelector(
1538
+ "VNImageRequestHandler", b"initWithCMSampleBuffer:orientation:options:"
1539
+ )
1540
+ objc.registerNewKeywordsFromSelector(
1541
+ "VNImageRequestHandler", b"initWithCVPixelBuffer:depthData:orientation:options:"
1542
+ )
1543
+ objc.registerNewKeywordsFromSelector(
1544
+ "VNImageRequestHandler", b"initWithCVPixelBuffer:options:"
1545
+ )
1546
+ objc.registerNewKeywordsFromSelector(
1547
+ "VNImageRequestHandler", b"initWithCVPixelBuffer:orientation:options:"
1548
+ )
1549
+ objc.registerNewKeywordsFromSelector("VNImageRequestHandler", b"initWithData:options:")
1550
+ objc.registerNewKeywordsFromSelector(
1551
+ "VNImageRequestHandler", b"initWithData:orientation:options:"
1552
+ )
1553
+ objc.registerNewKeywordsFromSelector("VNImageRequestHandler", b"initWithURL:options:")
1554
+ objc.registerNewKeywordsFromSelector(
1555
+ "VNImageRequestHandler", b"initWithURL:orientation:options:"
1556
+ )
1557
+ objc.registerNewKeywordsFromSelector("VNPoint", b"initWithLocation:")
1558
+ objc.registerNewKeywordsFromSelector("VNPoint", b"initWithX:y:")
1559
+ objc.registerNewKeywordsFromSelector("VNPoint3D", b"initWithPosition:")
1560
+ objc.registerNewKeywordsFromSelector("VNRequest", b"initWithCompletionHandler:")
1561
+ objc.registerNewKeywordsFromSelector("VNStatefulRequest", b"initWithCompletionHandler:")
1562
+ objc.registerNewKeywordsFromSelector(
1563
+ "VNStatefulRequest", b"initWithFrameAnalysisSpacing:completionHandler:"
1564
+ )
1565
+ objc.registerNewKeywordsFromSelector(
1566
+ "VNTargetedImageRequest", b"initWithCompletionHandler:"
1567
+ )
1568
+ objc.registerNewKeywordsFromSelector(
1569
+ "VNTargetedImageRequest", b"initWithTargetedCGImage:options:"
1570
+ )
1571
+ objc.registerNewKeywordsFromSelector(
1572
+ "VNTargetedImageRequest", b"initWithTargetedCGImage:options:completionHandler:"
1573
+ )
1574
+ objc.registerNewKeywordsFromSelector(
1575
+ "VNTargetedImageRequest", b"initWithTargetedCGImage:orientation:options:"
1576
+ )
1577
+ objc.registerNewKeywordsFromSelector(
1578
+ "VNTargetedImageRequest",
1579
+ b"initWithTargetedCGImage:orientation:options:completionHandler:",
1580
+ )
1581
+ objc.registerNewKeywordsFromSelector(
1582
+ "VNTargetedImageRequest", b"initWithTargetedCIImage:options:"
1583
+ )
1584
+ objc.registerNewKeywordsFromSelector(
1585
+ "VNTargetedImageRequest", b"initWithTargetedCIImage:options:completionHandler:"
1586
+ )
1587
+ objc.registerNewKeywordsFromSelector(
1588
+ "VNTargetedImageRequest", b"initWithTargetedCIImage:orientation:options:"
1589
+ )
1590
+ objc.registerNewKeywordsFromSelector(
1591
+ "VNTargetedImageRequest",
1592
+ b"initWithTargetedCIImage:orientation:options:completionHandler:",
1593
+ )
1594
+ objc.registerNewKeywordsFromSelector(
1595
+ "VNTargetedImageRequest", b"initWithTargetedCMSampleBuffer:options:"
1596
+ )
1597
+ objc.registerNewKeywordsFromSelector(
1598
+ "VNTargetedImageRequest",
1599
+ b"initWithTargetedCMSampleBuffer:options:completionHandler:",
1600
+ )
1601
+ objc.registerNewKeywordsFromSelector(
1602
+ "VNTargetedImageRequest", b"initWithTargetedCMSampleBuffer:orientation:options:"
1603
+ )
1604
+ objc.registerNewKeywordsFromSelector(
1605
+ "VNTargetedImageRequest",
1606
+ b"initWithTargetedCMSampleBuffer:orientation:options:completionHandler:",
1607
+ )
1608
+ objc.registerNewKeywordsFromSelector(
1609
+ "VNTargetedImageRequest", b"initWithTargetedCVPixelBuffer:options:"
1610
+ )
1611
+ objc.registerNewKeywordsFromSelector(
1612
+ "VNTargetedImageRequest",
1613
+ b"initWithTargetedCVPixelBuffer:options:completionHandler:",
1614
+ )
1615
+ objc.registerNewKeywordsFromSelector(
1616
+ "VNTargetedImageRequest", b"initWithTargetedCVPixelBuffer:orientation:options:"
1617
+ )
1618
+ objc.registerNewKeywordsFromSelector(
1619
+ "VNTargetedImageRequest",
1620
+ b"initWithTargetedCVPixelBuffer:orientation:options:completionHandler:",
1621
+ )
1622
+ objc.registerNewKeywordsFromSelector(
1623
+ "VNTargetedImageRequest", b"initWithTargetedImageData:options:"
1624
+ )
1625
+ objc.registerNewKeywordsFromSelector(
1626
+ "VNTargetedImageRequest", b"initWithTargetedImageData:options:completionHandler:"
1627
+ )
1628
+ objc.registerNewKeywordsFromSelector(
1629
+ "VNTargetedImageRequest", b"initWithTargetedImageData:orientation:options:"
1630
+ )
1631
+ objc.registerNewKeywordsFromSelector(
1632
+ "VNTargetedImageRequest",
1633
+ b"initWithTargetedImageData:orientation:options:completionHandler:",
1634
+ )
1635
+ objc.registerNewKeywordsFromSelector(
1636
+ "VNTargetedImageRequest", b"initWithTargetedImageURL:options:"
1637
+ )
1638
+ objc.registerNewKeywordsFromSelector(
1639
+ "VNTargetedImageRequest", b"initWithTargetedImageURL:options:completionHandler:"
1640
+ )
1641
+ objc.registerNewKeywordsFromSelector(
1642
+ "VNTargetedImageRequest", b"initWithTargetedImageURL:orientation:options:"
1643
+ )
1644
+ objc.registerNewKeywordsFromSelector(
1645
+ "VNTargetedImageRequest",
1646
+ b"initWithTargetedImageURL:orientation:options:completionHandler:",
1647
+ )
1648
+ objc.registerNewKeywordsFromSelector(
1649
+ "VNTrackHomographicImageRegistrationRequest", b"initWithCompletionHandler:"
1650
+ )
1651
+ objc.registerNewKeywordsFromSelector(
1652
+ "VNTrackObjectRequest", b"initWithCompletionHandler:"
1653
+ )
1654
+ objc.registerNewKeywordsFromSelector(
1655
+ "VNTrackObjectRequest", b"initWithDetectedObjectObservation:"
1656
+ )
1657
+ objc.registerNewKeywordsFromSelector(
1658
+ "VNTrackObjectRequest", b"initWithDetectedObjectObservation:completionHandler:"
1659
+ )
1660
+ objc.registerNewKeywordsFromSelector(
1661
+ "VNTrackOpticalFlowRequest", b"initWithCompletionHandler:"
1662
+ )
1663
+ objc.registerNewKeywordsFromSelector(
1664
+ "VNTrackRectangleRequest", b"initWithCompletionHandler:"
1665
+ )
1666
+ objc.registerNewKeywordsFromSelector(
1667
+ "VNTrackRectangleRequest", b"initWithRectangleObservation:"
1668
+ )
1669
+ objc.registerNewKeywordsFromSelector(
1670
+ "VNTrackRectangleRequest", b"initWithRectangleObservation:completionHandler:"
1671
+ )
1672
+ objc.registerNewKeywordsFromSelector(
1673
+ "VNTrackTranslationalImageRegistrationRequest", b"initWithCompletionHandler:"
1674
+ )
1675
+ objc.registerNewKeywordsFromSelector("VNTrackingRequest", b"initWithCompletionHandler:")
1676
+ objc.registerNewKeywordsFromSelector("VNVector", b"initWithR:theta:")
1677
+ objc.registerNewKeywordsFromSelector("VNVector", b"initWithVectorHead:tail:")
1678
+ objc.registerNewKeywordsFromSelector("VNVector", b"initWithXComponent:yComponent:")
1679
+ objc.registerNewKeywordsFromSelector("VNVideoProcessor", b"initWithURL:")
1680
+ objc.registerNewKeywordsFromSelector(
1681
+ "VNVideoProcessorFrameRateCadence", b"initWithFrameRate:"
1682
+ )
1683
+ objc.registerNewKeywordsFromSelector(
1684
+ "VNVideoProcessorTimeIntervalCadence", b"initWithTimeInterval:"
1685
+ )
1482
1686
  expressions = {}
1483
1687
 
1484
1688
  # END OF FILE
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyobjc-framework-Vision
3
- Version: 10.1
3
+ Version: 11.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
@@ -18,22 +18,22 @@ Classifier: Operating System :: MacOS :: MacOS X
18
18
  Classifier: Programming Language :: Python
19
19
  Classifier: Programming Language :: Python :: 3
20
20
  Classifier: Programming Language :: Python :: 3 :: Only
21
- Classifier: Programming Language :: Python :: 3.8
22
21
  Classifier: Programming Language :: Python :: 3.9
23
22
  Classifier: Programming Language :: Python :: 3.10
24
23
  Classifier: Programming Language :: Python :: 3.11
25
24
  Classifier: Programming Language :: Python :: 3.12
26
25
  Classifier: Programming Language :: Python :: 3.13
26
+ Classifier: Programming Language :: Python :: 3.14
27
27
  Classifier: Programming Language :: Python :: Implementation :: CPython
28
28
  Classifier: Programming Language :: Objective C
29
29
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
30
30
  Classifier: Topic :: Software Development :: User Interfaces
31
- Requires-Python: >=3.8
31
+ Requires-Python: >=3.9
32
32
  Description-Content-Type: text/x-rst; charset=UTF-8
33
- Requires-Dist: pyobjc-core>=10.1
34
- Requires-Dist: pyobjc-framework-Cocoa>=10.1
35
- Requires-Dist: pyobjc-framework-Quartz>=10.1
36
- Requires-Dist: pyobjc-framework-CoreML>=10.1
33
+ Requires-Dist: pyobjc-core>=11.0
34
+ Requires-Dist: pyobjc-framework-Cocoa>=11.0
35
+ Requires-Dist: pyobjc-framework-Quartz>=11.0
36
+ Requires-Dist: pyobjc-framework-CoreML>=11.0
37
37
  Project-URL: Documentation, https://pyobjc.readthedocs.io/en/latest/
38
38
  Project-URL: Issue tracker, https://github.com/ronaldoussoren/pyobjc/issues
39
39
  Project-URL: Repository, https://github.com/ronaldoussoren/pyobjc
@@ -9,6 +9,7 @@ Lib/pyobjc_framework_Vision.egg-info/PKG-INFO
9
9
  Lib/pyobjc_framework_Vision.egg-info/SOURCES.txt
10
10
  Lib/pyobjc_framework_Vision.egg-info/dependency_links.txt
11
11
  Lib/pyobjc_framework_Vision.egg-info/not-zip-safe
12
+ Lib/pyobjc_framework_Vision.egg-info/pyobjc-build-info.txt
12
13
  Lib/pyobjc_framework_Vision.egg-info/requires.txt
13
14
  Lib/pyobjc_framework_Vision.egg-info/top_level.txt
14
15
  Modules/_Vision.m
@@ -17,6 +18,7 @@ Modules/pyobjc-api.h
17
18
  Modules/pyobjc-compat.h
18
19
  PyObjCTest/__init__.py
19
20
  PyObjCTest/test_vision.py
21
+ PyObjCTest/test_vncalculateimageaestheticsscoresrequest.py
20
22
  PyObjCTest/test_vnclassifyimagerequest.py
21
23
  PyObjCTest/test_vncoremlrequest.py
22
24
  PyObjCTest/test_vndetectanimalbodyposerequest.py
@@ -70,13 +72,13 @@ PyObjCTest/test_vnutils.py
70
72
  PyObjCTest/test_vnvideoprocessor.py
71
73
  metadata/Vision.fwinfo
72
74
  metadata/metadata.ini
73
- metadata/raw/arm64-12.0.fwinfo
74
75
  metadata/raw/arm64-12.3.fwinfo
75
76
  metadata/raw/arm64-13.0.fwinfo
76
- metadata/raw/arm64-14.0.fwinfo
77
+ metadata/raw/arm64-14.5.fwinfo
78
+ metadata/raw/arm64-15.0.fwinfo
77
79
  metadata/raw/x86_64-10.15.fwinfo
78
80
  metadata/raw/x86_64-10.16.fwinfo
79
- metadata/raw/x86_64-12.0.fwinfo
80
81
  metadata/raw/x86_64-12.3.fwinfo
81
82
  metadata/raw/x86_64-13.0.fwinfo
82
- metadata/raw/x86_64-14.0.fwinfo
83
+ metadata/raw/x86_64-14.5.fwinfo
84
+ metadata/raw/x86_64-15.0.fwinfo
@@ -0,0 +1,3 @@
1
+ macOS 15.3 (24D5040f)
2
+ Apple clang version 16.0.0 (clang-1600.0.26.6)
3
+ SDK: macOS 15.2
@@ -0,0 +1,4 @@
1
+ pyobjc-core>=11.0
2
+ pyobjc-framework-Cocoa>=11.0
3
+ pyobjc-framework-Quartz>=11.0
4
+ pyobjc-framework-CoreML>=11.0
@@ -1,7 +1,7 @@
1
1
  (This is the MIT license, note that libffi-src is a separate product with its own license)
2
2
 
3
3
  Copyright 2002, 2003 - Bill Bumgarner, Ronald Oussoren, Steve Majewski, Lele Gaifax, et.al.
4
- Copyright 2003-2022 - Ronald Oussoren
4
+ Copyright 2003-2024 - Ronald Oussoren
5
5
 
6
6
  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
7
7
 
@@ -1,4 +1,3 @@
1
- #define Py_LIMITED_API 0x03060000
2
1
  #define PY_SSIZE_T_CLEAN
3
2
  #include "Python.h"
4
3
  #include "pyobjc-api.h"
@@ -36,24 +35,24 @@ static PyObject* _Nullable mod_VNNormalizedFaceBoundingBoxPointForLandmarkPoint(
36
35
  size_t imageWidth;
37
36
  size_t imageHeight;
38
37
 
39
- if (args == NULL || !PyTuple_Check(args) || PyTuple_Size(args) != 4) {
38
+ if (args == NULL || !PyTuple_Check(args) || PyTuple_GET_SIZE(args) != 4) {
40
39
  PyErr_SetString(PyExc_TypeError,
41
40
  "Vision.VNNormalizedFaceBoundingBoxPointForLandmarkPoint "
42
41
  "requires 4 arguments");
43
42
  return NULL;
44
43
  }
45
- if (PyObjC_PythonToObjC("<2f>", PyTuple_GetItem(args, 0), &faceLandmarkPoint) == -1) {
44
+ if (PyObjC_PythonToObjC("<2f>", PyTuple_GET_ITEM(args, 0), &faceLandmarkPoint) == -1) {
46
45
  return NULL;
47
46
  }
48
- if (PyObjC_PythonToObjC(@encode(CGRect), PyTuple_GetItem(args, 1), &faceBoundingBox)
47
+ if (PyObjC_PythonToObjC(@encode(CGRect), PyTuple_GET_ITEM(args, 1), &faceBoundingBox)
49
48
  == -1) {
50
49
  return NULL;
51
50
  }
52
- if (PyObjC_PythonToObjC(@encode(size_t), PyTuple_GetItem(args, 2), &imageWidth)
51
+ if (PyObjC_PythonToObjC(@encode(size_t), PyTuple_GET_ITEM(args, 2), &imageWidth)
53
52
  == -1) {
54
53
  return NULL;
55
54
  }
56
- if (PyObjC_PythonToObjC(@encode(size_t), PyTuple_GetItem(args, 3), &imageHeight)
55
+ if (PyObjC_PythonToObjC(@encode(size_t), PyTuple_GET_ITEM(args, 3), &imageHeight)
57
56
  == -1) {
58
57
  return NULL;
59
58
  }
@@ -90,23 +89,23 @@ static PyObject* _Nullable mod_VNImagePointForFaceLandmarkPoint(PyObject* mod,
90
89
  size_t imageWidth;
91
90
  size_t imageHeight;
92
91
 
93
- if (args == NULL || !PyTuple_Check(args) || PyTuple_Size(args) != 4) {
92
+ if (args == NULL || !PyTuple_Check(args) || PyTuple_GET_SIZE(args) != 4) {
94
93
  PyErr_SetString(PyExc_TypeError,
95
94
  "Vision.VNImagePointForFaceLandmarkPoint requires 4 arguments");
96
95
  return NULL;
97
96
  }
98
- if (PyObjC_PythonToObjC("<2f>", PyTuple_GetItem(args, 0), &faceLandmarkPoint) == -1) {
97
+ if (PyObjC_PythonToObjC("<2f>", PyTuple_GET_ITEM(args, 0), &faceLandmarkPoint) == -1) {
99
98
  return NULL;
100
99
  }
101
- if (PyObjC_PythonToObjC(@encode(CGRect), PyTuple_GetItem(args, 1), &faceBoundingBox)
100
+ if (PyObjC_PythonToObjC(@encode(CGRect), PyTuple_GET_ITEM(args, 1), &faceBoundingBox)
102
101
  == -1) {
103
102
  return NULL;
104
103
  }
105
- if (PyObjC_PythonToObjC(@encode(size_t), PyTuple_GetItem(args, 2), &imageWidth)
104
+ if (PyObjC_PythonToObjC(@encode(size_t), PyTuple_GET_ITEM(args, 2), &imageWidth)
106
105
  == -1) {
107
106
  return NULL;
108
107
  }
109
- if (PyObjC_PythonToObjC(@encode(size_t), PyTuple_GetItem(args, 3), &imageHeight)
108
+ if (PyObjC_PythonToObjC(@encode(size_t), PyTuple_GET_ITEM(args, 3), &imageHeight)
110
109
  == -1) {
111
110
  return NULL;
112
111
  }
@@ -152,40 +151,64 @@ static PyMethodDef mod_methods[] = {
152
151
  {0, 0, 0, 0} /* sentinel */
153
152
  };
154
153
 
155
- /* Python glue */
156
- static struct PyModuleDef mod_module = {
157
- PyModuleDef_HEAD_INIT, "_Vision", NULL, 0, mod_methods, NULL, NULL, NULL, NULL};
158
-
159
- PyObject* PyInit__Vision(void);
160
-
161
- PyObject* __attribute__((__visibility__("default"))) PyInit__Vision(void)
154
+ static int mod_exec_module(PyObject* m)
162
155
  {
163
- PyObject* m;
164
- m = PyModule_Create(&mod_module);
165
- if (!m) {
166
- return NULL;
167
- }
168
-
169
- if (PyObjC_ImportAPI(m) == -1)
170
- return NULL;
171
-
172
156
  #if PyObjC_BUILD_RELEASE >= 1013
173
157
 
174
158
  if (@available(macOS 10.13, *)) {
175
159
  /* pass */
176
160
  } else {
177
- if (PyDict_DelItemString(PyModule_GetDict(m),
178
- "VNNormalizedFaceBoundingBoxPointForLandmarkPoint")
179
- == -1) {
180
- return NULL;
161
+ if (PyObject_DelAttrString(m, "VNNormalizedFaceBoundingBoxPointForLandmarkPoint") == -1) {
162
+ return -1;
181
163
  }
182
- if (PyDict_DelItemString(PyModule_GetDict(m), "VNImagePointForFaceLandmarkPoint")
183
- == -1) {
184
- return NULL;
164
+ if (PyObject_DelAttrString(m, "VNImagePointForFaceLandmarkPoint") == -1) {
165
+ return -1;
185
166
  }
186
167
  }
187
168
 
188
169
  #endif
170
+ return 0;
171
+ }
189
172
 
190
- return m;
173
+ static struct PyModuleDef_Slot mod_slots[] = {
174
+ {
175
+ .slot = Py_mod_exec,
176
+ .value = (void*)mod_exec_module
177
+ },
178
+ #if PY_VERSION_HEX >= 0x030c0000
179
+ {
180
+ .slot = Py_mod_multiple_interpreters,
181
+ .value = Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED,
182
+ },
183
+ #endif
184
+ #if PY_VERSION_HEX >= 0x030d0000
185
+ {
186
+ /* The code in this extension should be safe to use without the GIL */
187
+ .slot = Py_mod_gil,
188
+ .value = Py_MOD_GIL_NOT_USED,
189
+ },
190
+ #endif
191
+ { /* Sentinel */
192
+ .slot = 0,
193
+ .value = 0
194
+ }
195
+ };
196
+
197
+ static struct PyModuleDef mod_module = {
198
+ .m_base = PyModuleDef_HEAD_INIT,
199
+ .m_name = "_Vision",
200
+ .m_doc = NULL,
201
+ .m_size = 0,
202
+ .m_methods = mod_methods,
203
+ .m_slots = mod_slots,
204
+ .m_traverse = NULL,
205
+ .m_clear = NULL,
206
+ .m_free = NULL,
207
+ };
208
+
209
+ PyObject* PyInit__Vision(void);
210
+
211
+ PyObject* __attribute__((__visibility__("default"))) PyInit__Vision(void)
212
+ {
213
+ return PyModuleDef_Init(&mod_module);
191
214
  }
@@ -83,7 +83,7 @@ struct pyobjc_api {
83
83
  PyObject* _Nullable (*_Nonnull unsupported_method_caller)(
84
84
  PyObject* _Nonnull, PyObject* _Nonnull, PyObject* _Nonnull const* _Nonnull,
85
85
  size_t);
86
- void (*_Nonnull err_python_to_objc_gil)(PyGILState_STATE* _Nonnull state);
86
+ void (*_Nonnull err_python_to_objc_gil)(PyGILState_STATE* _Nonnull state) __attribute__((__noreturn__));
87
87
  int (*_Nonnull simplify_sig)(const char* signature, char* buf, size_t buflen);
88
88
  void (*_Nonnull free_c_array)(int, Py_buffer*);
89
89
  int (*_Nonnull py_to_c_array)(BOOL, BOOL, const char* _Nonnull, PyObject* _Nonnull,