pyobjc-framework-Photos 12.0__tar.gz → 12.1__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 (49) hide show
  1. {pyobjc_framework_photos-12.0 → pyobjc_framework_photos-12.1}/Lib/Photos/_metadata.py +6 -2
  2. {pyobjc_framework_photos-12.0 → pyobjc_framework_photos-12.1}/Lib/pyobjc_framework_Photos.egg-info/PKG-INFO +5 -6
  3. {pyobjc_framework_photos-12.0 → pyobjc_framework_photos-12.1}/Lib/pyobjc_framework_Photos.egg-info/SOURCES.txt +2 -2
  4. pyobjc_framework_photos-12.1/Lib/pyobjc_framework_Photos.egg-info/pyobjc-build-info.txt +3 -0
  5. pyobjc_framework_photos-12.1/Lib/pyobjc_framework_Photos.egg-info/requires.txt +2 -0
  6. {pyobjc_framework_photos-12.0 → pyobjc_framework_photos-12.1}/Modules/pyobjc-compat.h +19 -48
  7. {pyobjc_framework_photos-12.0 → pyobjc_framework_photos-12.1}/PKG-INFO +5 -6
  8. {pyobjc_framework_photos-12.0 → pyobjc_framework_photos-12.1}/PyObjCTest/test_pherror.py +1 -0
  9. pyobjc_framework_photos-12.0/metadata/raw/arm64-26.0.fwinfo → pyobjc_framework_photos-12.1/metadata/raw/arm64-26.1.fwinfo +191 -3
  10. pyobjc_framework_photos-12.0/metadata/raw/x86_64-26.0.fwinfo → pyobjc_framework_photos-12.1/metadata/raw/x86_64-26.1.fwinfo +191 -3
  11. {pyobjc_framework_photos-12.0 → pyobjc_framework_photos-12.1}/pyobjc_setup.py +4 -5
  12. {pyobjc_framework_photos-12.0 → pyobjc_framework_photos-12.1}/setup.py +1 -1
  13. pyobjc_framework_photos-12.0/Lib/pyobjc_framework_Photos.egg-info/pyobjc-build-info.txt +0 -3
  14. pyobjc_framework_photos-12.0/Lib/pyobjc_framework_Photos.egg-info/requires.txt +0 -2
  15. {pyobjc_framework_photos-12.0 → pyobjc_framework_photos-12.1}/Lib/Photos/__init__.py +0 -0
  16. {pyobjc_framework_photos-12.0 → pyobjc_framework_photos-12.1}/Lib/pyobjc_framework_Photos.egg-info/dependency_links.txt +0 -0
  17. {pyobjc_framework_photos-12.0 → pyobjc_framework_photos-12.1}/Lib/pyobjc_framework_Photos.egg-info/not-zip-safe +0 -0
  18. {pyobjc_framework_photos-12.0 → pyobjc_framework_photos-12.1}/Lib/pyobjc_framework_Photos.egg-info/top_level.txt +0 -0
  19. {pyobjc_framework_photos-12.0 → pyobjc_framework_photos-12.1}/License.txt +0 -0
  20. {pyobjc_framework_photos-12.0 → pyobjc_framework_photos-12.1}/MANIFEST.in +0 -0
  21. {pyobjc_framework_photos-12.0 → pyobjc_framework_photos-12.1}/Modules/_Photos.m +0 -0
  22. {pyobjc_framework_photos-12.0 → pyobjc_framework_photos-12.1}/Modules/_Photos_protocols.m +0 -0
  23. {pyobjc_framework_photos-12.0 → pyobjc_framework_photos-12.1}/Modules/pyobjc-api.h +0 -0
  24. {pyobjc_framework_photos-12.0 → pyobjc_framework_photos-12.1}/PyObjCTest/__init__.py +0 -0
  25. {pyobjc_framework_photos-12.0 → pyobjc_framework_photos-12.1}/PyObjCTest/test_phadjustmentdata.py +0 -0
  26. {pyobjc_framework_photos-12.0 → pyobjc_framework_photos-12.1}/PyObjCTest/test_phasset.py +0 -0
  27. {pyobjc_framework_photos-12.0 → pyobjc_framework_photos-12.1}/PyObjCTest/test_phassetchangerequest.py +0 -0
  28. {pyobjc_framework_photos-12.0 → pyobjc_framework_photos-12.1}/PyObjCTest/test_phassetresourcecreationoptions.py +0 -0
  29. {pyobjc_framework_photos-12.0 → pyobjc_framework_photos-12.1}/PyObjCTest/test_phassetresourcemanager.py +0 -0
  30. {pyobjc_framework_photos-12.0 → pyobjc_framework_photos-12.1}/PyObjCTest/test_phchange.py +0 -0
  31. {pyobjc_framework_photos-12.0 → pyobjc_framework_photos-12.1}/PyObjCTest/test_phcloudidentifier.py +0 -0
  32. {pyobjc_framework_photos-12.0 → pyobjc_framework_photos-12.1}/PyObjCTest/test_phcollection.py +0 -0
  33. {pyobjc_framework_photos-12.0 → pyobjc_framework_photos-12.1}/PyObjCTest/test_phcontenteditinginput.py +0 -0
  34. {pyobjc_framework_photos-12.0 → pyobjc_framework_photos-12.1}/PyObjCTest/test_phcontenteditingoutput.py +0 -0
  35. {pyobjc_framework_photos-12.0 → pyobjc_framework_photos-12.1}/PyObjCTest/test_phfetchoptions.py +0 -0
  36. {pyobjc_framework_photos-12.0 → pyobjc_framework_photos-12.1}/PyObjCTest/test_phfetchresult.py +0 -0
  37. {pyobjc_framework_photos-12.0 → pyobjc_framework_photos-12.1}/PyObjCTest/test_phimagemanager.py +0 -0
  38. {pyobjc_framework_photos-12.0 → pyobjc_framework_photos-12.1}/PyObjCTest/test_phlivephoto.py +0 -0
  39. {pyobjc_framework_photos-12.0 → pyobjc_framework_photos-12.1}/PyObjCTest/test_phlivephotoeditingcontext.py +0 -0
  40. {pyobjc_framework_photos-12.0 → pyobjc_framework_photos-12.1}/PyObjCTest/test_photos.py +0 -0
  41. {pyobjc_framework_photos-12.0 → pyobjc_framework_photos-12.1}/PyObjCTest/test_photostypes.py +0 -0
  42. {pyobjc_framework_photos-12.0 → pyobjc_framework_photos-12.1}/PyObjCTest/test_phpersistentchange.py +0 -0
  43. {pyobjc_framework_photos-12.0 → pyobjc_framework_photos-12.1}/PyObjCTest/test_phpersistentchangefetchresult.py +0 -0
  44. {pyobjc_framework_photos-12.0 → pyobjc_framework_photos-12.1}/PyObjCTest/test_phphotolibrary.py +0 -0
  45. {pyobjc_framework_photos-12.0 → pyobjc_framework_photos-12.1}/PyObjCTest/test_phproject.py +0 -0
  46. {pyobjc_framework_photos-12.0 → pyobjc_framework_photos-12.1}/metadata/Photos.fwinfo +0 -0
  47. {pyobjc_framework_photos-12.0 → pyobjc_framework_photos-12.1}/metadata/metadata.ini +0 -0
  48. {pyobjc_framework_photos-12.0 → pyobjc_framework_photos-12.1}/pyproject.toml +0 -0
  49. {pyobjc_framework_photos-12.0 → pyobjc_framework_photos-12.1}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  # This file is generated by objective.metadata
2
2
  #
3
- # Last update: Thu Jul 24 12:33:03 2025
3
+ # Last update: Tue Oct 21 16:11:45 2025
4
4
  #
5
5
  # flake8: noqa
6
6
 
@@ -31,7 +31,7 @@ else:
31
31
 
32
32
  misc = {}
33
33
  constants = """$PHContentEditingInputCancelledKey$PHContentEditingInputErrorKey$PHContentEditingInputResultIsInCloudKey$PHImageCancelledKey$PHImageErrorKey$PHImageManagerMaximumSize@{CGSize=dd}$PHImageResultIsDegradedKey$PHImageResultIsInCloudKey$PHImageResultRequestIDKey$PHLivePhotoEditingErrorDomain$PHLivePhotoInfoCancelledKey$PHLivePhotoInfoErrorKey$PHLivePhotoInfoIsDegradedKey$PHLivePhotoShouldRenderAtPlaybackTime$PHLocalIdentifierNotFound$PHLocalIdentifiersErrorKey$PHPhotosErrorDomain$"""
34
- enums = """$PHAccessLevelAddOnly@1$PHAccessLevelReadWrite@2$PHAssetBurstSelectionTypeAutoPick@1$PHAssetBurstSelectionTypeNone@0$PHAssetBurstSelectionTypeUserPick@2$PHAssetCollectionSubtypeAlbumCloudShared@101$PHAssetCollectionSubtypeAlbumImported@6$PHAssetCollectionSubtypeAlbumMyPhotoStream@100$PHAssetCollectionSubtypeAlbumRegular@2$PHAssetCollectionSubtypeAlbumSyncedAlbum@5$PHAssetCollectionSubtypeAlbumSyncedEvent@3$PHAssetCollectionSubtypeAlbumSyncedFaces@4$PHAssetCollectionSubtypeAny@9223372036854775807$PHAssetCollectionSubtypeSmartAlbumAllHidden@205$PHAssetCollectionSubtypeSmartAlbumAnimated@214$PHAssetCollectionSubtypeSmartAlbumBursts@207$PHAssetCollectionSubtypeSmartAlbumCinematic@218$PHAssetCollectionSubtypeSmartAlbumDepthEffect@212$PHAssetCollectionSubtypeSmartAlbumFavorites@203$PHAssetCollectionSubtypeSmartAlbumGeneric@200$PHAssetCollectionSubtypeSmartAlbumLivePhotos@213$PHAssetCollectionSubtypeSmartAlbumLongExposures@215$PHAssetCollectionSubtypeSmartAlbumPanoramas@201$PHAssetCollectionSubtypeSmartAlbumRAW@217$PHAssetCollectionSubtypeSmartAlbumRecentlyAdded@206$PHAssetCollectionSubtypeSmartAlbumScreenRecordings@220$PHAssetCollectionSubtypeSmartAlbumScreenshots@211$PHAssetCollectionSubtypeSmartAlbumSelfPortraits@210$PHAssetCollectionSubtypeSmartAlbumSlomoVideos@208$PHAssetCollectionSubtypeSmartAlbumSpatial@219$PHAssetCollectionSubtypeSmartAlbumTimelapses@204$PHAssetCollectionSubtypeSmartAlbumUnableToUpload@216$PHAssetCollectionSubtypeSmartAlbumUserLibrary@209$PHAssetCollectionSubtypeSmartAlbumVideos@202$PHAssetCollectionTypeAlbum@1$PHAssetCollectionTypeMoment@3$PHAssetCollectionTypeSmartAlbum@2$PHAssetEditOperationContent@2$PHAssetEditOperationDelete@1$PHAssetEditOperationProperties@3$PHAssetMediaSubtypeNone@0$PHAssetMediaSubtypePhotoDepthEffect@16$PHAssetMediaSubtypePhotoHDR@2$PHAssetMediaSubtypePhotoLive@8$PHAssetMediaSubtypePhotoPanorama@1$PHAssetMediaSubtypePhotoScreenshot@4$PHAssetMediaSubtypeSpatialMedia@1024$PHAssetMediaSubtypeVideoCinematic@2097152$PHAssetMediaSubtypeVideoHighFrameRate@131072$PHAssetMediaSubtypeVideoScreenRecording@524288$PHAssetMediaSubtypeVideoStreamed@65536$PHAssetMediaSubtypeVideoTimelapse@262144$PHAssetMediaTypeAudio@3$PHAssetMediaTypeImage@1$PHAssetMediaTypeUnknown@0$PHAssetMediaTypeVideo@2$PHAssetPlaybackStyleImage@1$PHAssetPlaybackStyleImageAnimated@2$PHAssetPlaybackStyleLivePhoto@3$PHAssetPlaybackStyleUnsupported@0$PHAssetPlaybackStyleVideo@4$PHAssetPlaybackStyleVideoLooping@5$PHAssetResourceTypeAdjustmentBasePairedVideo@11$PHAssetResourceTypeAdjustmentBasePhoto@8$PHAssetResourceTypeAdjustmentBaseVideo@12$PHAssetResourceTypeAdjustmentData@7$PHAssetResourceTypeAlternatePhoto@4$PHAssetResourceTypeAudio@3$PHAssetResourceTypeFullSizePairedVideo@10$PHAssetResourceTypeFullSizePhoto@5$PHAssetResourceTypeFullSizeVideo@6$PHAssetResourceTypePairedVideo@9$PHAssetResourceTypePhoto@1$PHAssetResourceTypePhotoProxy@19$PHAssetResourceTypeVideo@2$PHAssetSourceTypeCloudShared@2$PHAssetSourceTypeNone@0$PHAssetSourceTypeUserLibrary@1$PHAssetSourceTypeiTunesSynced@4$PHAuthorizationStatusAuthorized@3$PHAuthorizationStatusDenied@2$PHAuthorizationStatusLimited@4$PHAuthorizationStatusNotDetermined@0$PHAuthorizationStatusRestricted@1$PHCollectionEditOperationAddContent@3$PHCollectionEditOperationCreateContent@4$PHCollectionEditOperationDelete@6$PHCollectionEditOperationDeleteContent@1$PHCollectionEditOperationRearrangeContent@5$PHCollectionEditOperationRemoveContent@2$PHCollectionEditOperationRename@7$PHCollectionListSubtypeAny@9223372036854775807$PHCollectionListSubtypeMomentListCluster@1$PHCollectionListSubtypeMomentListYear@2$PHCollectionListSubtypeRegularFolder@100$PHCollectionListSubtypeSmartFolderEvents@200$PHCollectionListSubtypeSmartFolderFaces@201$PHCollectionListTypeFolder@2$PHCollectionListTypeMomentList@1$PHCollectionListTypeSmartFolder@3$PHImageContentModeAspectFill@1$PHImageContentModeAspectFit@0$PHImageContentModeDefault@0$PHImageRequestOptionsDeliveryModeFastFormat@2$PHImageRequestOptionsDeliveryModeHighQualityFormat@1$PHImageRequestOptionsDeliveryModeOpportunistic@0$PHImageRequestOptionsResizeModeExact@2$PHImageRequestOptionsResizeModeFast@1$PHImageRequestOptionsResizeModeNone@0$PHImageRequestOptionsVersionCurrent@0$PHImageRequestOptionsVersionOriginal@2$PHImageRequestOptionsVersionUnadjusted@1$PHInvalidAssetResourceDataRequestID@0$PHInvalidImageRequestID@0$PHLivePhotoEditingErrorCodeAborted@1$PHLivePhotoEditingErrorCodeUnknown@0$PHLivePhotoFrameTypePhoto@0$PHLivePhotoFrameTypeVideo@1$PHLivePhotoRequestIDInvalid@0$PHObjectTypeAsset@1$PHObjectTypeAssetCollection@2$PHObjectTypeCollectionList@3$PHPhotosErrorAccessRestricted@3310$PHPhotosErrorAccessUserDenied@3311$PHPhotosErrorChangeNotSupported@3300$PHPhotosErrorIdentifierNotFound@3201$PHPhotosErrorInternalError@-1$PHPhotosErrorInvalid@-1$PHPhotosErrorInvalidResource@3302$PHPhotosErrorLibraryInFileProviderSyncRoot@5423$PHPhotosErrorLibraryVolumeOffline@3114$PHPhotosErrorMissingResource@3303$PHPhotosErrorMultipleIdentifiersFound@3202$PHPhotosErrorNetworkAccessRequired@3164$PHPhotosErrorNetworkError@3169$PHPhotosErrorNotEnoughSpace@3305$PHPhotosErrorOperationInterrupted@3301$PHPhotosErrorPersistentChangeDetailsUnavailable@3210$PHPhotosErrorPersistentChangeTokenExpired@3105$PHPhotosErrorRelinquishingLibraryBundleToWriter@3142$PHPhotosErrorRequestNotSupportedForAsset@3306$PHPhotosErrorSwitchingSystemPhotoLibrary@3143$PHPhotosErrorUserCancelled@3072$PHVideoRequestOptionsDeliveryModeAutomatic@0$PHVideoRequestOptionsDeliveryModeFastFormat@3$PHVideoRequestOptionsDeliveryModeHighQualityFormat@1$PHVideoRequestOptionsDeliveryModeMediumQualityFormat@2$PHVideoRequestOptionsVersionCurrent@0$PHVideoRequestOptionsVersionOriginal@1$"""
34
+ enums = """$PHAccessLevelAddOnly@1$PHAccessLevelReadWrite@2$PHAssetBurstSelectionTypeAutoPick@1$PHAssetBurstSelectionTypeNone@0$PHAssetBurstSelectionTypeUserPick@2$PHAssetCollectionSubtypeAlbumCloudShared@101$PHAssetCollectionSubtypeAlbumImported@6$PHAssetCollectionSubtypeAlbumMyPhotoStream@100$PHAssetCollectionSubtypeAlbumRegular@2$PHAssetCollectionSubtypeAlbumSyncedAlbum@5$PHAssetCollectionSubtypeAlbumSyncedEvent@3$PHAssetCollectionSubtypeAlbumSyncedFaces@4$PHAssetCollectionSubtypeAny@9223372036854775807$PHAssetCollectionSubtypeSmartAlbumAllHidden@205$PHAssetCollectionSubtypeSmartAlbumAnimated@214$PHAssetCollectionSubtypeSmartAlbumBursts@207$PHAssetCollectionSubtypeSmartAlbumCinematic@218$PHAssetCollectionSubtypeSmartAlbumDepthEffect@212$PHAssetCollectionSubtypeSmartAlbumFavorites@203$PHAssetCollectionSubtypeSmartAlbumGeneric@200$PHAssetCollectionSubtypeSmartAlbumLivePhotos@213$PHAssetCollectionSubtypeSmartAlbumLongExposures@215$PHAssetCollectionSubtypeSmartAlbumPanoramas@201$PHAssetCollectionSubtypeSmartAlbumRAW@217$PHAssetCollectionSubtypeSmartAlbumRecentlyAdded@206$PHAssetCollectionSubtypeSmartAlbumScreenRecordings@220$PHAssetCollectionSubtypeSmartAlbumScreenshots@211$PHAssetCollectionSubtypeSmartAlbumSelfPortraits@210$PHAssetCollectionSubtypeSmartAlbumSlomoVideos@208$PHAssetCollectionSubtypeSmartAlbumSpatial@219$PHAssetCollectionSubtypeSmartAlbumTimelapses@204$PHAssetCollectionSubtypeSmartAlbumUnableToUpload@216$PHAssetCollectionSubtypeSmartAlbumUserLibrary@209$PHAssetCollectionSubtypeSmartAlbumVideos@202$PHAssetCollectionTypeAlbum@1$PHAssetCollectionTypeMoment@3$PHAssetCollectionTypeSmartAlbum@2$PHAssetEditOperationContent@2$PHAssetEditOperationDelete@1$PHAssetEditOperationProperties@3$PHAssetMediaSubtypeNone@0$PHAssetMediaSubtypePhotoDepthEffect@16$PHAssetMediaSubtypePhotoHDR@2$PHAssetMediaSubtypePhotoLive@8$PHAssetMediaSubtypePhotoPanorama@1$PHAssetMediaSubtypePhotoScreenshot@4$PHAssetMediaSubtypeSpatialMedia@1024$PHAssetMediaSubtypeVideoCinematic@2097152$PHAssetMediaSubtypeVideoHighFrameRate@131072$PHAssetMediaSubtypeVideoScreenRecording@524288$PHAssetMediaSubtypeVideoStreamed@65536$PHAssetMediaSubtypeVideoTimelapse@262144$PHAssetMediaTypeAudio@3$PHAssetMediaTypeImage@1$PHAssetMediaTypeUnknown@0$PHAssetMediaTypeVideo@2$PHAssetPlaybackStyleImage@1$PHAssetPlaybackStyleImageAnimated@2$PHAssetPlaybackStyleLivePhoto@3$PHAssetPlaybackStyleUnsupported@0$PHAssetPlaybackStyleVideo@4$PHAssetPlaybackStyleVideoLooping@5$PHAssetResourceTypeAdjustmentBasePairedVideo@11$PHAssetResourceTypeAdjustmentBasePhoto@8$PHAssetResourceTypeAdjustmentBaseVideo@12$PHAssetResourceTypeAdjustmentData@7$PHAssetResourceTypeAlternatePhoto@4$PHAssetResourceTypeAudio@3$PHAssetResourceTypeFullSizePairedVideo@10$PHAssetResourceTypeFullSizePhoto@5$PHAssetResourceTypeFullSizeVideo@6$PHAssetResourceTypePairedVideo@9$PHAssetResourceTypePhoto@1$PHAssetResourceTypePhotoProxy@19$PHAssetResourceTypeVideo@2$PHAssetResourceUploadJobActionAcknowledge@1$PHAssetResourceUploadJobActionRetry@2$PHAssetResourceUploadJobStateFailed@3$PHAssetResourceUploadJobStatePending@2$PHAssetResourceUploadJobStateRegistered@1$PHAssetResourceUploadJobStateSucceeded@4$PHAssetSourceTypeCloudShared@2$PHAssetSourceTypeNone@0$PHAssetSourceTypeUserLibrary@1$PHAssetSourceTypeiTunesSynced@4$PHAuthorizationStatusAuthorized@3$PHAuthorizationStatusDenied@2$PHAuthorizationStatusLimited@4$PHAuthorizationStatusNotDetermined@0$PHAuthorizationStatusRestricted@1$PHCollectionEditOperationAddContent@3$PHCollectionEditOperationCreateContent@4$PHCollectionEditOperationDelete@6$PHCollectionEditOperationDeleteContent@1$PHCollectionEditOperationRearrangeContent@5$PHCollectionEditOperationRemoveContent@2$PHCollectionEditOperationRename@7$PHCollectionListSubtypeAny@9223372036854775807$PHCollectionListSubtypeMomentListCluster@1$PHCollectionListSubtypeMomentListYear@2$PHCollectionListSubtypeRegularFolder@100$PHCollectionListSubtypeSmartFolderEvents@200$PHCollectionListSubtypeSmartFolderFaces@201$PHCollectionListTypeFolder@2$PHCollectionListTypeMomentList@1$PHCollectionListTypeSmartFolder@3$PHImageContentModeAspectFill@1$PHImageContentModeAspectFit@0$PHImageContentModeDefault@0$PHImageRequestOptionsDeliveryModeFastFormat@2$PHImageRequestOptionsDeliveryModeHighQualityFormat@1$PHImageRequestOptionsDeliveryModeOpportunistic@0$PHImageRequestOptionsResizeModeExact@2$PHImageRequestOptionsResizeModeFast@1$PHImageRequestOptionsResizeModeNone@0$PHImageRequestOptionsVersionCurrent@0$PHImageRequestOptionsVersionOriginal@2$PHImageRequestOptionsVersionUnadjusted@1$PHInvalidAssetResourceDataRequestID@0$PHInvalidImageRequestID@0$PHLivePhotoEditingErrorCodeAborted@1$PHLivePhotoEditingErrorCodeUnknown@0$PHLivePhotoFrameTypePhoto@0$PHLivePhotoFrameTypeVideo@1$PHLivePhotoRequestIDInvalid@0$PHObjectTypeAsset@1$PHObjectTypeAssetCollection@2$PHObjectTypeCollectionList@3$PHPhotosErrorAccessRestricted@3310$PHPhotosErrorAccessUserDenied@3311$PHPhotosErrorChangeNotSupported@3300$PHPhotosErrorIdentifierNotFound@3201$PHPhotosErrorInternalError@-1$PHPhotosErrorInvalid@-1$PHPhotosErrorInvalidResource@3302$PHPhotosErrorLibraryInFileProviderSyncRoot@5423$PHPhotosErrorLibraryVolumeOffline@3114$PHPhotosErrorLimitExceeded@3307$PHPhotosErrorMissingResource@3303$PHPhotosErrorMultipleIdentifiersFound@3202$PHPhotosErrorNetworkAccessRequired@3164$PHPhotosErrorNetworkError@3169$PHPhotosErrorNotEnoughSpace@3305$PHPhotosErrorOperationInterrupted@3301$PHPhotosErrorPersistentChangeDetailsUnavailable@3210$PHPhotosErrorPersistentChangeTokenExpired@3105$PHPhotosErrorRelinquishingLibraryBundleToWriter@3142$PHPhotosErrorRequestNotSupportedForAsset@3306$PHPhotosErrorSwitchingSystemPhotoLibrary@3143$PHPhotosErrorUserCancelled@3072$PHVideoRequestOptionsDeliveryModeAutomatic@0$PHVideoRequestOptionsDeliveryModeFastFormat@3$PHVideoRequestOptionsDeliveryModeHighQualityFormat@1$PHVideoRequestOptionsDeliveryModeMediumQualityFormat@2$PHVideoRequestOptionsVersionCurrent@0$PHVideoRequestOptionsVersionOriginal@1$"""
35
35
  misc.update(
36
36
  {
37
37
  "PHLivePhotoEditingErrorCode": NewType("PHLivePhotoEditingErrorCode", int),
@@ -55,6 +55,9 @@ misc.update(
55
55
  "PHImageRequestOptionsDeliveryMode", int
56
56
  ),
57
57
  "PHAssetCollectionSubtype": NewType("PHAssetCollectionSubtype", int),
58
+ "PHAssetResourceUploadJobAction": NewType(
59
+ "PHAssetResourceUploadJobAction", int
60
+ ),
58
61
  "PHImageRequestOptionsVersion": NewType("PHImageRequestOptionsVersion", int),
59
62
  "PHVideoRequestOptionsVersion": NewType("PHVideoRequestOptionsVersion", int),
60
63
  "PHAssetCollectionType": NewType("PHAssetCollectionType", int),
@@ -65,6 +68,7 @@ misc.update(
65
68
  ),
66
69
  "PHAccessLevel": NewType("PHAccessLevel", int),
67
70
  "PHCollectionListType": NewType("PHCollectionListType", int),
71
+ "PHAssetResourceUploadJobState": NewType("PHAssetResourceUploadJobState", int),
68
72
  }
69
73
  )
70
74
  misc.update({"PHLivePhotoEditingOption": NewType("PHLivePhotoEditingOption", str)})
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyobjc-framework-Photos
3
- Version: 12.0
3
+ Version: 12.1
4
4
  Summary: Wrappers for the framework Photos on macOS
5
5
  Home-page: https://github.com/ronaldoussoren/pyobjc
6
6
  Author: Ronald Oussoren
@@ -17,7 +17,6 @@ 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.9
21
20
  Classifier: Programming Language :: Python :: 3.10
22
21
  Classifier: Programming Language :: Python :: 3.11
23
22
  Classifier: Programming Language :: Python :: 3.12
@@ -25,14 +24,14 @@ Classifier: Programming Language :: Python :: 3.13
25
24
  Classifier: Programming Language :: Python :: 3.14
26
25
  Classifier: Programming Language :: Python :: 3.15
27
26
  Classifier: Programming Language :: Python :: Implementation :: CPython
28
- Classifier: Programming Language :: Python :: Free Threading :: 2 - Beta
27
+ Classifier: Programming Language :: Python :: Free Threading :: 3 - Stable
29
28
  Classifier: Programming Language :: Objective C
30
29
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
31
30
  Classifier: Topic :: Software Development :: User Interfaces
32
- Requires-Python: >=3.9
31
+ Requires-Python: >=3.10
33
32
  Description-Content-Type: text/x-rst; charset=UTF-8
34
- Requires-Dist: pyobjc-core>=12.0
35
- Requires-Dist: pyobjc-framework-Cocoa>=12.0
33
+ Requires-Dist: pyobjc-core>=12.1
34
+ Requires-Dist: pyobjc-framework-Cocoa>=12.1
36
35
  Dynamic: author
37
36
  Dynamic: author-email
38
37
  Dynamic: classifier
@@ -41,5 +41,5 @@ PyObjCTest/test_phphotolibrary.py
41
41
  PyObjCTest/test_phproject.py
42
42
  metadata/Photos.fwinfo
43
43
  metadata/metadata.ini
44
- metadata/raw/arm64-26.0.fwinfo
45
- metadata/raw/x86_64-26.0.fwinfo
44
+ metadata/raw/arm64-26.1.fwinfo
45
+ metadata/raw/x86_64-26.1.fwinfo
@@ -0,0 +1,3 @@
1
+ macOS 26.1 (25B77)
2
+ Apple clang version 17.0.0 (clang-1700.4.4.1)
3
+ SDK: macOS 26.1
@@ -0,0 +1,2 @@
1
+ pyobjc-core>=12.1
2
+ pyobjc-framework-Cocoa>=12.1
@@ -22,12 +22,14 @@ NS_ASSUME_NONNULL_BEGIN
22
22
  * Start of compiler definitions
23
23
  *
24
24
  */
25
+ #if 0
25
26
  #ifndef __has_feature
26
27
  #define __has_feature(x) 0
27
28
  #endif
28
29
  #ifndef __has_extension
29
30
  #define __has_extension(x) __has_feature(x)
30
31
  #endif
32
+ #endif
31
33
 
32
34
  #if __has_extension(c_static_assert)
33
35
  #define STATIC_ASSERT(test, message) _Static_assert(test, message)
@@ -59,42 +61,8 @@ NS_ASSUME_NONNULL_BEGIN
59
61
  * XXX: Are these needed?
60
62
  */
61
63
 
62
- #ifdef __GNUC__
63
64
  #define unlikely(x) __builtin_expect(!!(x), 0)
64
65
  #define likely(x) __builtin_expect(!!(x), 1)
65
- #else
66
- #define likely(x) x
67
- #define likely(x) x
68
- #endif
69
-
70
- /* On some versions of GCC <limits.h> defines LONG_LONG_MAX but not LLONG_MAX, compensate.
71
- */
72
- #ifndef LLONG_MIN
73
- #ifdef LONG_LONG_MIN
74
- #define LLONG_MIN LONG_LONG_MIN
75
- #define LLONG_MAX LONG_LONG_MAX
76
- #define ULLONG_MAX ULONG_LONG_MAX
77
- #endif
78
- #endif
79
-
80
- /*
81
- *
82
- * End of compiler support helpers
83
- *
84
- * XXX: These two are no longer needed, all supported platforms
85
- * are 64-bit
86
- */
87
-
88
- #if __LP64__
89
- #define Py_ARG_NSInteger "l"
90
- #define Py_ARG_NSUInteger "k"
91
- #else
92
- #define Py_ARG_NSInteger "i"
93
- #define Py_ARG_NSUInteger "I"
94
- #endif
95
-
96
- #define PyObjC__STR(x) #x
97
- #define PyObjC_STR(x) PyObjC__STR(x)
98
66
 
99
67
  /*
100
68
  *
@@ -131,20 +99,6 @@ NS_ASSUME_NONNULL_BEGIN
131
99
 
132
100
  extern int PyObjC_Cmp(PyObject* o1, PyObject* o2, int* result);
133
101
 
134
- /*
135
- * A micro optimization: when using Python 3.3 or later it
136
- * is possible to access a 'char*' with an ASCII representation
137
- * of a unicode object without first converting it to a bytes
138
- * string (if the string can be encoded as ASCII in the first
139
- * place.
140
- *
141
- * This slightly reduces the object allocation rate during
142
- * attribute access.
143
- *
144
- * XXX: Use PyUnicode_AsUTF8 instead.
145
- */
146
- extern const char* _Nullable PyObjC_Unicode_Fast_Bytes(PyObject* object);
147
-
148
102
  #ifdef __clang__
149
103
 
150
104
  #ifndef Py_LIMITED_API
@@ -286,6 +240,23 @@ static inline PyObject* _Nullable PyList_GetItemRef(PyObject* l, Py_ssize_t i)
286
240
  Py_XINCREF(result);
287
241
  return result;
288
242
  }
243
+
244
+ static inline int
245
+ PyDict_SetDefaultRef(PyObject* p, PyObject* key, PyObject* default_value,
246
+ PyObject* _Nonnull* _Nullable result)
247
+ {
248
+ *result = PyDict_SetDefault(p, key, default_value);
249
+ if (*result == NULL) {
250
+ return -1;
251
+ }
252
+ Py_INCREF(*result);
253
+
254
+ /* This does not follow the spec, should return 1 when the key was already
255
+ * in the dict. That part of the API is not used in PyObjC though.
256
+ */
257
+ return 0;
258
+ }
259
+
289
260
  #endif
290
261
 
291
262
  #if PY_VERSION_HEX < 0x030c0000
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyobjc-framework-Photos
3
- Version: 12.0
3
+ Version: 12.1
4
4
  Summary: Wrappers for the framework Photos on macOS
5
5
  Home-page: https://github.com/ronaldoussoren/pyobjc
6
6
  Author: Ronald Oussoren
@@ -17,7 +17,6 @@ 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.9
21
20
  Classifier: Programming Language :: Python :: 3.10
22
21
  Classifier: Programming Language :: Python :: 3.11
23
22
  Classifier: Programming Language :: Python :: 3.12
@@ -25,14 +24,14 @@ Classifier: Programming Language :: Python :: 3.13
25
24
  Classifier: Programming Language :: Python :: 3.14
26
25
  Classifier: Programming Language :: Python :: 3.15
27
26
  Classifier: Programming Language :: Python :: Implementation :: CPython
28
- Classifier: Programming Language :: Python :: Free Threading :: 2 - Beta
27
+ Classifier: Programming Language :: Python :: Free Threading :: 3 - Stable
29
28
  Classifier: Programming Language :: Objective C
30
29
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
31
30
  Classifier: Topic :: Software Development :: User Interfaces
32
- Requires-Python: >=3.9
31
+ Requires-Python: >=3.10
33
32
  Description-Content-Type: text/x-rst; charset=UTF-8
34
- Requires-Dist: pyobjc-core>=12.0
35
- Requires-Dist: pyobjc-framework-Cocoa>=12.0
33
+ Requires-Dist: pyobjc-core>=12.1
34
+ Requires-Dist: pyobjc-framework-Cocoa>=12.1
36
35
  Dynamic: author
37
36
  Dynamic: author-email
38
37
  Dynamic: classifier
@@ -21,6 +21,7 @@ class TestPHError(TestCase):
21
21
  self.assertEqual(Photos.PHPhotosErrorMissingResource, 3303)
22
22
  self.assertEqual(Photos.PHPhotosErrorNotEnoughSpace, 3305)
23
23
  self.assertEqual(Photos.PHPhotosErrorRequestNotSupportedForAsset, 3306)
24
+ self.assertEqual(Photos.PHPhotosErrorLimitExceeded, 3307)
24
25
 
25
26
  self.assertEqual(Photos.PHPhotosErrorAccessRestricted, 3310)
26
27
  self.assertEqual(Photos.PHPhotosErrorAccessUserDenied, 3311)
@@ -1,7 +1,7 @@
1
1
  // GENERATED FILE DO NOT EDIT
2
2
  //
3
3
  // This file was generated by objective.metadata
4
- // Last update: Thu Jul 24 12:31:49 2025
4
+ // Last update: Tue Oct 21 16:11:36 2025
5
5
  {
6
6
  "arch": "arm64",
7
7
  "definitions": {
@@ -2194,6 +2194,177 @@
2194
2194
  ],
2195
2195
  "super": "NSObject"
2196
2196
  },
2197
+ "PHAssetResourceUploadJob": {
2198
+ "categories": [],
2199
+ "methods": [
2200
+ {
2201
+ "args": [
2202
+ {
2203
+ "typestr": "q",
2204
+ "typestr_special": false
2205
+ },
2206
+ {
2207
+ "typestr": "@",
2208
+ "typestr_special": false
2209
+ }
2210
+ ],
2211
+ "class_method": true,
2212
+ "retval": {
2213
+ "typestr": "@",
2214
+ "typestr_special": false
2215
+ },
2216
+ "selector": "fetchJobsWithAction:options:",
2217
+ "visibility": "public"
2218
+ },
2219
+ {
2220
+ "args": [],
2221
+ "class_method": true,
2222
+ "retval": {
2223
+ "typestr": "q",
2224
+ "typestr_special": false
2225
+ },
2226
+ "selector": "jobLimit",
2227
+ "visibility": "public"
2228
+ },
2229
+ {
2230
+ "args": [],
2231
+ "class_method": false,
2232
+ "retval": {
2233
+ "typestr": "@",
2234
+ "typestr_special": false
2235
+ },
2236
+ "selector": "resource",
2237
+ "visibility": "public"
2238
+ },
2239
+ {
2240
+ "args": [],
2241
+ "class_method": false,
2242
+ "retval": {
2243
+ "typestr": "@",
2244
+ "typestr_special": false
2245
+ },
2246
+ "selector": "destination",
2247
+ "visibility": "public"
2248
+ },
2249
+ {
2250
+ "args": [],
2251
+ "class_method": false,
2252
+ "retval": {
2253
+ "typestr": "q",
2254
+ "typestr_special": false
2255
+ },
2256
+ "selector": "state",
2257
+ "visibility": "public"
2258
+ }
2259
+ ],
2260
+ "name": "PHAssetResourceUploadJob",
2261
+ "properties": [
2262
+ {
2263
+ "attributes": [
2264
+ "readonly"
2265
+ ],
2266
+ "name": "jobLimit",
2267
+ "typestr": "q",
2268
+ "typestr_special": false
2269
+ },
2270
+ {
2271
+ "attributes": [
2272
+ "readonly",
2273
+ "strong"
2274
+ ],
2275
+ "name": "resource",
2276
+ "typestr": "@",
2277
+ "typestr_special": false
2278
+ },
2279
+ {
2280
+ "attributes": [
2281
+ "readonly",
2282
+ "strong"
2283
+ ],
2284
+ "name": "destination",
2285
+ "typestr": "@",
2286
+ "typestr_special": false
2287
+ },
2288
+ {
2289
+ "attributes": [
2290
+ "readonly"
2291
+ ],
2292
+ "name": "state",
2293
+ "typestr": "q",
2294
+ "typestr_special": false
2295
+ }
2296
+ ],
2297
+ "protocols": [],
2298
+ "super": "PHObject"
2299
+ },
2300
+ "PHAssetResourceUploadJobChangeRequest": {
2301
+ "categories": [],
2302
+ "methods": [
2303
+ {
2304
+ "args": [
2305
+ {
2306
+ "typestr": "@",
2307
+ "typestr_special": false
2308
+ },
2309
+ {
2310
+ "typestr": "@",
2311
+ "typestr_special": false
2312
+ }
2313
+ ],
2314
+ "class_method": true,
2315
+ "retval": {
2316
+ "typestr": "v",
2317
+ "typestr_special": false
2318
+ },
2319
+ "selector": "createJobWithDestination:resource:",
2320
+ "visibility": "public"
2321
+ },
2322
+ {
2323
+ "args": [
2324
+ {
2325
+ "typestr": "@",
2326
+ "typestr_special": false
2327
+ }
2328
+ ],
2329
+ "class_method": true,
2330
+ "retval": {
2331
+ "typestr": "@",
2332
+ "typestr_special": false
2333
+ },
2334
+ "selector": "changeRequestForUploadJob:",
2335
+ "visibility": "public"
2336
+ },
2337
+ {
2338
+ "args": [],
2339
+ "class_method": false,
2340
+ "retval": {
2341
+ "typestr": "v",
2342
+ "typestr_special": false
2343
+ },
2344
+ "selector": "acknowledge",
2345
+ "visibility": "public"
2346
+ },
2347
+ {
2348
+ "args": [
2349
+ {
2350
+ "typestr": "@",
2351
+ "typestr_special": false
2352
+ }
2353
+ ],
2354
+ "class_method": false,
2355
+ "retval": {
2356
+ "typestr": "v",
2357
+ "typestr_special": false
2358
+ },
2359
+ "selector": "retryWithDestination:",
2360
+ "visibility": "public"
2361
+ }
2362
+ ],
2363
+ "name": "PHAssetResourceUploadJobChangeRequest",
2364
+ "properties": [],
2365
+ "protocols": [],
2366
+ "super": "PHChangeRequest"
2367
+ },
2197
2368
  "PHCachingImageManager": {
2198
2369
  "categories": [],
2199
2370
  "methods": [
@@ -6981,6 +7152,12 @@
6981
7152
  "PHAssetResourceTypePhoto": 1,
6982
7153
  "PHAssetResourceTypePhotoProxy": 19,
6983
7154
  "PHAssetResourceTypeVideo": 2,
7155
+ "PHAssetResourceUploadJobActionAcknowledge": 1,
7156
+ "PHAssetResourceUploadJobActionRetry": 2,
7157
+ "PHAssetResourceUploadJobStateFailed": 3,
7158
+ "PHAssetResourceUploadJobStatePending": 2,
7159
+ "PHAssetResourceUploadJobStateRegistered": 1,
7160
+ "PHAssetResourceUploadJobStateSucceeded": 4,
6984
7161
  "PHAssetSourceTypeCloudShared": 2,
6985
7162
  "PHAssetSourceTypeNone": 0,
6986
7163
  "PHAssetSourceTypeUserLibrary": 1,
@@ -7034,6 +7211,7 @@
7034
7211
  "PHPhotosErrorInvalidResource": 3302,
7035
7212
  "PHPhotosErrorLibraryInFileProviderSyncRoot": 5423,
7036
7213
  "PHPhotosErrorLibraryVolumeOffline": 3114,
7214
+ "PHPhotosErrorLimitExceeded": 3307,
7037
7215
  "PHPhotosErrorMissingResource": 3303,
7038
7216
  "PHPhotosErrorMultipleIdentifiersFound": 3202,
7039
7217
  "PHPhotosErrorNetworkAccessRequired": 3164,
@@ -7081,6 +7259,12 @@
7081
7259
  "PHAssetResourceType": {
7082
7260
  "type": "q"
7083
7261
  },
7262
+ "PHAssetResourceUploadJobAction": {
7263
+ "type": "q"
7264
+ },
7265
+ "PHAssetResourceUploadJobState": {
7266
+ "type": "q"
7267
+ },
7084
7268
  "PHAssetSourceType": {
7085
7269
  "type": "Q"
7086
7270
  },
@@ -7336,6 +7520,8 @@
7336
7520
  "PHAssetResourceDataRequestID": "int32_t",
7337
7521
  "PHAssetResourceProgressHandler": "void (^)(double)",
7338
7522
  "PHAssetResourceType": "enum PHAssetResourceType",
7523
+ "PHAssetResourceUploadJobAction": "enum PHAssetResourceUploadJobAction",
7524
+ "PHAssetResourceUploadJobState": "enum PHAssetResourceUploadJobState",
7339
7525
  "PHAssetSourceType": "enum PHAssetSourceType",
7340
7526
  "PHAssetVideoProgressHandler": "void (^)(double, NSError * _Nullable, BOOL * _Nonnull, NSDictionary * _Nullable)",
7341
7527
  "PHAuthorizationStatus": "enum PHAuthorizationStatus",
@@ -7369,6 +7555,8 @@
7369
7555
  "PHAssetCreationRequest.h",
7370
7556
  "PHAssetResource.h",
7371
7557
  "PHAssetResourceManager.h",
7558
+ "PHAssetResourceUploadJob.h",
7559
+ "PHAssetResourceUploadJobChangeRequest.h",
7372
7560
  "PHChange.h",
7373
7561
  "PHChangeRequest.h",
7374
7562
  "PHCloudIdentifier.h",
@@ -7392,6 +7580,6 @@
7392
7580
  "PHProjectChangeRequest.h",
7393
7581
  "PhotosTypes.h"
7394
7582
  ],
7395
- "release": "10.16",
7396
- "sdk": "/Users/ronald/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.0.sdk"
7583
+ "release": "26.0.1",
7584
+ "sdk": "/Users/ronald/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.1.sdk"
7397
7585
  }
@@ -1,7 +1,7 @@
1
1
  // GENERATED FILE DO NOT EDIT
2
2
  //
3
3
  // This file was generated by objective.metadata
4
- // Last update: Thu Jul 24 12:31:45 2025
4
+ // Last update: Tue Oct 21 16:11:33 2025
5
5
  {
6
6
  "arch": "x86_64",
7
7
  "definitions": {
@@ -2194,6 +2194,177 @@
2194
2194
  ],
2195
2195
  "super": "NSObject"
2196
2196
  },
2197
+ "PHAssetResourceUploadJob": {
2198
+ "categories": [],
2199
+ "methods": [
2200
+ {
2201
+ "args": [
2202
+ {
2203
+ "typestr": "q",
2204
+ "typestr_special": false
2205
+ },
2206
+ {
2207
+ "typestr": "@",
2208
+ "typestr_special": false
2209
+ }
2210
+ ],
2211
+ "class_method": true,
2212
+ "retval": {
2213
+ "typestr": "@",
2214
+ "typestr_special": false
2215
+ },
2216
+ "selector": "fetchJobsWithAction:options:",
2217
+ "visibility": "public"
2218
+ },
2219
+ {
2220
+ "args": [],
2221
+ "class_method": true,
2222
+ "retval": {
2223
+ "typestr": "q",
2224
+ "typestr_special": false
2225
+ },
2226
+ "selector": "jobLimit",
2227
+ "visibility": "public"
2228
+ },
2229
+ {
2230
+ "args": [],
2231
+ "class_method": false,
2232
+ "retval": {
2233
+ "typestr": "@",
2234
+ "typestr_special": false
2235
+ },
2236
+ "selector": "resource",
2237
+ "visibility": "public"
2238
+ },
2239
+ {
2240
+ "args": [],
2241
+ "class_method": false,
2242
+ "retval": {
2243
+ "typestr": "@",
2244
+ "typestr_special": false
2245
+ },
2246
+ "selector": "destination",
2247
+ "visibility": "public"
2248
+ },
2249
+ {
2250
+ "args": [],
2251
+ "class_method": false,
2252
+ "retval": {
2253
+ "typestr": "q",
2254
+ "typestr_special": false
2255
+ },
2256
+ "selector": "state",
2257
+ "visibility": "public"
2258
+ }
2259
+ ],
2260
+ "name": "PHAssetResourceUploadJob",
2261
+ "properties": [
2262
+ {
2263
+ "attributes": [
2264
+ "readonly"
2265
+ ],
2266
+ "name": "jobLimit",
2267
+ "typestr": "q",
2268
+ "typestr_special": false
2269
+ },
2270
+ {
2271
+ "attributes": [
2272
+ "readonly",
2273
+ "strong"
2274
+ ],
2275
+ "name": "resource",
2276
+ "typestr": "@",
2277
+ "typestr_special": false
2278
+ },
2279
+ {
2280
+ "attributes": [
2281
+ "readonly",
2282
+ "strong"
2283
+ ],
2284
+ "name": "destination",
2285
+ "typestr": "@",
2286
+ "typestr_special": false
2287
+ },
2288
+ {
2289
+ "attributes": [
2290
+ "readonly"
2291
+ ],
2292
+ "name": "state",
2293
+ "typestr": "q",
2294
+ "typestr_special": false
2295
+ }
2296
+ ],
2297
+ "protocols": [],
2298
+ "super": "PHObject"
2299
+ },
2300
+ "PHAssetResourceUploadJobChangeRequest": {
2301
+ "categories": [],
2302
+ "methods": [
2303
+ {
2304
+ "args": [
2305
+ {
2306
+ "typestr": "@",
2307
+ "typestr_special": false
2308
+ },
2309
+ {
2310
+ "typestr": "@",
2311
+ "typestr_special": false
2312
+ }
2313
+ ],
2314
+ "class_method": true,
2315
+ "retval": {
2316
+ "typestr": "v",
2317
+ "typestr_special": false
2318
+ },
2319
+ "selector": "createJobWithDestination:resource:",
2320
+ "visibility": "public"
2321
+ },
2322
+ {
2323
+ "args": [
2324
+ {
2325
+ "typestr": "@",
2326
+ "typestr_special": false
2327
+ }
2328
+ ],
2329
+ "class_method": true,
2330
+ "retval": {
2331
+ "typestr": "@",
2332
+ "typestr_special": false
2333
+ },
2334
+ "selector": "changeRequestForUploadJob:",
2335
+ "visibility": "public"
2336
+ },
2337
+ {
2338
+ "args": [],
2339
+ "class_method": false,
2340
+ "retval": {
2341
+ "typestr": "v",
2342
+ "typestr_special": false
2343
+ },
2344
+ "selector": "acknowledge",
2345
+ "visibility": "public"
2346
+ },
2347
+ {
2348
+ "args": [
2349
+ {
2350
+ "typestr": "@",
2351
+ "typestr_special": false
2352
+ }
2353
+ ],
2354
+ "class_method": false,
2355
+ "retval": {
2356
+ "typestr": "v",
2357
+ "typestr_special": false
2358
+ },
2359
+ "selector": "retryWithDestination:",
2360
+ "visibility": "public"
2361
+ }
2362
+ ],
2363
+ "name": "PHAssetResourceUploadJobChangeRequest",
2364
+ "properties": [],
2365
+ "protocols": [],
2366
+ "super": "PHChangeRequest"
2367
+ },
2197
2368
  "PHCachingImageManager": {
2198
2369
  "categories": [],
2199
2370
  "methods": [
@@ -6981,6 +7152,12 @@
6981
7152
  "PHAssetResourceTypePhoto": 1,
6982
7153
  "PHAssetResourceTypePhotoProxy": 19,
6983
7154
  "PHAssetResourceTypeVideo": 2,
7155
+ "PHAssetResourceUploadJobActionAcknowledge": 1,
7156
+ "PHAssetResourceUploadJobActionRetry": 2,
7157
+ "PHAssetResourceUploadJobStateFailed": 3,
7158
+ "PHAssetResourceUploadJobStatePending": 2,
7159
+ "PHAssetResourceUploadJobStateRegistered": 1,
7160
+ "PHAssetResourceUploadJobStateSucceeded": 4,
6984
7161
  "PHAssetSourceTypeCloudShared": 2,
6985
7162
  "PHAssetSourceTypeNone": 0,
6986
7163
  "PHAssetSourceTypeUserLibrary": 1,
@@ -7034,6 +7211,7 @@
7034
7211
  "PHPhotosErrorInvalidResource": 3302,
7035
7212
  "PHPhotosErrorLibraryInFileProviderSyncRoot": 5423,
7036
7213
  "PHPhotosErrorLibraryVolumeOffline": 3114,
7214
+ "PHPhotosErrorLimitExceeded": 3307,
7037
7215
  "PHPhotosErrorMissingResource": 3303,
7038
7216
  "PHPhotosErrorMultipleIdentifiersFound": 3202,
7039
7217
  "PHPhotosErrorNetworkAccessRequired": 3164,
@@ -7081,6 +7259,12 @@
7081
7259
  "PHAssetResourceType": {
7082
7260
  "type": "q"
7083
7261
  },
7262
+ "PHAssetResourceUploadJobAction": {
7263
+ "type": "q"
7264
+ },
7265
+ "PHAssetResourceUploadJobState": {
7266
+ "type": "q"
7267
+ },
7084
7268
  "PHAssetSourceType": {
7085
7269
  "type": "Q"
7086
7270
  },
@@ -7336,6 +7520,8 @@
7336
7520
  "PHAssetResourceDataRequestID": "int32_t",
7337
7521
  "PHAssetResourceProgressHandler": "void (^)(double)",
7338
7522
  "PHAssetResourceType": "enum PHAssetResourceType",
7523
+ "PHAssetResourceUploadJobAction": "enum PHAssetResourceUploadJobAction",
7524
+ "PHAssetResourceUploadJobState": "enum PHAssetResourceUploadJobState",
7339
7525
  "PHAssetSourceType": "enum PHAssetSourceType",
7340
7526
  "PHAssetVideoProgressHandler": "void (^)(double, NSError * _Nullable, BOOL * _Nonnull, NSDictionary * _Nullable)",
7341
7527
  "PHAuthorizationStatus": "enum PHAuthorizationStatus",
@@ -7369,6 +7555,8 @@
7369
7555
  "PHAssetCreationRequest.h",
7370
7556
  "PHAssetResource.h",
7371
7557
  "PHAssetResourceManager.h",
7558
+ "PHAssetResourceUploadJob.h",
7559
+ "PHAssetResourceUploadJobChangeRequest.h",
7372
7560
  "PHChange.h",
7373
7561
  "PHChangeRequest.h",
7374
7562
  "PHCloudIdentifier.h",
@@ -7392,6 +7580,6 @@
7392
7580
  "PHProjectChangeRequest.h",
7393
7581
  "PhotosTypes.h"
7394
7582
  ],
7395
- "release": "10.16",
7396
- "sdk": "/Users/ronald/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.0.sdk"
7583
+ "release": "26.0.1",
7584
+ "sdk": "/Users/ronald/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.1.sdk"
7397
7585
  }
@@ -87,10 +87,10 @@ class oc_egg_info(egg_info.egg_info):
87
87
 
88
88
  def write_build_info(self):
89
89
  macos_version = subprocess.check_output(
90
- ["sw_vers", "-productversion"], text=True
90
+ ["sw_vers", "-productVersion"], text=True
91
91
  ).strip()
92
92
  macos_build = subprocess.check_output(
93
- ["sw_vers", "-buildversion"], text=True
93
+ ["sw_vers", "-buildVersion"], text=True
94
94
  ).strip()
95
95
  clang_version = (
96
96
  subprocess.check_output(["clang", "--version"], text=True)
@@ -228,7 +228,6 @@ Operating System :: MacOS :: MacOS X
228
228
  Programming Language :: Python
229
229
  Programming Language :: Python :: 3
230
230
  Programming Language :: Python :: 3 :: Only
231
- Programming Language :: Python :: 3.9
232
231
  Programming Language :: Python :: 3.10
233
232
  Programming Language :: Python :: 3.11
234
233
  Programming Language :: Python :: 3.12
@@ -236,7 +235,7 @@ Programming Language :: Python :: 3.13
236
235
  Programming Language :: Python :: 3.14
237
236
  Programming Language :: Python :: 3.15
238
237
  Programming Language :: Python :: Implementation :: CPython
239
- Programming Language :: Python :: Free Threading :: 2 - Beta
238
+ Programming Language :: Python :: Free Threading :: 3 - Stable
240
239
  Programming Language :: Objective C
241
240
  Topic :: Software Development :: Libraries :: Python Modules
242
241
  Topic :: Software Development :: User Interfaces
@@ -678,7 +677,7 @@ def setup(
678
677
  zip_safe=False,
679
678
  license="MIT",
680
679
  classifiers=CLASSIFIERS,
681
- python_requires=">=3.9",
680
+ python_requires=">=3.10",
682
681
  keywords=["PyObjC"] + [p for p in k["packages"] if p not in ("PyObjCTools",)],
683
682
  options=options,
684
683
  **k,
@@ -15,7 +15,7 @@ sys.path.insert(0, os.path.dirname(__file__))
15
15
 
16
16
  from pyobjc_setup import Extension, setup # noqa: E402
17
17
 
18
- VERSION = "12.0"
18
+ VERSION = "12.1"
19
19
 
20
20
  setup(
21
21
  name="pyobjc-framework-Photos",
@@ -1,3 +0,0 @@
1
- macOS 26.0.1 (25A362)
2
- Apple clang version 17.0.0 (clang-1700.3.19.1)
3
- SDK: macOS 26.0
@@ -1,2 +0,0 @@
1
- pyobjc-core>=12.0
2
- pyobjc-framework-Cocoa>=12.0