pyobjc-framework-CoreSpotlight 11.0__tar.gz → 11.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 (44) hide show
  1. {pyobjc_framework_corespotlight-11.0 → pyobjc_framework_corespotlight-11.1}/Lib/CoreSpotlight/_metadata.py +51 -5
  2. {pyobjc_framework_corespotlight-11.0 → pyobjc_framework_corespotlight-11.1}/Lib/pyobjc_framework_CoreSpotlight.egg-info/PKG-INFO +17 -6
  3. {pyobjc_framework_corespotlight-11.0 → pyobjc_framework_corespotlight-11.1}/Lib/pyobjc_framework_CoreSpotlight.egg-info/SOURCES.txt +2 -2
  4. pyobjc_framework_corespotlight-11.1/Lib/pyobjc_framework_CoreSpotlight.egg-info/pyobjc-build-info.txt +3 -0
  5. pyobjc_framework_corespotlight-11.1/Lib/pyobjc_framework_CoreSpotlight.egg-info/requires.txt +2 -0
  6. {pyobjc_framework_corespotlight-11.0 → pyobjc_framework_corespotlight-11.1}/License.txt +1 -1
  7. {pyobjc_framework_corespotlight-11.0 → pyobjc_framework_corespotlight-11.1}/Modules/pyobjc-compat.h +95 -2
  8. {pyobjc_framework_corespotlight-11.0 → pyobjc_framework_corespotlight-11.1}/PKG-INFO +17 -6
  9. pyobjc_framework_corespotlight-11.1/PyObjCTest/__init__.py +1 -0
  10. {pyobjc_framework_corespotlight-11.0 → pyobjc_framework_corespotlight-11.1}/PyObjCTest/test_cssearchableindex.py +9 -0
  11. {pyobjc_framework_corespotlight-11.0 → pyobjc_framework_corespotlight-11.1}/PyObjCTest/test_cssearchableitem.py +9 -0
  12. pyobjc_framework_corespotlight-11.0/metadata/raw/arm64-15.0.fwinfo → pyobjc_framework_corespotlight-11.1/metadata/raw/arm64-15.4.fwinfo +180 -2
  13. pyobjc_framework_corespotlight-11.0/metadata/raw/x86_64-15.0.fwinfo → pyobjc_framework_corespotlight-11.1/metadata/raw/x86_64-15.4.fwinfo +180 -2
  14. {pyobjc_framework_corespotlight-11.0 → pyobjc_framework_corespotlight-11.1}/pyobjc_setup.py +7 -41
  15. {pyobjc_framework_corespotlight-11.0 → pyobjc_framework_corespotlight-11.1}/setup.py +1 -1
  16. pyobjc_framework_corespotlight-11.0/Lib/pyobjc_framework_CoreSpotlight.egg-info/pyobjc-build-info.txt +0 -3
  17. pyobjc_framework_corespotlight-11.0/Lib/pyobjc_framework_CoreSpotlight.egg-info/requires.txt +0 -2
  18. pyobjc_framework_corespotlight-11.0/PyObjCTest/__init__.py +0 -1
  19. {pyobjc_framework_corespotlight-11.0 → pyobjc_framework_corespotlight-11.1}/Lib/CoreSpotlight/__init__.py +0 -0
  20. {pyobjc_framework_corespotlight-11.0 → pyobjc_framework_corespotlight-11.1}/Lib/pyobjc_framework_CoreSpotlight.egg-info/dependency_links.txt +0 -0
  21. {pyobjc_framework_corespotlight-11.0 → pyobjc_framework_corespotlight-11.1}/Lib/pyobjc_framework_CoreSpotlight.egg-info/not-zip-safe +0 -0
  22. {pyobjc_framework_corespotlight-11.0 → pyobjc_framework_corespotlight-11.1}/Lib/pyobjc_framework_CoreSpotlight.egg-info/top_level.txt +0 -0
  23. {pyobjc_framework_corespotlight-11.0 → pyobjc_framework_corespotlight-11.1}/MANIFEST.in +0 -0
  24. {pyobjc_framework_corespotlight-11.0 → pyobjc_framework_corespotlight-11.1}/Modules/_CoreSpotlight.m +0 -0
  25. {pyobjc_framework_corespotlight-11.0 → pyobjc_framework_corespotlight-11.1}/Modules/_CoreSpotlight_protocols.m +0 -0
  26. {pyobjc_framework_corespotlight-11.0 → pyobjc_framework_corespotlight-11.1}/Modules/pyobjc-api.h +0 -0
  27. {pyobjc_framework_corespotlight-11.0 → pyobjc_framework_corespotlight-11.1}/PyObjCTest/test_corespotlight.py +0 -0
  28. {pyobjc_framework_corespotlight-11.0 → pyobjc_framework_corespotlight-11.1}/PyObjCTest/test_csimportextension.py +0 -0
  29. {pyobjc_framework_corespotlight-11.0 → pyobjc_framework_corespotlight-11.1}/PyObjCTest/test_cssearchableitemattributeset.py +0 -0
  30. {pyobjc_framework_corespotlight-11.0 → pyobjc_framework_corespotlight-11.1}/PyObjCTest/test_cssearchableitemset_messaging.py +0 -0
  31. {pyobjc_framework_corespotlight-11.0 → pyobjc_framework_corespotlight-11.1}/PyObjCTest/test_cssearchquery.py +0 -0
  32. {pyobjc_framework_corespotlight-11.0 → pyobjc_framework_corespotlight-11.1}/PyObjCTest/test_cssuggestion.py +0 -0
  33. {pyobjc_framework_corespotlight-11.0 → pyobjc_framework_corespotlight-11.1}/PyObjCTest/test_csuserquery.py +0 -0
  34. {pyobjc_framework_corespotlight-11.0 → pyobjc_framework_corespotlight-11.1}/metadata/CoreSpotlight.fwinfo +0 -0
  35. {pyobjc_framework_corespotlight-11.0 → pyobjc_framework_corespotlight-11.1}/metadata/metadata.ini +0 -0
  36. {pyobjc_framework_corespotlight-11.0 → pyobjc_framework_corespotlight-11.1}/metadata/raw/arm64-12.3.fwinfo +0 -0
  37. {pyobjc_framework_corespotlight-11.0 → pyobjc_framework_corespotlight-11.1}/metadata/raw/arm64-13.0.fwinfo +0 -0
  38. {pyobjc_framework_corespotlight-11.0 → pyobjc_framework_corespotlight-11.1}/metadata/raw/arm64-14.5.fwinfo +0 -0
  39. {pyobjc_framework_corespotlight-11.0 → pyobjc_framework_corespotlight-11.1}/metadata/raw/x86_64-10.16.fwinfo +0 -0
  40. {pyobjc_framework_corespotlight-11.0 → pyobjc_framework_corespotlight-11.1}/metadata/raw/x86_64-12.3.fwinfo +0 -0
  41. {pyobjc_framework_corespotlight-11.0 → pyobjc_framework_corespotlight-11.1}/metadata/raw/x86_64-13.0.fwinfo +0 -0
  42. {pyobjc_framework_corespotlight-11.0 → pyobjc_framework_corespotlight-11.1}/metadata/raw/x86_64-14.5.fwinfo +0 -0
  43. {pyobjc_framework_corespotlight-11.0 → pyobjc_framework_corespotlight-11.1}/pyproject.toml +0 -0
  44. {pyobjc_framework_corespotlight-11.0 → pyobjc_framework_corespotlight-11.1}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  # This file is generated by objective.metadata
2
2
  #
3
- # Last update: Sun Jun 16 12:04:37 2024
3
+ # Last update: Sat Mar 1 11:13:57 2025
4
4
  #
5
5
  # flake8: noqa
6
6
 
@@ -31,11 +31,14 @@ else:
31
31
 
32
32
  misc = {}
33
33
  constants = """$CSActionIdentifier$CSIndexErrorDomain$CSMailboxArchive$CSMailboxDrafts$CSMailboxInbox$CSMailboxJunk$CSMailboxSent$CSMailboxTrash$CSQueryContinuationActionType$CSSearchQueryErrorDomain$CSSearchQueryString$CSSearchableItemActionType$CSSearchableItemActivityIdentifier$CSSuggestionHighlightAttributeName$CoreSpotlightVersionNumber@d$CoreSpotlightVersionString@*$"""
34
- enums = """$CSIndexErrorCodeIndexUnavailableError@-1000$CSIndexErrorCodeIndexingUnsupported@-1005$CSIndexErrorCodeInvalidClientStateError@-1002$CSIndexErrorCodeInvalidItemError@-1001$CSIndexErrorCodeMismatchedClientState@-1006$CSIndexErrorCodeQuotaExceeded@-1004$CSIndexErrorCodeRemoteConnectionError@-1003$CSIndexErrorCodeUnknownError@-1$CSSearchQueryErrorCodeCancelled@-2003$CSSearchQueryErrorCodeIndexUnreachable@-2001$CSSearchQueryErrorCodeInvalidQuery@-2002$CSSearchQueryErrorCodeUnknown@-2000$CSSearchQuerySourceOptionAllowMail@1$CSSearchQuerySourceOptionDefault@0$CSSuggestionKindCustom@1$CSSuggestionKindDefault@2$CSSuggestionKindNone@0$CSUserInteractionDefault@0$CSUserInteractionFocus@1$CSUserInteractionSelect@0$"""
34
+ enums = """$CSIndexErrorCodeIndexUnavailableError@-1000$CSIndexErrorCodeIndexingUnsupported@-1005$CSIndexErrorCodeInvalidClientStateError@-1002$CSIndexErrorCodeInvalidItemError@-1001$CSIndexErrorCodeMismatchedClientState@-1006$CSIndexErrorCodeQuotaExceeded@-1004$CSIndexErrorCodeRemoteConnectionError@-1003$CSIndexErrorCodeUnknownError@-1$CSSearchQueryErrorCodeCancelled@-2003$CSSearchQueryErrorCodeIndexUnreachable@-2001$CSSearchQueryErrorCodeInvalidQuery@-2002$CSSearchQueryErrorCodeUnknown@-2000$CSSearchQuerySourceOptionAllowMail@1$CSSearchQuerySourceOptionDefault@0$CSSearchableItemUpdateListenerOptionDefault@0$CSSearchableItemUpdateListenerOptionPriority@4$CSSearchableItemUpdateListenerOptionSummarization@2$CSSuggestionKindCustom@1$CSSuggestionKindDefault@2$CSSuggestionKindNone@0$CSUserInteractionDefault@0$CSUserInteractionFocus@1$CSUserInteractionSelect@0$"""
35
35
  misc.update(
36
36
  {
37
- "CSSearchQuerySourceOptions": NewType("CSSearchQuerySourceOptions", int),
38
37
  "CSUserInteraction": NewType("CSUserInteraction", int),
38
+ "CSSearchableItemUpdateListenerOptions": NewType(
39
+ "CSSearchableItemUpdateListenerOptions", int
40
+ ),
41
+ "CSSearchQuerySourceOptions": NewType("CSSearchQuerySourceOptions", int),
39
42
  "CSIndexErrorCode": NewType("CSIndexErrorCode", int),
40
43
  "CSSuggestionKind": NewType("CSSuggestionKind", int),
41
44
  "CSSearchQueryErrorCode": NewType("CSSearchQueryErrorCode", int),
@@ -284,14 +287,18 @@ try:
284
287
  }
285
288
  },
286
289
  )
290
+ r(b"CSUserQueryContext", b"disableSemanticSearch", {"retval": {"type": b"Z"}})
287
291
  r(b"CSUserQueryContext", b"enableRankedResults", {"retval": {"type": b"Z"}})
292
+ r(
293
+ b"CSUserQueryContext",
294
+ b"setDisableSemanticSearch:",
295
+ {"arguments": {2: {"type": b"Z"}}},
296
+ )
288
297
  r(
289
298
  b"CSUserQueryContext",
290
299
  b"setEnableRankedResults:",
291
300
  {"arguments": {2: {"type": b"Z"}}},
292
301
  )
293
- r(b"NSObject", b"disableSemanticSearch", {"retval": {"type": b"Z"}})
294
- r(b"NSObject", b"setDisableSemanticSearch:", {"arguments": {2: {"type": b"Z"}}})
295
302
  r(
296
303
  b"NSObject",
297
304
  b"dataForSearchableIndex:itemIdentifier:typeIdentifier:error:",
@@ -306,6 +313,14 @@ try:
306
313
  },
307
314
  },
308
315
  )
316
+ r(
317
+ b"NSObject",
318
+ b"disableSemanticSearch",
319
+ {
320
+ "comment": "should be part of 'CSUserQueryContext', but that doesn't work for some reason",
321
+ "retval": {"type": "Z"},
322
+ },
323
+ )
309
324
  r(
310
325
  b"NSObject",
311
326
  b"fileURLForSearchableIndex:itemIdentifier:typeIdentifier:inPlace:error:",
@@ -368,6 +383,37 @@ try:
368
383
  b"searchableIndexDidThrottle:",
369
384
  {"required": False, "retval": {"type": b"v"}, "arguments": {2: {"type": b"@"}}},
370
385
  )
386
+ r(
387
+ b"NSObject",
388
+ b"searchableItemsDidUpdate:",
389
+ {"required": False, "retval": {"type": b"v"}, "arguments": {2: {"type": b"@"}}},
390
+ )
391
+ r(
392
+ b"NSObject",
393
+ b"searchableItemsForIdentifiers:searchableItemsHandler:",
394
+ {
395
+ "required": False,
396
+ "retval": {"type": b"v"},
397
+ "arguments": {
398
+ 2: {"type": b"@"},
399
+ 3: {
400
+ "callable": {
401
+ "retval": {"type": b"v"},
402
+ "arguments": {0: {"type": b"^v"}, 1: {"type": b"@"}},
403
+ },
404
+ "type": b"@?",
405
+ },
406
+ },
407
+ },
408
+ )
409
+ r(
410
+ b"NSObject",
411
+ b"setDisableSemanticSearch:",
412
+ {
413
+ "comment": "should be part of 'CSUserQueryContext', but that doesn't work for some reason",
414
+ "arguments": {2: {"type": "Z"}},
415
+ },
416
+ )
371
417
  finally:
372
418
  objc._updatingMetadata(False)
373
419
 
@@ -1,18 +1,17 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: pyobjc-framework-CoreSpotlight
3
- Version: 11.0
3
+ Version: 11.1
4
4
  Summary: Wrappers for the framework CoreSpotlight on macOS
5
5
  Home-page: https://github.com/ronaldoussoren/pyobjc
6
6
  Author: Ronald Oussoren
7
7
  Author-email: pyobjc-dev@lists.sourceforge.net
8
- License: MIT License
8
+ License: MIT
9
9
  Keywords: PyObjC,CoreSpotlight
10
10
  Platform: MacOS X (>=10.13)
11
11
  Classifier: Development Status :: 5 - Production/Stable
12
12
  Classifier: Environment :: Console
13
13
  Classifier: Environment :: MacOS X :: Cocoa
14
14
  Classifier: Intended Audience :: Developers
15
- Classifier: License :: OSI Approved :: MIT License
16
15
  Classifier: Natural Language :: English
17
16
  Classifier: Operating System :: MacOS :: MacOS X
18
17
  Classifier: Programming Language :: Python
@@ -30,8 +29,20 @@ Classifier: Topic :: Software Development :: Libraries :: Python Modules
30
29
  Classifier: Topic :: Software Development :: User Interfaces
31
30
  Requires-Python: >=3.9
32
31
  Description-Content-Type: text/x-rst; charset=UTF-8
33
- Requires-Dist: pyobjc-core>=11.0
34
- Requires-Dist: pyobjc-framework-Cocoa>=11.0
32
+ Requires-Dist: pyobjc-core>=11.1
33
+ Requires-Dist: pyobjc-framework-Cocoa>=11.1
34
+ Dynamic: author
35
+ Dynamic: author-email
36
+ Dynamic: classifier
37
+ Dynamic: description
38
+ Dynamic: description-content-type
39
+ Dynamic: home-page
40
+ Dynamic: keywords
41
+ Dynamic: license
42
+ Dynamic: platform
43
+ Dynamic: requires-dist
44
+ Dynamic: requires-python
45
+ Dynamic: summary
35
46
  Project-URL: Documentation, https://pyobjc.readthedocs.io/en/latest/
36
47
  Project-URL: Issue tracker, https://github.com/ronaldoussoren/pyobjc/issues
37
48
  Project-URL: Repository, https://github.com/ronaldoussoren/pyobjc
@@ -31,9 +31,9 @@ metadata/metadata.ini
31
31
  metadata/raw/arm64-12.3.fwinfo
32
32
  metadata/raw/arm64-13.0.fwinfo
33
33
  metadata/raw/arm64-14.5.fwinfo
34
- metadata/raw/arm64-15.0.fwinfo
34
+ metadata/raw/arm64-15.4.fwinfo
35
35
  metadata/raw/x86_64-10.16.fwinfo
36
36
  metadata/raw/x86_64-12.3.fwinfo
37
37
  metadata/raw/x86_64-13.0.fwinfo
38
38
  metadata/raw/x86_64-14.5.fwinfo
39
- metadata/raw/x86_64-15.0.fwinfo
39
+ metadata/raw/x86_64-15.4.fwinfo
@@ -0,0 +1,3 @@
1
+ macOS 15.5 (24F74)
2
+ Apple clang version 17.0.0 (clang-1700.0.13.5)
3
+ SDK: macOS 15.5
@@ -0,0 +1,2 @@
1
+ pyobjc-core>=11.1
2
+ pyobjc-framework-Cocoa>=11.1
@@ -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-2024 - Ronald Oussoren
4
+ Copyright 2003-2025 - 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
 
@@ -179,7 +179,7 @@ extern const char* _Nullable PyObjC_Unicode_Fast_Bytes(PyObject* object);
179
179
 
180
180
  static inline PyObject* _Nullable* _Nonnull PyTuple_ITEMS(PyObject* tuple)
181
181
  {
182
- return &PyTuple_GET_ITEM(tuple, 0);
182
+ return &PyTuple_GET_ITEM(tuple, 0); // LCOV_BR_EXCL_LINE
183
183
  }
184
184
 
185
185
  /* This is a crude hack to disable a otherwise useful warning in the context of
@@ -198,7 +198,7 @@ _PyObjCTuple_SetItem(PyObject* tuple, Py_ssize_t idx, PyObject* _Nullable value)
198
198
  static inline PyObject*
199
199
  _PyObjCTuple_GetItem(PyObject* tuple, Py_ssize_t idx)
200
200
  {
201
- return PyTuple_GET_ITEM(tuple, idx);
201
+ return PyTuple_GET_ITEM(tuple, idx); // LCOV_BR_EXCL_LINE
202
202
  }
203
203
  #undef PyTuple_GET_ITEM
204
204
  #define PyTuple_GET_ITEM(a, b) _PyObjCTuple_GetItem(a, b)
@@ -314,6 +314,99 @@ static inline PyObject* PyType_GetDict(PyTypeObject* type)
314
314
  }
315
315
  #endif
316
316
 
317
+ #if PY_VERSION_HEX >= 0x030c0000 && PY_VERSION_HEX < 0x030e0000
318
+ /*
319
+ * These are available in 3.14 and above, the definitions below
320
+ * mirror the private implementation in 3.13.
321
+ */
322
+ static inline int PyUnstable_Object_IsUniquelyReferenced(PyObject* ob)
323
+ {
324
+ #ifdef Py_GIL_DISABLED
325
+ return (_Py_IsOwnedByCurrentThread(ob) &&
326
+ _Py_atomic_load_uint32_relaxed(&ob->ob_ref_local) == 1 &&
327
+ _Py_atomic_load_ssize_relaxed(&ob->ob_ref_shared) == 0);
328
+ #else
329
+ return Py_REFCNT(ob) == 1;
330
+ #endif
331
+ }
332
+
333
+ static inline void
334
+ PyUnstable_EnableTryIncRef(PyObject* op __attribute__((__unused__)))
335
+ {
336
+ #ifdef Py_GIL_DISABLED
337
+ for (;;) {
338
+ Py_ssize_t shared = _Py_atomic_load_ssize_relaxed(&op->ob_ref_shared);
339
+ if ((shared & _Py_REF_SHARED_FLAG_MASK) != 0) {
340
+ // Nothing to do if it's in WEAKREFS, QUEUED, or MERGED states.
341
+ return;
342
+ }
343
+ if (_Py_atomic_compare_exchange_ssize(
344
+ &op->ob_ref_shared, &shared, shared | _Py_REF_MAYBE_WEAKREF)) {
345
+ return;
346
+ }
347
+ }
348
+ #endif
349
+ }
350
+
351
+ #ifdef Py_GIL_DISABLED
352
+ static inline int
353
+ _Py_TryIncrefFast(PyObject *op) {
354
+ uint32_t local = _Py_atomic_load_uint32_relaxed(&op->ob_ref_local);
355
+ local += 1;
356
+ if (local == 0) {
357
+ // immortal
358
+ return 1;
359
+ }
360
+ if (_Py_IsOwnedByCurrentThread(op)) {
361
+ _Py_INCREF_STAT_INC();
362
+ _Py_atomic_store_uint32_relaxed(&op->ob_ref_local, local);
363
+ #ifdef Py_REF_DEBUG
364
+ _Py_IncRefTotal(_PyThreadState_GET());
365
+ #endif
366
+ return 1;
367
+ }
368
+ return 0;
369
+ }
370
+
371
+ static inline int
372
+ _Py_TryIncRefShared(PyObject *op)
373
+ {
374
+ Py_ssize_t shared = _Py_atomic_load_ssize_relaxed(&op->ob_ref_shared);
375
+ for (;;) {
376
+ // If the shared refcount is zero and the object is either merged
377
+ // or may not have weak references, then we cannot incref it.
378
+ if (shared == 0 || shared == _Py_REF_MERGED) {
379
+ return 0;
380
+ }
381
+
382
+ if (_Py_atomic_compare_exchange_ssize(
383
+ &op->ob_ref_shared,
384
+ &shared,
385
+ shared + (1 << _Py_REF_SHARED_SHIFT))) {
386
+ #ifdef Py_REF_DEBUG
387
+ _Py_IncRefTotal(_PyThreadState_GET());
388
+ #endif
389
+ _Py_INCREF_STAT_INC();
390
+ return 1;
391
+ }
392
+ }
393
+ }
394
+ #endif
395
+
396
+ static inline int
397
+ PyUnstable_TryIncRef(PyObject *op __attribute__((__unused__)))
398
+ {
399
+ #ifdef Py_GIL_DISABLED
400
+ return _Py_TryIncrefFast(op) || _Py_TryIncRefShared(op);
401
+ #else
402
+ if (Py_REFCNT(op) > 0) {
403
+ Py_INCREF(op);
404
+ return 1;
405
+ }
406
+ return 0;
407
+ #endif
408
+ }
409
+ #endif
317
410
 
318
411
  NS_ASSUME_NONNULL_END
319
412
 
@@ -1,18 +1,17 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: pyobjc-framework-CoreSpotlight
3
- Version: 11.0
3
+ Version: 11.1
4
4
  Summary: Wrappers for the framework CoreSpotlight on macOS
5
5
  Home-page: https://github.com/ronaldoussoren/pyobjc
6
6
  Author: Ronald Oussoren
7
7
  Author-email: pyobjc-dev@lists.sourceforge.net
8
- License: MIT License
8
+ License: MIT
9
9
  Keywords: PyObjC,CoreSpotlight
10
10
  Platform: MacOS X (>=10.13)
11
11
  Classifier: Development Status :: 5 - Production/Stable
12
12
  Classifier: Environment :: Console
13
13
  Classifier: Environment :: MacOS X :: Cocoa
14
14
  Classifier: Intended Audience :: Developers
15
- Classifier: License :: OSI Approved :: MIT License
16
15
  Classifier: Natural Language :: English
17
16
  Classifier: Operating System :: MacOS :: MacOS X
18
17
  Classifier: Programming Language :: Python
@@ -30,8 +29,20 @@ Classifier: Topic :: Software Development :: Libraries :: Python Modules
30
29
  Classifier: Topic :: Software Development :: User Interfaces
31
30
  Requires-Python: >=3.9
32
31
  Description-Content-Type: text/x-rst; charset=UTF-8
33
- Requires-Dist: pyobjc-core>=11.0
34
- Requires-Dist: pyobjc-framework-Cocoa>=11.0
32
+ Requires-Dist: pyobjc-core>=11.1
33
+ Requires-Dist: pyobjc-framework-Cocoa>=11.1
34
+ Dynamic: author
35
+ Dynamic: author-email
36
+ Dynamic: classifier
37
+ Dynamic: description
38
+ Dynamic: description-content-type
39
+ Dynamic: home-page
40
+ Dynamic: keywords
41
+ Dynamic: license
42
+ Dynamic: platform
43
+ Dynamic: requires-dist
44
+ Dynamic: requires-python
45
+ Dynamic: summary
35
46
 
36
47
 
37
48
  Wrappers for the "CoreSpotlight" framework on macOS.
@@ -0,0 +1 @@
1
+ """test suite"""
@@ -23,6 +23,9 @@ class TestCSSearchableIndexHelper(CoreSpotlight.NSObject):
23
23
  ):
24
24
  pass
25
25
 
26
+ def searchableItemsForIdentifiers_searchableItemsHandler_(self, a, b):
27
+ pass
28
+
26
29
 
27
30
  class TestCSSearchableIndex(TestCase):
28
31
  def test_enum_types(self):
@@ -95,6 +98,12 @@ class TestCSSearchableIndex(TestCase):
95
98
  4,
96
99
  )
97
100
 
101
+ self.assertArgIsBlock(
102
+ TestCSSearchableIndexHelper.searchableItemsForIdentifiers_searchableItemsHandler_,
103
+ 1,
104
+ b"v@",
105
+ )
106
+
98
107
  @min_os_level("13.0")
99
108
  def test_methods13_0(self):
100
109
  self.assertArgIsBlock(
@@ -11,6 +11,15 @@ class TestCSSearchableItem(TestCase):
11
11
  self.assertIsInstance(CoreSpotlight.CSQueryContinuationActionType, str)
12
12
  self.assertIsInstance(CoreSpotlight.CSSearchQueryString, str)
13
13
 
14
+ self.assertIsEnumType(CoreSpotlight.CSSearchableItemUpdateListenerOptions)
15
+ self.assertEqual(CoreSpotlight.CSSearchableItemUpdateListenerOptionDefault, 0)
16
+ self.assertEqual(
17
+ CoreSpotlight.CSSearchableItemUpdateListenerOptionSummarization, 1 << 1
18
+ )
19
+ self.assertEqual(
20
+ CoreSpotlight.CSSearchableItemUpdateListenerOptionPriority, 1 << 2
21
+ )
22
+
14
23
  @min_os_level("15.0")
15
24
  def test_methods15_0(self):
16
25
  self.assertResultIsBOOL(CoreSpotlight.CSSearchableItem.isUpdate)
@@ -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: Tue Jun 11 10:09:37 2024
4
+ // Last update: Sat Mar 1 11:13:01 2025
5
5
  {
6
6
  "arch": "arm64",
7
7
  "definitions": {
@@ -1346,6 +1346,31 @@
1346
1346
  },
1347
1347
  "selector": "setIsUpdate:",
1348
1348
  "visibility": "public"
1349
+ },
1350
+ {
1351
+ "args": [],
1352
+ "class_method": false,
1353
+ "retval": {
1354
+ "typestr": "Q",
1355
+ "typestr_special": false
1356
+ },
1357
+ "selector": "updateListenerOptions",
1358
+ "visibility": "public"
1359
+ },
1360
+ {
1361
+ "args": [
1362
+ {
1363
+ "typestr": "Q",
1364
+ "typestr_special": false
1365
+ }
1366
+ ],
1367
+ "class_method": false,
1368
+ "retval": {
1369
+ "typestr": "v",
1370
+ "typestr_special": false
1371
+ },
1372
+ "selector": "setUpdateListenerOptions:",
1373
+ "visibility": "public"
1349
1374
  }
1350
1375
  ],
1351
1376
  "name": "CSSearchableItem",
@@ -1389,6 +1414,14 @@
1389
1414
  "name": "isUpdate",
1390
1415
  "typestr": "Z",
1391
1416
  "typestr_special": true
1417
+ },
1418
+ {
1419
+ "attributes": [
1420
+ "assign"
1421
+ ],
1422
+ "name": "updateListenerOptions",
1423
+ "typestr": "Q",
1424
+ "typestr_special": false
1392
1425
  }
1393
1426
  ],
1394
1427
  "protocols": [
@@ -2239,6 +2272,21 @@
2239
2272
  "selector": "setProviderInPlaceFileTypeIdentifiers:",
2240
2273
  "visibility": "public"
2241
2274
  },
2275
+ {
2276
+ "args": [
2277
+ {
2278
+ "typestr": "@",
2279
+ "typestr_special": false
2280
+ }
2281
+ ],
2282
+ "class_method": false,
2283
+ "retval": {
2284
+ "typestr": "v",
2285
+ "typestr_special": false
2286
+ },
2287
+ "selector": "moveFrom:",
2288
+ "visibility": "public"
2289
+ },
2242
2290
  {
2243
2291
  "args": [],
2244
2292
  "class_method": false,
@@ -3239,6 +3287,51 @@
3239
3287
  "selector": "setLikelyJunk:",
3240
3288
  "visibility": "public"
3241
3289
  },
3290
+ {
3291
+ "args": [],
3292
+ "class_method": false,
3293
+ "retval": {
3294
+ "typestr": "@",
3295
+ "typestr_special": false
3296
+ },
3297
+ "selector": "isPriority",
3298
+ "visibility": "public"
3299
+ },
3300
+ {
3301
+ "args": [],
3302
+ "class_method": false,
3303
+ "retval": {
3304
+ "typestr": "@",
3305
+ "typestr_special": false
3306
+ },
3307
+ "selector": "textContentSummary",
3308
+ "visibility": "public"
3309
+ },
3310
+ {
3311
+ "args": [],
3312
+ "class_method": false,
3313
+ "retval": {
3314
+ "typestr": "@",
3315
+ "typestr_special": false
3316
+ },
3317
+ "selector": "transcribedTextContent",
3318
+ "visibility": "public"
3319
+ },
3320
+ {
3321
+ "args": [
3322
+ {
3323
+ "typestr": "@",
3324
+ "typestr_special": false
3325
+ }
3326
+ ],
3327
+ "class_method": false,
3328
+ "retval": {
3329
+ "typestr": "v",
3330
+ "typestr_special": false
3331
+ },
3332
+ "selector": "setTranscribedTextContent:",
3333
+ "visibility": "public"
3334
+ },
3242
3335
  {
3243
3336
  "args": [],
3244
3337
  "class_method": false,
@@ -6727,6 +6820,35 @@
6727
6820
  "typestr": "@",
6728
6821
  "typestr_special": false
6729
6822
  },
6823
+ {
6824
+ "attributes": [
6825
+ "nonatomic",
6826
+ "readonly",
6827
+ "strong"
6828
+ ],
6829
+ "name": "isPriority",
6830
+ "typestr": "@",
6831
+ "typestr_special": false
6832
+ },
6833
+ {
6834
+ "attributes": [
6835
+ "copy",
6836
+ "nonatomic",
6837
+ "readonly"
6838
+ ],
6839
+ "name": "textContentSummary",
6840
+ "typestr": "@",
6841
+ "typestr_special": false
6842
+ },
6843
+ {
6844
+ "attributes": [
6845
+ "nonatomic",
6846
+ "strong"
6847
+ ],
6848
+ "name": "transcribedTextContent",
6849
+ "typestr": "@",
6850
+ "typestr_special": false
6851
+ },
6730
6852
  {
6731
6853
  "attributes": [
6732
6854
  "copy"
@@ -8226,6 +8348,9 @@
8226
8348
  "CSSearchQueryErrorCodeUnknown": -2000,
8227
8349
  "CSSearchQuerySourceOptionAllowMail": 1,
8228
8350
  "CSSearchQuerySourceOptionDefault": 0,
8351
+ "CSSearchableItemUpdateListenerOptionDefault": 0,
8352
+ "CSSearchableItemUpdateListenerOptionPriority": 4,
8353
+ "CSSearchableItemUpdateListenerOptionSummarization": 2,
8229
8354
  "CSSuggestionKindCustom": 1,
8230
8355
  "CSSuggestionKindDefault": 2,
8231
8356
  "CSSuggestionKindNone": 0,
@@ -8244,6 +8369,9 @@
8244
8369
  "CSSearchQuerySourceOptions": {
8245
8370
  "type": "Q"
8246
8371
  },
8372
+ "CSSearchableItemUpdateListenerOptions": {
8373
+ "type": "Q"
8374
+ },
8247
8375
  "CSSuggestionKind": {
8248
8376
  "type": "q"
8249
8377
  },
@@ -8463,6 +8591,55 @@
8463
8591
  },
8464
8592
  "selector": "fileURLForSearchableIndex:itemIdentifier:typeIdentifier:inPlace:error:",
8465
8593
  "visibility": "public"
8594
+ },
8595
+ {
8596
+ "args": [
8597
+ {
8598
+ "typestr": "@",
8599
+ "typestr_special": false
8600
+ },
8601
+ {
8602
+ "callable": {
8603
+ "arguments": {
8604
+ "0": {
8605
+ "type": "^v"
8606
+ },
8607
+ "1": {
8608
+ "type": "@"
8609
+ }
8610
+ },
8611
+ "retval": {
8612
+ "type": "v"
8613
+ }
8614
+ },
8615
+ "typestr": "@?",
8616
+ "typestr_special": false
8617
+ }
8618
+ ],
8619
+ "class_method": false,
8620
+ "required": false,
8621
+ "retval": {
8622
+ "typestr": "v",
8623
+ "typestr_special": false
8624
+ },
8625
+ "selector": "searchableItemsForIdentifiers:searchableItemsHandler:",
8626
+ "visibility": "public"
8627
+ },
8628
+ {
8629
+ "args": [
8630
+ {
8631
+ "typestr": "@",
8632
+ "typestr_special": false
8633
+ }
8634
+ ],
8635
+ "class_method": false,
8636
+ "required": false,
8637
+ "retval": {
8638
+ "typestr": "v",
8639
+ "typestr_special": false
8640
+ },
8641
+ "selector": "searchableItemsDidUpdate:",
8642
+ "visibility": "public"
8466
8643
  }
8467
8644
  ],
8468
8645
  "properties": []
@@ -8477,6 +8654,7 @@
8477
8654
  "CSIndexErrorCode": "enum CSIndexErrorCode",
8478
8655
  "CSSearchQueryErrorCode": "enum CSSearchQueryErrorCode",
8479
8656
  "CSSearchQuerySourceOptions": "enum CSSearchQuerySourceOptions",
8657
+ "CSSearchableItemUpdateListenerOptions": "enum CSSearchableItemUpdateListenerOptions",
8480
8658
  "CSSuggestionKind": "enum CSSuggestionKind",
8481
8659
  "CSUserInteraction": "enum CSUserInteraction"
8482
8660
  }
@@ -8503,5 +8681,5 @@
8503
8681
  "CSUserQuery.h"
8504
8682
  ],
8505
8683
  "release": "10.16",
8506
- "sdk": "/Users/ronald/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.0.sdk"
8684
+ "sdk": "/Users/ronald/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk"
8507
8685
  }
@@ -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: Tue Jun 11 10:09:35 2024
4
+ // Last update: Sat Mar 1 11:12:59 2025
5
5
  {
6
6
  "arch": "x86_64",
7
7
  "definitions": {
@@ -1346,6 +1346,31 @@
1346
1346
  },
1347
1347
  "selector": "setIsUpdate:",
1348
1348
  "visibility": "public"
1349
+ },
1350
+ {
1351
+ "args": [],
1352
+ "class_method": false,
1353
+ "retval": {
1354
+ "typestr": "Q",
1355
+ "typestr_special": false
1356
+ },
1357
+ "selector": "updateListenerOptions",
1358
+ "visibility": "public"
1359
+ },
1360
+ {
1361
+ "args": [
1362
+ {
1363
+ "typestr": "Q",
1364
+ "typestr_special": false
1365
+ }
1366
+ ],
1367
+ "class_method": false,
1368
+ "retval": {
1369
+ "typestr": "v",
1370
+ "typestr_special": false
1371
+ },
1372
+ "selector": "setUpdateListenerOptions:",
1373
+ "visibility": "public"
1349
1374
  }
1350
1375
  ],
1351
1376
  "name": "CSSearchableItem",
@@ -1389,6 +1414,14 @@
1389
1414
  "name": "isUpdate",
1390
1415
  "typestr": "Z",
1391
1416
  "typestr_special": true
1417
+ },
1418
+ {
1419
+ "attributes": [
1420
+ "assign"
1421
+ ],
1422
+ "name": "updateListenerOptions",
1423
+ "typestr": "Q",
1424
+ "typestr_special": false
1392
1425
  }
1393
1426
  ],
1394
1427
  "protocols": [
@@ -2239,6 +2272,21 @@
2239
2272
  "selector": "setProviderInPlaceFileTypeIdentifiers:",
2240
2273
  "visibility": "public"
2241
2274
  },
2275
+ {
2276
+ "args": [
2277
+ {
2278
+ "typestr": "@",
2279
+ "typestr_special": false
2280
+ }
2281
+ ],
2282
+ "class_method": false,
2283
+ "retval": {
2284
+ "typestr": "v",
2285
+ "typestr_special": false
2286
+ },
2287
+ "selector": "moveFrom:",
2288
+ "visibility": "public"
2289
+ },
2242
2290
  {
2243
2291
  "args": [],
2244
2292
  "class_method": false,
@@ -3239,6 +3287,51 @@
3239
3287
  "selector": "setLikelyJunk:",
3240
3288
  "visibility": "public"
3241
3289
  },
3290
+ {
3291
+ "args": [],
3292
+ "class_method": false,
3293
+ "retval": {
3294
+ "typestr": "@",
3295
+ "typestr_special": false
3296
+ },
3297
+ "selector": "isPriority",
3298
+ "visibility": "public"
3299
+ },
3300
+ {
3301
+ "args": [],
3302
+ "class_method": false,
3303
+ "retval": {
3304
+ "typestr": "@",
3305
+ "typestr_special": false
3306
+ },
3307
+ "selector": "textContentSummary",
3308
+ "visibility": "public"
3309
+ },
3310
+ {
3311
+ "args": [],
3312
+ "class_method": false,
3313
+ "retval": {
3314
+ "typestr": "@",
3315
+ "typestr_special": false
3316
+ },
3317
+ "selector": "transcribedTextContent",
3318
+ "visibility": "public"
3319
+ },
3320
+ {
3321
+ "args": [
3322
+ {
3323
+ "typestr": "@",
3324
+ "typestr_special": false
3325
+ }
3326
+ ],
3327
+ "class_method": false,
3328
+ "retval": {
3329
+ "typestr": "v",
3330
+ "typestr_special": false
3331
+ },
3332
+ "selector": "setTranscribedTextContent:",
3333
+ "visibility": "public"
3334
+ },
3242
3335
  {
3243
3336
  "args": [],
3244
3337
  "class_method": false,
@@ -6727,6 +6820,35 @@
6727
6820
  "typestr": "@",
6728
6821
  "typestr_special": false
6729
6822
  },
6823
+ {
6824
+ "attributes": [
6825
+ "nonatomic",
6826
+ "readonly",
6827
+ "strong"
6828
+ ],
6829
+ "name": "isPriority",
6830
+ "typestr": "@",
6831
+ "typestr_special": false
6832
+ },
6833
+ {
6834
+ "attributes": [
6835
+ "copy",
6836
+ "nonatomic",
6837
+ "readonly"
6838
+ ],
6839
+ "name": "textContentSummary",
6840
+ "typestr": "@",
6841
+ "typestr_special": false
6842
+ },
6843
+ {
6844
+ "attributes": [
6845
+ "nonatomic",
6846
+ "strong"
6847
+ ],
6848
+ "name": "transcribedTextContent",
6849
+ "typestr": "@",
6850
+ "typestr_special": false
6851
+ },
6730
6852
  {
6731
6853
  "attributes": [
6732
6854
  "copy"
@@ -8226,6 +8348,9 @@
8226
8348
  "CSSearchQueryErrorCodeUnknown": -2000,
8227
8349
  "CSSearchQuerySourceOptionAllowMail": 1,
8228
8350
  "CSSearchQuerySourceOptionDefault": 0,
8351
+ "CSSearchableItemUpdateListenerOptionDefault": 0,
8352
+ "CSSearchableItemUpdateListenerOptionPriority": 4,
8353
+ "CSSearchableItemUpdateListenerOptionSummarization": 2,
8229
8354
  "CSSuggestionKindCustom": 1,
8230
8355
  "CSSuggestionKindDefault": 2,
8231
8356
  "CSSuggestionKindNone": 0,
@@ -8244,6 +8369,9 @@
8244
8369
  "CSSearchQuerySourceOptions": {
8245
8370
  "type": "Q"
8246
8371
  },
8372
+ "CSSearchableItemUpdateListenerOptions": {
8373
+ "type": "Q"
8374
+ },
8247
8375
  "CSSuggestionKind": {
8248
8376
  "type": "q"
8249
8377
  },
@@ -8463,6 +8591,55 @@
8463
8591
  },
8464
8592
  "selector": "fileURLForSearchableIndex:itemIdentifier:typeIdentifier:inPlace:error:",
8465
8593
  "visibility": "public"
8594
+ },
8595
+ {
8596
+ "args": [
8597
+ {
8598
+ "typestr": "@",
8599
+ "typestr_special": false
8600
+ },
8601
+ {
8602
+ "callable": {
8603
+ "arguments": {
8604
+ "0": {
8605
+ "type": "^v"
8606
+ },
8607
+ "1": {
8608
+ "type": "@"
8609
+ }
8610
+ },
8611
+ "retval": {
8612
+ "type": "v"
8613
+ }
8614
+ },
8615
+ "typestr": "@?",
8616
+ "typestr_special": false
8617
+ }
8618
+ ],
8619
+ "class_method": false,
8620
+ "required": false,
8621
+ "retval": {
8622
+ "typestr": "v",
8623
+ "typestr_special": false
8624
+ },
8625
+ "selector": "searchableItemsForIdentifiers:searchableItemsHandler:",
8626
+ "visibility": "public"
8627
+ },
8628
+ {
8629
+ "args": [
8630
+ {
8631
+ "typestr": "@",
8632
+ "typestr_special": false
8633
+ }
8634
+ ],
8635
+ "class_method": false,
8636
+ "required": false,
8637
+ "retval": {
8638
+ "typestr": "v",
8639
+ "typestr_special": false
8640
+ },
8641
+ "selector": "searchableItemsDidUpdate:",
8642
+ "visibility": "public"
8466
8643
  }
8467
8644
  ],
8468
8645
  "properties": []
@@ -8477,6 +8654,7 @@
8477
8654
  "CSIndexErrorCode": "enum CSIndexErrorCode",
8478
8655
  "CSSearchQueryErrorCode": "enum CSSearchQueryErrorCode",
8479
8656
  "CSSearchQuerySourceOptions": "enum CSSearchQuerySourceOptions",
8657
+ "CSSearchableItemUpdateListenerOptions": "enum CSSearchableItemUpdateListenerOptions",
8480
8658
  "CSSuggestionKind": "enum CSSuggestionKind",
8481
8659
  "CSUserInteraction": "enum CSUserInteraction"
8482
8660
  }
@@ -8503,5 +8681,5 @@
8503
8681
  "CSUserQuery.h"
8504
8682
  ],
8505
8683
  "release": "10.16",
8506
- "sdk": "/Users/ronald/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.0.sdk"
8684
+ "sdk": "/Users/ronald/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk"
8507
8685
  }
@@ -11,12 +11,11 @@ To change this file:
11
11
 
12
12
  __all__ = ("setup", "Extension", "Command")
13
13
 
14
+ import importlib
14
15
  import os
15
- import pkg_resources
16
16
  import plistlib
17
17
  import re
18
18
  import shlex
19
- import shutil
20
19
  import subprocess
21
20
  import sys
22
21
  import tempfile
@@ -138,10 +137,6 @@ class oc_test(Command):
138
137
  self.verbosity = int(self.verbosity)
139
138
 
140
139
  def cleanup_environment(self):
141
- from pkg_resources import add_activation_listener
142
-
143
- add_activation_listener(lambda dist: dist.activate())
144
-
145
140
  ei_cmd = self.get_finalized_command("egg_info")
146
141
  egg_name = ei_cmd.egg_name.replace("-", "_")
147
142
 
@@ -155,12 +150,9 @@ class oc_test(Command):
155
150
  log.info(f"removing installed {dirname!r} from sys.path before testing")
156
151
  sys.path.remove(dirname)
157
152
 
158
- pkg_resources.working_set.__init__()
153
+ importlib.invalidate_caches()
159
154
 
160
155
  def add_project_to_sys_path(self):
161
- from pkg_resources import normalize_path, add_activation_listener
162
- from pkg_resources import working_set, require
163
-
164
156
  self.reinitialize_command("egg_info")
165
157
  self.run_command("egg_info")
166
158
  self.reinitialize_command("build_ext", inplace=1)
@@ -173,20 +165,16 @@ class oc_test(Command):
173
165
  del sys.modules["PyObjCTools"]
174
166
 
175
167
  ei_cmd = self.get_finalized_command("egg_info")
176
- sys.path.insert(0, normalize_path(ei_cmd.egg_base))
168
+ sys.path.insert(0, os.path.abspath(ei_cmd.egg_base))
177
169
  sys.path.insert(1, os.path.dirname(__file__))
178
170
 
179
- add_activation_listener(lambda dist: dist.activate())
180
- working_set.__init__()
181
- require(f"{ei_cmd.egg_name}=={ei_cmd.egg_version}")
171
+ importlib.invalidate_caches()
182
172
 
183
173
  def remove_from_sys_path(self):
184
- from pkg_resources import working_set
185
-
186
174
  sys.path[:] = self.__old_path
187
175
  sys.modules.clear()
188
176
  sys.modules.update(self.__old_modules)
189
- working_set.__init__()
177
+ importlib.invalidate_caches()
190
178
 
191
179
  def run(self):
192
180
  self.cleanup_environment()
@@ -235,7 +223,6 @@ Development Status :: 5 - Production/Stable
235
223
  Environment :: Console
236
224
  Environment :: MacOS X :: Cocoa
237
225
  Intended Audience :: Developers
238
- License :: OSI Approved :: MIT License
239
226
  Natural Language :: English
240
227
  Operating System :: MacOS :: MacOS X
241
228
  Programming Language :: Python
@@ -450,28 +437,7 @@ class pyobjc_build_ext(build_ext.build_ext):
450
437
  # in 2.3 and later the headers are in the egg,
451
438
  # before that we ship a copy.
452
439
  if os.path.exists("Modules") and not os.path.isfile("Modules/pyobjc-api.h"):
453
- (dist,) = pkg_resources.require("pyobjc-core")
454
-
455
- include_root = os.path.join(self.build_temp, "pyobjc-include")
456
- if os.path.exists(include_root):
457
- shutil.rmtree(include_root)
458
-
459
- os.makedirs(include_root)
460
- if dist.has_metadata("include"):
461
- for fn in dist.metadata_listdir("include"):
462
- data = dist.get_metadata(f"include/{fn}")
463
- fp = open(os.path.join(include_root, fn), "w")
464
- try:
465
- fp.write(data)
466
- finally:
467
- fp.close()
468
-
469
- else:
470
- raise SystemExit("pyobjc-core egg-info does not include header files")
471
-
472
- for e in self.extensions:
473
- if include_root not in e.include_dirs:
474
- e.include_dirs.append(include_root)
440
+ raise DistutilsError("pyobjc-api.h not included")
475
441
 
476
442
  # Run the actual build
477
443
  build_ext.build_ext.run(self)
@@ -708,7 +674,7 @@ def setup(
708
674
  dependency_links=[],
709
675
  package_data={"": ["*.bridgesupport"]},
710
676
  zip_safe=False,
711
- license="MIT License",
677
+ license="MIT",
712
678
  classifiers=CLASSIFIERS,
713
679
  python_requires=">=3.9",
714
680
  keywords=["PyObjC"] + [p for p in k["packages"] if p not in ("PyObjCTools",)],
@@ -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 = "11.0"
18
+ VERSION = "11.1"
19
19
 
20
20
  setup(
21
21
  name="pyobjc-framework-CoreSpotlight",
@@ -1,3 +0,0 @@
1
- macOS 15.3 (24D5040f)
2
- Apple clang version 16.0.0 (clang-1600.0.26.6)
3
- SDK: macOS 15.2
@@ -1,2 +0,0 @@
1
- pyobjc-core>=11.0
2
- pyobjc-framework-Cocoa>=11.0
@@ -1 +0,0 @@
1
- """ test suite """