pyobjc-framework-PhotosUI 12.2.1__tar.gz → 13.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. {pyobjc_framework_photosui-12.2.1 → pyobjc_framework_photosui-13.0}/Lib/PhotosUI/__init__.py +18 -12
  2. {pyobjc_framework_photosui-12.2.1 → pyobjc_framework_photosui-13.0}/Lib/PhotosUI/_metadata.py +83 -3
  3. {pyobjc_framework_photosui-12.2.1 → pyobjc_framework_photosui-13.0}/Lib/pyobjc_framework_PhotosUI.egg-info/PKG-INFO +5 -5
  4. {pyobjc_framework_photosui-12.2.1 → pyobjc_framework_photosui-13.0}/Lib/pyobjc_framework_PhotosUI.egg-info/SOURCES.txt +5 -3
  5. pyobjc_framework_photosui-13.0/Lib/pyobjc_framework_PhotosUI.egg-info/pyobjc-build-info.txt +3 -0
  6. pyobjc_framework_photosui-13.0/Lib/pyobjc_framework_PhotosUI.egg-info/requires.txt +2 -0
  7. {pyobjc_framework_photosui-12.2.1 → pyobjc_framework_photosui-13.0}/Modules/_PhotosUI.m +9 -2
  8. {pyobjc_framework_photosui-12.2.1 → pyobjc_framework_photosui-13.0}/Modules/_PhotosUI_protocols.m +15 -5
  9. {pyobjc_framework_photosui-12.2.1 → pyobjc_framework_photosui-13.0}/Modules/pyobjc-api.h +18 -4
  10. {pyobjc_framework_photosui-12.2.1 → pyobjc_framework_photosui-13.0}/Modules/pyobjc-compat.h +0 -18
  11. {pyobjc_framework_photosui-12.2.1 → pyobjc_framework_photosui-13.0}/PKG-INFO +5 -5
  12. {pyobjc_framework_photosui-12.2.1 → pyobjc_framework_photosui-13.0}/PyObjCTest/test_phcontenteditingcontroller.py +5 -6
  13. {pyobjc_framework_photosui-12.2.1 → pyobjc_framework_photosui-13.0}/PyObjCTest/test_phlivephotoview.py +6 -8
  14. {pyobjc_framework_photosui-12.2.1 → pyobjc_framework_photosui-13.0}/PyObjCTest/test_photosuitypes.py +2 -2
  15. {pyobjc_framework_photosui-12.2.1 → pyobjc_framework_photosui-13.0}/PyObjCTest/test_phpicker.py +8 -10
  16. {pyobjc_framework_photosui-12.2.1 → pyobjc_framework_photosui-13.0}/PyObjCTest/test_phprojectextensioncontext.py +1 -1
  17. {pyobjc_framework_photosui-12.2.1 → pyobjc_framework_photosui-13.0}/PyObjCTest/test_phprojectextensioncontroller.py +4 -5
  18. {pyobjc_framework_photosui-12.2.1 → pyobjc_framework_photosui-13.0}/PyObjCTest/test_phprojectinfo.py +4 -6
  19. {pyobjc_framework_photosui-12.2.1 → pyobjc_framework_photosui-13.0}/PyObjCTest/test_phprojecttypedescription.py +1 -1
  20. {pyobjc_framework_photosui-12.2.1 → pyobjc_framework_photosui-13.0}/PyObjCTest/test_phprojecttypedescriptiondatasource.py +3 -3
  21. pyobjc_framework_photosui-13.0/PyObjCTest/test_phsharedalbumcreationviewcontroller.py +15 -0
  22. pyobjc_framework_photosui-13.0/PyObjCTest/test_phsharedalbumcustomizationviewcontroller.py +10 -0
  23. pyobjc_framework_photosui-13.0/PyObjCTest/test_phsharedalbumpostingviewcontroller.py +8 -0
  24. {pyobjc_framework_photosui-12.2.1 → pyobjc_framework_photosui-13.0}/metadata/PhotosUI.fwinfo +0 -79
  25. pyobjc_framework_photosui-12.2.1/metadata/raw/arm64-26.5.fwinfo → pyobjc_framework_photosui-13.0/metadata/raw/arm64-27.fwinfo +1103 -129
  26. pyobjc_framework_photosui-12.2.1/metadata/raw/x86_64-26.5.fwinfo → pyobjc_framework_photosui-13.0/metadata/raw/x86_64-27.fwinfo +1103 -129
  27. {pyobjc_framework_photosui-12.2.1 → pyobjc_framework_photosui-13.0}/pyobjc_setup.py +7 -7
  28. {pyobjc_framework_photosui-12.2.1 → pyobjc_framework_photosui-13.0}/setup.py +1 -1
  29. pyobjc_framework_photosui-12.2.1/Lib/pyobjc_framework_PhotosUI.egg-info/pyobjc-build-info.txt +0 -3
  30. pyobjc_framework_photosui-12.2.1/Lib/pyobjc_framework_PhotosUI.egg-info/requires.txt +0 -2
  31. {pyobjc_framework_photosui-12.2.1 → pyobjc_framework_photosui-13.0}/Lib/pyobjc_framework_PhotosUI.egg-info/dependency_links.txt +0 -0
  32. {pyobjc_framework_photosui-12.2.1 → pyobjc_framework_photosui-13.0}/Lib/pyobjc_framework_PhotosUI.egg-info/not-zip-safe +0 -0
  33. {pyobjc_framework_photosui-12.2.1 → pyobjc_framework_photosui-13.0}/Lib/pyobjc_framework_PhotosUI.egg-info/top_level.txt +0 -0
  34. {pyobjc_framework_photosui-12.2.1 → pyobjc_framework_photosui-13.0}/License.txt +0 -0
  35. {pyobjc_framework_photosui-12.2.1 → pyobjc_framework_photosui-13.0}/MANIFEST.in +0 -0
  36. {pyobjc_framework_photosui-12.2.1 → pyobjc_framework_photosui-13.0}/PyObjCTest/__init__.py +0 -0
  37. {pyobjc_framework_photosui-12.2.1 → pyobjc_framework_photosui-13.0}/PyObjCTest/test_photosui.py +0 -0
  38. {pyobjc_framework_photosui-12.2.1 → pyobjc_framework_photosui-13.0}/metadata/metadata.ini +0 -0
  39. {pyobjc_framework_photosui-12.2.1 → pyobjc_framework_photosui-13.0}/pyproject.toml +0 -0
  40. {pyobjc_framework_photosui-12.2.1 → pyobjc_framework_photosui-13.0}/setup.cfg +0 -0
@@ -52,22 +52,28 @@ def _setup():
52
52
  ("PHPickerViewController", b"new"),
53
53
  ("PHProjectTypeDescription", b"init"),
54
54
  ("PHProjectTypeDescription", b"new"),
55
+ ("PHPickerSearchText", b"init"),
56
+ ("PHPickerSearchText", b"new"),
57
+ ("PHSharedAlbumCreationConfiguration", b"init"),
58
+ ("PHSharedAlbumCreationConfiguration", b"new"),
59
+ ("PHSharedAlbumCreationResult", b"init"),
60
+ ("PHSharedAlbumCreationResult", b"new"),
61
+ ("PHSharedAlbumCreationViewController", b"init"),
62
+ ("PHSharedAlbumCreationViewController", b"initWithNibName:bundle:"),
63
+ ("PHSharedAlbumCreationViewController", b"initWithCoder:"),
64
+ ("PHSharedAlbumCreationViewController", b"new"),
65
+ ("PHSharedAlbumCustomizationViewController", b"init"),
66
+ ("PHSharedAlbumCustomizationViewController", b"initWithNibName:bundle:"),
67
+ ("PHSharedAlbumCustomizationViewController", b"initWithCoder:"),
68
+ ("PHSharedAlbumCustomizationViewController", b"new"),
69
+ ("PHSharedAlbumPostingViewController", b"init"),
70
+ ("PHSharedAlbumPostingViewController", b"initWithNibName:bundle:"),
71
+ ("PHSharedAlbumPostingViewController", b"initWithCoder:"),
72
+ ("PHSharedAlbumPostingViewController", b"new"),
55
73
  ):
56
74
  objc.registerUnavailableMethod(cls, sel)
57
75
 
58
76
  del sys.modules["PhotosUI._metadata"]
59
77
 
60
- for cls_name in (
61
- "PHPickerFilter",
62
- "PHPickerConfiguration",
63
- "PHPickerResult",
64
- "PHPickerViewController",
65
- ):
66
- try:
67
- cls = objc.lookUpClass(cls_name)
68
- cls.__objc_final__ = True
69
- except objc.error:
70
- pass
71
-
72
78
 
73
79
  globals().pop("_setup")()
@@ -1,7 +1,5 @@
1
1
  # This file is generated by objective.metadata
2
2
  #
3
- # Last update: Thu May 28 22:50:54 2026
4
- #
5
3
  # flake8: noqa
6
4
 
7
5
  import objc, sys
@@ -31,7 +29,7 @@ else:
31
29
 
32
30
  misc = {}
33
31
  constants = """$PHProjectCategoryBook$PHProjectCategoryCalendar$PHProjectCategoryCard$PHProjectCategoryOther$PHProjectCategoryPrints$PHProjectCategorySlideshow$PHProjectCategoryUndefined$PHProjectCategoryWallDecor$PHProjectTypeUndefined$"""
34
- enums = """$PHLivePhotoViewContentModeAspectFill@1$PHLivePhotoViewContentModeAspectFit@0$PHLivePhotoViewPlaybackStyleFull@1$PHLivePhotoViewPlaybackStyleHint@2$PHLivePhotoViewPlaybackStyleUndefined@0$PHPickerCapabilitiesCollectionNavigation@4$PHPickerCapabilitiesNone@0$PHPickerCapabilitiesSearch@1$PHPickerCapabilitiesSelectionActions@8$PHPickerCapabilitiesSensitivityAnalysisIntervention@16$PHPickerCapabilitiesStagingArea@2$PHPickerConfigurationAssetRepresentationModeAutomatic@0$PHPickerConfigurationAssetRepresentationModeCompatible@2$PHPickerConfigurationAssetRepresentationModeCurrent@1$PHPickerConfigurationSelectionContinuous@2$PHPickerConfigurationSelectionContinuousAndOrdered@3$PHPickerConfigurationSelectionDefault@0$PHPickerConfigurationSelectionOrdered@1$PHPickerModeCompact@1$PHPickerModeDefault@0$PHProjectCreationSourceAlbum@2$PHProjectCreationSourceMemory@3$PHProjectCreationSourceMoment@4$PHProjectCreationSourceProject@20$PHProjectCreationSourceProjectBook@21$PHProjectCreationSourceProjectCalendar@22$PHProjectCreationSourceProjectCard@23$PHProjectCreationSourceProjectExtension@26$PHProjectCreationSourceProjectPrintOrder@24$PHProjectCreationSourceProjectSlideshow@25$PHProjectCreationSourceUndefined@0$PHProjectCreationSourceUserSelection@1$PHProjectSectionTypeAuxiliary@3$PHProjectSectionTypeContent@2$PHProjectSectionTypeCover@1$PHProjectSectionTypeUndefined@0$PHProjectTextElementTypeBody@0$PHProjectTextElementTypeSubtitle@2$PHProjectTextElementTypeTitle@1$"""
32
+ enums = """$PHLivePhotoViewContentModeAspectFill@1$PHLivePhotoViewContentModeAspectFit@0$PHLivePhotoViewPlaybackStyleFull@1$PHLivePhotoViewPlaybackStyleHint@2$PHLivePhotoViewPlaybackStyleUndefined@0$PHPickerCapabilitiesCollectionNavigation@4$PHPickerCapabilitiesNone@0$PHPickerCapabilitiesSearch@1$PHPickerCapabilitiesSelectionActions@8$PHPickerCapabilitiesSensitivityAnalysisIntervention@16$PHPickerCapabilitiesStagingArea@2$PHPickerConfigurationAssetRepresentationModeAutomatic@0$PHPickerConfigurationAssetRepresentationModeCompatible@2$PHPickerConfigurationAssetRepresentationModeCurrent@1$PHPickerConfigurationSelectionContinuous@2$PHPickerConfigurationSelectionContinuousAndOrdered@3$PHPickerConfigurationSelectionDefault@0$PHPickerConfigurationSelectionOrdered@1$PHPickerMetadataOptionsNone@0$PHPickerMetadataOptionsRemoveCaptions@2$PHPickerMetadataOptionsRemoveLocation@1$PHPickerModeCompact@1$PHPickerModeDefault@0$PHProjectCreationSourceAlbum@2$PHProjectCreationSourceMemory@3$PHProjectCreationSourceMoment@4$PHProjectCreationSourceProject@20$PHProjectCreationSourceProjectBook@21$PHProjectCreationSourceProjectCalendar@22$PHProjectCreationSourceProjectCard@23$PHProjectCreationSourceProjectExtension@26$PHProjectCreationSourceProjectPrintOrder@24$PHProjectCreationSourceProjectSlideshow@25$PHProjectCreationSourceUndefined@0$PHProjectCreationSourceUserSelection@1$PHProjectSectionTypeAuxiliary@3$PHProjectSectionTypeContent@2$PHProjectSectionTypeCover@1$PHProjectSectionTypeUndefined@0$PHProjectTextElementTypeBody@0$PHProjectTextElementTypeSubtitle@2$PHProjectTextElementTypeTitle@1$PHSharedAlbumCreationSharingPolicyPrivate@0$PHSharedAlbumCreationSharingPolicyPublic@1$"""
35
33
  misc.update(
36
34
  {
37
35
  "PHPickerConfigurationAssetRepresentationMode": NewType(
@@ -43,10 +41,14 @@ misc.update(
43
41
  "PHLivePhotoViewPlaybackStyle": NewType("PHLivePhotoViewPlaybackStyle", int),
44
42
  "PHProjectSectionType": NewType("PHProjectSectionType", int),
45
43
  "PHProjectTextElementType": NewType("PHProjectTextElementType", int),
44
+ "PHSharedAlbumCreationSharingPolicy": NewType(
45
+ "PHSharedAlbumCreationSharingPolicy", int
46
+ ),
46
47
  "PHPickerCapabilities": NewType("PHPickerCapabilities", int),
47
48
  "PHPickerConfigurationSelection": NewType(
48
49
  "PHPickerConfigurationSelection", int
49
50
  ),
51
+ "PHPickerMetadataOptions": NewType("PHPickerMetadataOptions", int),
50
52
  "PHLivePhotoViewContentMode": NewType("PHLivePhotoViewContentMode", int),
51
53
  }
52
54
  )
@@ -192,6 +194,33 @@ try:
192
194
  },
193
195
  },
194
196
  )
197
+ r(
198
+ b"NSObject",
199
+ b"sharedAlbumCreationViewController:didCompleteWithError:",
200
+ {
201
+ "required": True,
202
+ "retval": {"type": b"v"},
203
+ "arguments": {2: {"type": b"@"}, 3: {"type": b"@"}},
204
+ },
205
+ )
206
+ r(
207
+ b"NSObject",
208
+ b"sharedAlbumCustomizationViewController:didCompleteWithError:",
209
+ {
210
+ "required": True,
211
+ "retval": {"type": b"v"},
212
+ "arguments": {2: {"type": b"@"}, 3: {"type": b"@"}},
213
+ },
214
+ )
215
+ r(
216
+ b"NSObject",
217
+ b"sharedAlbumPostingViewController:didCompleteWithError:",
218
+ {
219
+ "required": True,
220
+ "retval": {"type": b"v"},
221
+ "arguments": {2: {"type": b"@"}, 3: {"type": b"@"}},
222
+ },
223
+ )
195
224
  r(
196
225
  b"NSObject",
197
226
  b"shouldShowCancelConfirmation",
@@ -269,6 +298,8 @@ objc.registerNewKeywordsFromSelector("PHPickerConfiguration", b"init")
269
298
  objc.registerNewKeywordsFromSelector("PHPickerConfiguration", b"initWithPhotoLibrary:")
270
299
  objc.registerNewKeywordsFromSelector("PHPickerFilter", b"init")
271
300
  objc.registerNewKeywordsFromSelector("PHPickerResult", b"init")
301
+ objc.registerNewKeywordsFromSelector("PHPickerSearchText", b"init")
302
+ objc.registerNewKeywordsFromSelector("PHPickerSearchText", b"initWithString:")
272
303
  objc.registerNewKeywordsFromSelector("PHPickerViewController", b"init")
273
304
  objc.registerNewKeywordsFromSelector("PHPickerViewController", b"initWithCoder:")
274
305
  objc.registerNewKeywordsFromSelector(
@@ -302,6 +333,55 @@ objc.registerNewKeywordsFromSelector(
302
333
  "PHProjectTypeDescription",
303
334
  b"initWithProjectType:title:description:image:subtypeDescriptions:",
304
335
  )
336
+ objc.registerNewKeywordsFromSelector("PHSharedAlbumCreationConfiguration", b"init")
337
+ objc.registerNewKeywordsFromSelector(
338
+ "PHSharedAlbumCreationConfiguration", b"initWithPhotoLibrary:"
339
+ )
340
+ objc.registerNewKeywordsFromSelector("PHSharedAlbumCreationResult", b"init")
341
+ objc.registerNewKeywordsFromSelector("PHSharedAlbumCreationViewController", b"init")
342
+ objc.registerNewKeywordsFromSelector(
343
+ "PHSharedAlbumCreationViewController", b"initWithCoder:"
344
+ )
345
+ objc.registerNewKeywordsFromSelector(
346
+ "PHSharedAlbumCreationViewController", b"initWithConfiguration:"
347
+ )
348
+ objc.registerNewKeywordsFromSelector(
349
+ "PHSharedAlbumCreationViewController", b"initWithNibName:bundle:"
350
+ )
351
+ objc.registerNewKeywordsFromSelector(
352
+ "PHSharedAlbumCustomizationViewController", b"init"
353
+ )
354
+ objc.registerNewKeywordsFromSelector(
355
+ "PHSharedAlbumCustomizationViewController", b"initWithAlbumIdentifier:photoLibrary:"
356
+ )
357
+ objc.registerNewKeywordsFromSelector(
358
+ "PHSharedAlbumCustomizationViewController", b"initWithCoder:"
359
+ )
360
+ objc.registerNewKeywordsFromSelector(
361
+ "PHSharedAlbumCustomizationViewController", b"initWithNibName:bundle:"
362
+ )
363
+ objc.registerNewKeywordsFromSelector("PHSharedAlbumPostingViewController", b"init")
364
+ objc.registerNewKeywordsFromSelector(
365
+ "PHSharedAlbumPostingViewController", b"initWithCoder:"
366
+ )
367
+ objc.registerNewKeywordsFromSelector(
368
+ "PHSharedAlbumPostingViewController",
369
+ b"initWithItems:defaultAlbumIdentifier:photoLibrary:",
370
+ )
371
+ objc.registerNewKeywordsFromSelector(
372
+ "PHSharedAlbumPostingViewController", b"initWithNibName:bundle:"
373
+ )
305
374
  expressions = {}
375
+ formal_protocols = {
376
+ "PHContentEditingController": "PHContentEditingController",
377
+ "PHLivePhotoViewDelegate": "PHLivePhotoViewDelegate",
378
+ "PHPickerViewControllerDelegate": "PHPickerViewControllerDelegate",
379
+ "PHProjectExtensionController": "PHProjectExtensionController",
380
+ "PHProjectTypeDescriptionDataSource": "PHProjectTypeDescriptionDataSource",
381
+ "PHProjectTypeDescriptionInvalidator": "PHProjectTypeDescriptionInvalidator",
382
+ "PHSharedAlbumCreationViewControllerDelegate": "PHSharedAlbumCreationViewControllerDelegate",
383
+ "PHSharedAlbumCustomizationViewControllerDelegate": "PHSharedAlbumCustomizationViewControllerDelegate",
384
+ "PHSharedAlbumPostingViewControllerDelegate": "PHSharedAlbumPostingViewControllerDelegate",
385
+ }
306
386
 
307
387
  # END OF FILE
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyobjc-framework-PhotosUI
3
- Version: 12.2.1
3
+ Version: 13.0
4
4
  Summary: Wrappers for the framework PhotosUI on macOS
5
5
  Home-page: https://github.com/ronaldoussoren/pyobjc
6
6
  Author: Ronald Oussoren
@@ -17,21 +17,21 @@ Classifier: Operating System :: MacOS :: MacOS X
17
17
  Classifier: Programming Language :: Python
18
18
  Classifier: Programming Language :: Python :: 3
19
19
  Classifier: Programming Language :: Python :: 3 :: Only
20
- Classifier: Programming Language :: Python :: 3.10
21
20
  Classifier: Programming Language :: Python :: 3.11
22
21
  Classifier: Programming Language :: Python :: 3.12
23
22
  Classifier: Programming Language :: Python :: 3.13
24
23
  Classifier: Programming Language :: Python :: 3.14
25
24
  Classifier: Programming Language :: Python :: 3.15
25
+ Classifier: Programming Language :: Python :: 3.16
26
26
  Classifier: Programming Language :: Python :: Implementation :: CPython
27
27
  Classifier: Programming Language :: Python :: Free Threading :: 3 - Stable
28
28
  Classifier: Programming Language :: Objective C
29
29
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
30
30
  Classifier: Topic :: Software Development :: User Interfaces
31
- Requires-Python: >=3.10
31
+ Requires-Python: >=3.11
32
32
  Description-Content-Type: text/x-rst; charset=UTF-8
33
- Requires-Dist: pyobjc-core>=12.2.1
34
- Requires-Dist: pyobjc-framework-Cocoa>=12.2.1
33
+ Requires-Dist: pyobjc-core>=13.0
34
+ Requires-Dist: pyobjc-framework-Cocoa>=13.0
35
35
  Dynamic: author
36
36
  Dynamic: author-email
37
37
  Dynamic: classifier
@@ -22,13 +22,15 @@ PyObjCTest/test_phlivephotoview.py
22
22
  PyObjCTest/test_photosui.py
23
23
  PyObjCTest/test_photosuitypes.py
24
24
  PyObjCTest/test_phpicker.py
25
- PyObjCTest/test_phprojectextensionContext.py
26
25
  PyObjCTest/test_phprojectextensioncontext.py
27
26
  PyObjCTest/test_phprojectextensioncontroller.py
28
27
  PyObjCTest/test_phprojectinfo.py
29
28
  PyObjCTest/test_phprojecttypedescription.py
30
29
  PyObjCTest/test_phprojecttypedescriptiondatasource.py
30
+ PyObjCTest/test_phsharedalbumcreationviewcontroller.py
31
+ PyObjCTest/test_phsharedalbumcustomizationviewcontroller.py
32
+ PyObjCTest/test_phsharedalbumpostingviewcontroller.py
31
33
  metadata/PhotosUI.fwinfo
32
34
  metadata/metadata.ini
33
- metadata/raw/arm64-26.5.fwinfo
34
- metadata/raw/x86_64-26.5.fwinfo
35
+ metadata/raw/arm64-27.fwinfo
36
+ metadata/raw/x86_64-27.fwinfo
@@ -0,0 +1,3 @@
1
+ macOS 27.2 (26B123)
2
+ Apple clang version 21.0.0 (clang-2100.4.1.1)
3
+ SDK: macOS 27.2
@@ -0,0 +1,2 @@
1
+ pyobjc-core>=13.0
2
+ pyobjc-framework-Cocoa>=13.0
@@ -2,6 +2,10 @@
2
2
  #include "Python.h"
3
3
  #include "pyobjc-api.h"
4
4
 
5
+ #ifdef USE_STATIC_ANALYZER
6
+ #include "../../pyobjc-core/Modules/objc/python-api-used.h"
7
+ #endif
8
+
5
9
  #import <PhotosUI/PhotosUI.h>
6
10
 
7
11
  /* We include the source code here instead of
@@ -10,6 +14,8 @@
10
14
 
11
15
  #include "_PhotosUI_protocols.m"
12
16
 
17
+ NS_ASSUME_NONNULL_BEGIN
18
+
13
19
  static PyMethodDef mod_methods[] = {
14
20
  {0, 0, 0, 0} /* sentinel */
15
21
  };
@@ -55,10 +61,11 @@ static struct PyModuleDef mod_module = {
55
61
  .m_free = NULL,
56
62
  };
57
63
 
58
- PyObject* PyInit__PhotosUI(void);
64
+ PyObject* _Nullable PyInit__PhotosUI(void);
59
65
 
60
- PyObject* __attribute__((__visibility__("default")))
66
+ PyObject* _Nullable __attribute__((__visibility__("default")))
61
67
  PyInit__PhotosUI(void)
62
68
  {
63
69
  return PyModuleDef_Init(&mod_module);
64
70
  }
71
+ NS_ASSUME_NONNULL_END
@@ -1,8 +1,7 @@
1
- /*
2
- * This file is generated by objective.metadata
3
- *
4
- * Last update: Tue May 26 22:53:41 2015
5
- */
1
+ // LCOV_EXCL_START
2
+ // This function is only present to ensure protocols are
3
+ // available at runtime.
4
+ NS_ASSUME_NONNULL_BEGIN
6
5
 
7
6
  static void __attribute__((__used__))
8
7
  use_protocols(void)
@@ -30,4 +29,15 @@ use_protocols(void)
30
29
  p = PyObjC_IdToPython(@protocol(PHPickerViewControllerDelegate));
31
30
  Py_XDECREF(p);
32
31
  #endif /* PyObjC_BUILD_RELEASE >= 1300 */
32
+ #if PyObjC_BUILD_RELEASE >= 2700
33
+ p = PyObjC_IdToPython(@protocol(PHSharedAlbumCreationViewControllerDelegate));
34
+ Py_XDECREF(p);
35
+ p = PyObjC_IdToPython(@protocol(PHSharedAlbumCustomizationViewControllerDelegate));
36
+ Py_XDECREF(p);
37
+ p = PyObjC_IdToPython(@protocol(PHSharedAlbumPostingViewControllerDelegate));
38
+ Py_XDECREF(p);
39
+ #endif /* PyObjC_BUILD_RELEASE >= 2700 */
33
40
  }
41
+
42
+ NS_ASSUME_NONNULL_END
43
+ // LCOV_EXCL_STOP
@@ -60,6 +60,11 @@ typedef int(RegisterMethodMappingFunctionType)(
60
60
  PyObject* _Nonnull const* _Nonnull, size_t),
61
61
  IMP _Nullable (*_Nonnull)(PyObject* _Nonnull, PyObject* _Nonnull));
62
62
 
63
+ #ifndef PyObjC_FUNCTION_CALL_H
64
+ typedef PyObject* _Nullable (*PyObjC_FunctionCallFunc)(
65
+ PyObject* meth, PyObject* _Nonnull const* _Nonnull args, size_t nargs);
66
+ #endif
67
+
63
68
  struct pyobjc_api {
64
69
  int api_version; /* API version */
65
70
  size_t struct_len; /* Length of this struct */
@@ -117,6 +122,9 @@ struct pyobjc_api {
117
122
 
118
123
  PyObject* _Nullable (*_Nonnull createopaquepointertype)(const char*, const char*,
119
124
  const char*);
125
+ int (*_Nonnull register_functioncaller)(void*, PyObjC_FunctionCallFunc);
126
+ PyObject* _Nullable (*_Nonnull create_registered_struct)(
127
+ const char*, Py_ssize_t, const char* _Nonnull* _Nullable, Py_ssize_t*);
120
128
  };
121
129
 
122
130
  #ifndef PYOBJC_BUILD
@@ -159,6 +167,8 @@ static struct pyobjc_api* PyObjC_API;
159
167
  #define PyObjC_CheckArgCount (PyObjC_API->checkargcount)
160
168
  #define PyObjC_CheckNoKwnames (PyObjC_API->checknokwnames)
161
169
  #define PyObjCCreateOpaquePointerType (PyObjC_API->createopaquepointertype)
170
+ #define PyObjCRegister_FunctionCaller (PyObjC_API->register_functioncaller)
171
+ #define PyObjC_CreateRegisteredStruct (PyObjC_API->create_registered_struct)
162
172
 
163
173
  typedef void (*PyObjC_Function_Pointer)(void);
164
174
  typedef struct PyObjC_function_map {
@@ -178,21 +188,25 @@ static inline int
178
188
  PyObjC_ImportAPI(PyObject* calling_module)
179
189
  {
180
190
  PyObjC_API = (struct pyobjc_api*)PyCapsule_Import("objc." PYOBJC_API_NAME, 0);
181
- if (PyObjC_API == NULL) {
182
- return -1;
191
+ if (PyObjC_API == NULL) { // LCOV_BR_EXCL_LINE
192
+ return -1; // LCOV_EXCL_LINE
183
193
  }
184
- if (PyObjC_API->api_version != PYOBJC_API_VERSION) {
194
+ if (PyObjC_API->api_version != PYOBJC_API_VERSION) { // LCOV_BR_EXCL_LINE
195
+ // LCOV_EXCL_START
185
196
  PyErr_Format(PyExc_RuntimeError,
186
197
  "Wrong version of PyObjC C API (got %d, expected %d)",
187
198
  (int)PyObjC_API->api_version, (int)PYOBJC_API_VERSION);
188
199
  return -1;
200
+ // LCOV_EXCL_STOP
189
201
  }
190
202
 
191
- if (PyObjC_API->struct_len < PyObjC_EXPECTED_STRUCT_SIZE) {
203
+ if (PyObjC_API->struct_len < PyObjC_EXPECTED_STRUCT_SIZE) { // LCOV_EXCL_LINE
204
+ // LCOV_EXCL_START
192
205
  PyErr_Format(PyExc_RuntimeError,
193
206
  "Wrong struct-size of PyObjC C API (got %d, expected %d)",
194
207
  (int)PyObjC_API->struct_len, (int)sizeof(struct pyobjc_api));
195
208
  return -1;
209
+ // LCOV_EXCL_STOP
196
210
  }
197
211
 
198
212
  /* Current pyobjc implementation doesn't allow deregistering
@@ -167,24 +167,6 @@ _PyObjCTuple_GetItem(PyObject* tuple, Py_ssize_t idx)
167
167
  PyGILState_Release(_GILState); \
168
168
  } while (0)
169
169
 
170
- #if PY_VERSION_HEX < 0x030a0000
171
-
172
- static inline PyObject*
173
- Py_NewRef(PyObject* o)
174
- {
175
- Py_INCREF(o);
176
- return o;
177
- }
178
-
179
- static inline PyObject*
180
- Py_XNewRef(PyObject* o)
181
- {
182
- Py_XINCREF(o);
183
- return o;
184
- }
185
-
186
- #endif /* PY_VERSION_HEX < 0x030a0000 */
187
-
188
170
  #if PY_VERSION_HEX < 0x030d0000
189
171
  #define Py_BEGIN_CRITICAL_SECTION(value) \
190
172
  { \
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyobjc-framework-PhotosUI
3
- Version: 12.2.1
3
+ Version: 13.0
4
4
  Summary: Wrappers for the framework PhotosUI on macOS
5
5
  Home-page: https://github.com/ronaldoussoren/pyobjc
6
6
  Author: Ronald Oussoren
@@ -17,21 +17,21 @@ Classifier: Operating System :: MacOS :: MacOS X
17
17
  Classifier: Programming Language :: Python
18
18
  Classifier: Programming Language :: Python :: 3
19
19
  Classifier: Programming Language :: Python :: 3 :: Only
20
- Classifier: Programming Language :: Python :: 3.10
21
20
  Classifier: Programming Language :: Python :: 3.11
22
21
  Classifier: Programming Language :: Python :: 3.12
23
22
  Classifier: Programming Language :: Python :: 3.13
24
23
  Classifier: Programming Language :: Python :: 3.14
25
24
  Classifier: Programming Language :: Python :: 3.15
25
+ Classifier: Programming Language :: Python :: 3.16
26
26
  Classifier: Programming Language :: Python :: Implementation :: CPython
27
27
  Classifier: Programming Language :: Python :: Free Threading :: 3 - Stable
28
28
  Classifier: Programming Language :: Objective C
29
29
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
30
30
  Classifier: Topic :: Software Development :: User Interfaces
31
- Requires-Python: >=3.10
31
+ Requires-Python: >=3.11
32
32
  Description-Content-Type: text/x-rst; charset=UTF-8
33
- Requires-Dist: pyobjc-core>=12.2.1
34
- Requires-Dist: pyobjc-framework-Cocoa>=12.2.1
33
+ Requires-Dist: pyobjc-core>=13.0
34
+ Requires-Dist: pyobjc-framework-Cocoa>=13.0
35
35
  Dynamic: author
36
36
  Dynamic: author-email
37
37
  Dynamic: classifier
@@ -1,4 +1,4 @@
1
- from PyObjCTools.TestSupport import TestCase, min_os_level
1
+ from PyObjCTools.TestSupport import TestCase, min_sdk_level
2
2
  import PhotosUI
3
3
 
4
4
 
@@ -14,12 +14,11 @@ class TestPHContentEditingControllerHelper(PhotosUI.NSObject):
14
14
 
15
15
 
16
16
  class TestPHContentEditingController(TestCase):
17
- @min_os_level("10.11")
18
- def testProtocols(self):
19
- self.assertProtocolExists("PHContentEditingController")
17
+ @min_sdk_level("10.11")
18
+ def test_protocols(self):
19
+ self.assertProtocolExists("PHContentEditingController", PhotosUI)
20
20
 
21
- @min_os_level("10.11")
22
- def testMethods(self):
21
+ def test_protocol_methods(self):
23
22
  self.assertResultIsBOOL(
24
23
  TestPHContentEditingControllerHelper.canHandleAdjustmentData_
25
24
  )
@@ -15,26 +15,24 @@ class TestPHLivePhotoViewHelper(PhotosUI.NSObject):
15
15
 
16
16
 
17
17
  class TestPHLivePhotoView(TestCase):
18
- def test_enum_types(self):
19
- self.assertIsEnumType(PhotosUI.PHLivePhotoViewContentMode)
18
+ def test_enums(self):
20
19
  self.assertIsEnumType(PhotosUI.PHLivePhotoViewPlaybackStyle)
21
-
22
- def test_constants(self):
23
20
  self.assertEqual(PhotosUI.PHLivePhotoViewPlaybackStyleUndefined, 0)
24
21
  self.assertEqual(PhotosUI.PHLivePhotoViewPlaybackStyleFull, 1)
25
22
  self.assertEqual(PhotosUI.PHLivePhotoViewPlaybackStyleHint, 2)
26
23
 
24
+ self.assertIsEnumType(PhotosUI.PHLivePhotoViewContentMode)
27
25
  self.assertEqual(PhotosUI.PHLivePhotoViewContentModeAspectFit, 0)
28
26
  self.assertEqual(PhotosUI.PHLivePhotoViewContentModeAspectFill, 1)
29
27
 
30
28
  @min_os_level("10.12")
31
- def testMethods(self):
29
+ def test_methods(self):
32
30
  self.assertResultIsBOOL(PhotosUI.PHLivePhotoView.isMuted)
33
31
  self.assertArgIsBOOL(PhotosUI.PHLivePhotoView.setMuted_, 0)
34
32
  self.assertArgIsBOOL(PhotosUI.PHLivePhotoView.stopPlaybackAnimated_, 0)
35
33
 
36
34
  @min_sdk_level("10.12")
37
- def testProtocolMethods(self):
35
+ def test_protocol_methods(self):
38
36
  self.assertArgHasType(
39
37
  TestPHLivePhotoViewHelper.livePhotoView_willBeginPlaybackWithStyle_,
40
38
  1,
@@ -57,5 +55,5 @@ class TestPHLivePhotoView(TestCase):
57
55
  )
58
56
 
59
57
  @min_sdk_level("10.12")
60
- def testProtocols(self):
61
- self.assertProtocolExists("PHLivePhotoViewDelegate")
58
+ def test_protocols(self):
59
+ self.assertProtocolExists("PHLivePhotoViewDelegate", PhotosUI)
@@ -3,11 +3,11 @@ import PhotosUI
3
3
 
4
4
 
5
5
  class TestPhotosUITypes(TestCase):
6
- def test_typed_enum(self):
6
+ def test_typed_enums(self):
7
7
  self.assertIsTypedEnum(PhotosUI.PHProjectCategory, str)
8
8
 
9
9
  @min_os_level("10.13")
10
- def testConstants(self):
10
+ def test_constants(self):
11
11
  self.assertIsInstance(PhotosUI.PHProjectTypeUndefined, str)
12
12
 
13
13
  @min_os_level("10.14")
@@ -1,9 +1,9 @@
1
- from PyObjCTools.TestSupport import TestCase, min_os_level, min_sdk_level
1
+ from PyObjCTools.TestSupport import TestCase, min_sdk_level
2
2
  import PhotosUI
3
3
 
4
4
 
5
5
  class TestPHPicker(TestCase):
6
- def test_constants(self):
6
+ def test_enums(self):
7
7
  self.assertIsEnumType(PhotosUI.PHPickerConfigurationAssetRepresentationMode)
8
8
  self.assertEqual(
9
9
  PhotosUI.PHPickerConfigurationAssetRepresentationModeAutomatic, 0
@@ -35,13 +35,11 @@ class TestPHPicker(TestCase):
35
35
  PhotosUI.PHPickerCapabilitiesSensitivityAnalysisIntervention, 1 << 4
36
36
  )
37
37
 
38
- @min_os_level("13.0")
39
- def testClasses(self):
40
- self.assertClassIsFinal(PhotosUI.PHPickerFilter)
41
- self.assertClassIsFinal(PhotosUI.PHPickerConfiguration)
42
- self.assertClassIsFinal(PhotosUI.PHPickerResult)
43
- self.assertClassIsFinal(PhotosUI.PHPickerViewController)
38
+ self.assertIsEnumType(PhotosUI.PHPickerMetadataOptions)
39
+ self.assertEqual(PhotosUI.PHPickerMetadataOptionsNone, 0)
40
+ self.assertEqual(PhotosUI.PHPickerMetadataOptionsRemoveLocation, 1 << 0)
41
+ self.assertEqual(PhotosUI.PHPickerMetadataOptionsRemoveCaptions, 1 << 1)
44
42
 
45
43
  @min_sdk_level("13.0")
46
- def testProtocols(self):
47
- self.assertProtocolExists("PHPickerViewControllerDelegate")
44
+ def test_protocols(self):
45
+ self.assertProtocolExists("PHPickerViewControllerDelegate", PhotosUI)
@@ -4,7 +4,7 @@ import PhotosUI
4
4
 
5
5
  class TestPHProjectExtensionContext(TestCase):
6
6
  @min_os_level("10.14")
7
- def testMethods(self):
7
+ def test_methods(self):
8
8
  self.assertArgIsBlock(
9
9
  PhotosUI.PHProjectExtensionContext.updatedProjectInfoFromProjectInfo_completion_,
10
10
  1,
@@ -1,4 +1,4 @@
1
- from PyObjCTools.TestSupport import TestCase, min_os_level, min_sdk_level
1
+ from PyObjCTools.TestSupport import TestCase, min_sdk_level
2
2
  import PhotosUI
3
3
 
4
4
 
@@ -15,11 +15,10 @@ class TestPHProjectExtensionControllerHelper(PhotosUI.NSObject):
15
15
 
16
16
  class TestPHProjectExtensionController(TestCase):
17
17
  @min_sdk_level("10.13")
18
- def testProtocols(self):
19
- self.assertProtocolExists("PHProjectExtensionController")
18
+ def test_protocols(self):
19
+ self.assertProtocolExists("PHProjectExtensionController", PhotosUI)
20
20
 
21
- @min_os_level("10.11")
22
- def testMethods(self):
21
+ def test_protocol_methods(self):
23
22
  self.assertArgIsBlock(
24
23
  TestPHProjectExtensionControllerHelper.beginProjectWithExtensionContext_projectInfo_completion_,
25
24
  2,
@@ -3,12 +3,8 @@ import PhotosUI
3
3
 
4
4
 
5
5
  class TestPHProjectInfo(TestCase):
6
- def test_enum_types(self):
6
+ def test_enums(self):
7
7
  self.assertIsEnumType(PhotosUI.PHProjectCreationSource)
8
- self.assertIsEnumType(PhotosUI.PHProjectSectionType)
9
- self.assertIsEnumType(PhotosUI.PHProjectTextElementType)
10
-
11
- def testConstants(self):
12
8
  self.assertEqual(PhotosUI.PHProjectCreationSourceUndefined, 0)
13
9
  self.assertEqual(PhotosUI.PHProjectCreationSourceUserSelection, 1)
14
10
  self.assertEqual(PhotosUI.PHProjectCreationSourceAlbum, 2)
@@ -22,17 +18,19 @@ class TestPHProjectInfo(TestCase):
22
18
  self.assertEqual(PhotosUI.PHProjectCreationSourceProjectSlideshow, 25)
23
19
  self.assertEqual(PhotosUI.PHProjectCreationSourceProjectExtension, 26)
24
20
 
21
+ self.assertIsEnumType(PhotosUI.PHProjectSectionType)
25
22
  self.assertEqual(PhotosUI.PHProjectSectionTypeUndefined, 0)
26
23
  self.assertEqual(PhotosUI.PHProjectSectionTypeCover, 1)
27
24
  self.assertEqual(PhotosUI.PHProjectSectionTypeContent, 2)
28
25
  self.assertEqual(PhotosUI.PHProjectSectionTypeAuxiliary, 3)
29
26
 
27
+ self.assertIsEnumType(PhotosUI.PHProjectTextElementType)
30
28
  self.assertEqual(PhotosUI.PHProjectTextElementTypeBody, 0)
31
29
  self.assertEqual(PhotosUI.PHProjectTextElementTypeTitle, 1)
32
30
  self.assertEqual(PhotosUI.PHProjectTextElementTypeSubtitle, 2)
33
31
 
34
32
  @min_os_level("10.14")
35
- def testMethods(self):
33
+ def test_methods(self):
36
34
  self.assertResultIsBOOL(PhotosUI.PHProjectInfo.brandingEnabled)
37
35
  self.assertResultIsBOOL(PhotosUI.PHProjectInfo.pageNumbersEnabled)
38
36
  self.assertResultIsBOOL(PhotosUI.PHProjectAssetElement.horizontallyFlipped)
@@ -4,5 +4,5 @@ import PhotosUI
4
4
 
5
5
  class TestPHProjectTypeDescription(TestCase):
6
6
  @min_os_level("10.14")
7
- def testMethods(self):
7
+ def test_methods(self):
8
8
  self.assertResultIsBOOL(PhotosUI.PHProjectTypeDescription.canProvideSubtypes)
@@ -4,6 +4,6 @@ import PhotosUI # noqa: F401
4
4
 
5
5
  class TestPHProjectTypeDescriptionDataSource(TestCase):
6
6
  @min_sdk_level("10.14")
7
- def testProtocols(self):
8
- self.assertProtocolExists("PHProjectTypeDescriptionDataSource")
9
- self.assertProtocolExists("PHProjectTypeDescriptionInvalidator")
7
+ def test_protocols(self):
8
+ self.assertProtocolExists("PHProjectTypeDescriptionDataSource", PhotosUI)
9
+ self.assertProtocolExists("PHProjectTypeDescriptionInvalidator", PhotosUI)
@@ -0,0 +1,15 @@
1
+ from PyObjCTools.TestSupport import TestCase, min_sdk_level
2
+ import PhotosUI
3
+
4
+
5
+ class TestPHSharedAlbumCreationViewController(TestCase):
6
+ def test_enums(self):
7
+ self.assertIsEnumType(PhotosUI.PHSharedAlbumCreationSharingPolicy)
8
+ self.assertEqual(PhotosUI.PHSharedAlbumCreationSharingPolicyPrivate, 0)
9
+ self.assertEqual(PhotosUI.PHSharedAlbumCreationSharingPolicyPublic, 1)
10
+
11
+ @min_sdk_level("27.0")
12
+ def test_protocols(self):
13
+ self.assertProtocolExists(
14
+ "PHSharedAlbumCreationViewControllerDelegate", PhotosUI
15
+ )
@@ -0,0 +1,10 @@
1
+ from PyObjCTools.TestSupport import TestCase, min_sdk_level
2
+ import PhotosUI
3
+
4
+
5
+ class TestPHSharedAlbumCustomizationViewController(TestCase):
6
+ @min_sdk_level("27.0")
7
+ def test_protocols(self):
8
+ self.assertProtocolExists(
9
+ "PHSharedAlbumCustomizationViewControllerDelegate", PhotosUI
10
+ )