pyobjc-framework-CalendarStore 10.1__tar.gz → 11.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. {pyobjc-framework-CalendarStore-10.1 → pyobjc_framework_calendarstore-11.0}/Examples/Coding Headstart/CalController.py +1 -0
  2. {pyobjc-framework-CalendarStore-10.1 → pyobjc_framework_calendarstore-11.0}/Examples/Coding Headstart/setup.py +1 -0
  3. {pyobjc-framework-CalendarStore-10.1 → pyobjc_framework_calendarstore-11.0}/LICENSE.txt +1 -1
  4. {pyobjc-framework-CalendarStore-10.1 → pyobjc_framework_calendarstore-11.0}/Lib/CalendarStore/_metadata.py +31 -9
  5. {pyobjc-framework-CalendarStore-10.1 → pyobjc_framework_calendarstore-11.0}/Lib/pyobjc_framework_CalendarStore.egg-info/PKG-INFO +5 -5
  6. {pyobjc-framework-CalendarStore-10.1 → pyobjc_framework_calendarstore-11.0}/Lib/pyobjc_framework_CalendarStore.egg-info/SOURCES.txt +5 -4
  7. pyobjc_framework_calendarstore-11.0/Lib/pyobjc_framework_CalendarStore.egg-info/pyobjc-build-info.txt +3 -0
  8. pyobjc_framework_calendarstore-11.0/Lib/pyobjc_framework_CalendarStore.egg-info/requires.txt +2 -0
  9. {pyobjc-framework-CalendarStore-10.1 → pyobjc_framework_calendarstore-11.0}/PKG-INFO +5 -5
  10. pyobjc-framework-CalendarStore-10.1/metadata/raw/arm64-14.0.fwinfo → pyobjc_framework_calendarstore-11.0/metadata/raw/arm64-14.5.fwinfo +2 -8
  11. pyobjc-framework-CalendarStore-10.1/metadata/raw/arm64-12.0.fwinfo → pyobjc_framework_calendarstore-11.0/metadata/raw/arm64-15.0.fwinfo +29 -8
  12. pyobjc-framework-CalendarStore-10.1/metadata/raw/x86_64-14.0.fwinfo → pyobjc_framework_calendarstore-11.0/metadata/raw/x86_64-14.5.fwinfo +2 -8
  13. pyobjc-framework-CalendarStore-10.1/metadata/raw/x86_64-12.0.fwinfo → pyobjc_framework_calendarstore-11.0/metadata/raw/x86_64-15.0.fwinfo +29 -8
  14. {pyobjc-framework-CalendarStore-10.1 → pyobjc_framework_calendarstore-11.0}/pyobjc_setup.py +121 -27
  15. {pyobjc-framework-CalendarStore-10.1 → pyobjc_framework_calendarstore-11.0}/setup.py +2 -1
  16. pyobjc-framework-CalendarStore-10.1/Lib/pyobjc_framework_CalendarStore.egg-info/requires.txt +0 -2
  17. {pyobjc-framework-CalendarStore-10.1 → pyobjc_framework_calendarstore-11.0}/Examples/Coding Headstart/AppController.py +0 -0
  18. {pyobjc-framework-CalendarStore-10.1 → pyobjc_framework_calendarstore-11.0}/Examples/Coding Headstart/English.lproj/MainMenu.nib/classes.nib +0 -0
  19. {pyobjc-framework-CalendarStore-10.1 → pyobjc_framework_calendarstore-11.0}/Examples/Coding Headstart/English.lproj/MainMenu.nib/info.nib +0 -0
  20. {pyobjc-framework-CalendarStore-10.1 → pyobjc_framework_calendarstore-11.0}/Examples/Coding Headstart/English.lproj/MainMenu.nib/keyedobjects.nib +0 -0
  21. {pyobjc-framework-CalendarStore-10.1 → pyobjc_framework_calendarstore-11.0}/Examples/Coding Headstart/main.py +0 -0
  22. {pyobjc-framework-CalendarStore-10.1 → pyobjc_framework_calendarstore-11.0}/Examples/Coding Headstart/summary.txt +0 -0
  23. {pyobjc-framework-CalendarStore-10.1 → pyobjc_framework_calendarstore-11.0}/Examples/Scripts/add_wwdc_to_calendar.py +0 -0
  24. {pyobjc-framework-CalendarStore-10.1 → pyobjc_framework_calendarstore-11.0}/Examples/Scripts/print_calendars.py +0 -0
  25. {pyobjc-framework-CalendarStore-10.1 → pyobjc_framework_calendarstore-11.0}/Lib/CalendarStore/__init__.py +0 -0
  26. {pyobjc-framework-CalendarStore-10.1 → pyobjc_framework_calendarstore-11.0}/Lib/pyobjc_framework_CalendarStore.egg-info/dependency_links.txt +0 -0
  27. {pyobjc-framework-CalendarStore-10.1 → pyobjc_framework_calendarstore-11.0}/Lib/pyobjc_framework_CalendarStore.egg-info/not-zip-safe +0 -0
  28. {pyobjc-framework-CalendarStore-10.1 → pyobjc_framework_calendarstore-11.0}/Lib/pyobjc_framework_CalendarStore.egg-info/top_level.txt +0 -0
  29. {pyobjc-framework-CalendarStore-10.1 → pyobjc_framework_calendarstore-11.0}/MANIFEST.in +0 -0
  30. {pyobjc-framework-CalendarStore-10.1 → pyobjc_framework_calendarstore-11.0}/PyObjCTest/__init__.py +0 -0
  31. {pyobjc-framework-CalendarStore-10.1 → pyobjc_framework_calendarstore-11.0}/PyObjCTest/test_calalarm.py +0 -0
  32. {pyobjc-framework-CalendarStore-10.1 → pyobjc_framework_calendarstore-11.0}/PyObjCTest/test_calattendee.py +0 -0
  33. {pyobjc-framework-CalendarStore-10.1 → pyobjc_framework_calendarstore-11.0}/PyObjCTest/test_calcalendar.py +0 -0
  34. {pyobjc-framework-CalendarStore-10.1 → pyobjc_framework_calendarstore-11.0}/PyObjCTest/test_calcalendaritem.py +0 -0
  35. {pyobjc-framework-CalendarStore-10.1 → pyobjc_framework_calendarstore-11.0}/PyObjCTest/test_calcalendarstore.py +0 -0
  36. {pyobjc-framework-CalendarStore-10.1 → pyobjc_framework_calendarstore-11.0}/PyObjCTest/test_calendarstore.py +0 -0
  37. {pyobjc-framework-CalendarStore-10.1 → pyobjc_framework_calendarstore-11.0}/PyObjCTest/test_calendarstoreerrors.py +0 -0
  38. {pyobjc-framework-CalendarStore-10.1 → pyobjc_framework_calendarstore-11.0}/PyObjCTest/test_calevent.py +0 -0
  39. {pyobjc-framework-CalendarStore-10.1 → pyobjc_framework_calendarstore-11.0}/PyObjCTest/test_calrecurrencerule.py +0 -0
  40. {pyobjc-framework-CalendarStore-10.1 → pyobjc_framework_calendarstore-11.0}/PyObjCTest/test_caltask.py +0 -0
  41. {pyobjc-framework-CalendarStore-10.1 → pyobjc_framework_calendarstore-11.0}/README.txt +0 -0
  42. {pyobjc-framework-CalendarStore-10.1 → pyobjc_framework_calendarstore-11.0}/metadata/CalendarStore.fwinfo +0 -0
  43. {pyobjc-framework-CalendarStore-10.1 → pyobjc_framework_calendarstore-11.0}/metadata/metadata.ini +0 -0
  44. {pyobjc-framework-CalendarStore-10.1 → pyobjc_framework_calendarstore-11.0}/metadata/raw/arm64-12.3.fwinfo +0 -0
  45. {pyobjc-framework-CalendarStore-10.1 → pyobjc_framework_calendarstore-11.0}/metadata/raw/x86_64-10.10.fwinfo +0 -0
  46. {pyobjc-framework-CalendarStore-10.1 → pyobjc_framework_calendarstore-11.0}/metadata/raw/x86_64-10.16.fwinfo +0 -0
  47. {pyobjc-framework-CalendarStore-10.1 → pyobjc_framework_calendarstore-11.0}/metadata/raw/x86_64-10.6.fwinfo +0 -0
  48. {pyobjc-framework-CalendarStore-10.1 → pyobjc_framework_calendarstore-11.0}/metadata/raw/x86_64-10.7.fwinfo +0 -0
  49. {pyobjc-framework-CalendarStore-10.1 → pyobjc_framework_calendarstore-11.0}/metadata/raw/x86_64-10.8.fwinfo +0 -0
  50. {pyobjc-framework-CalendarStore-10.1 → pyobjc_framework_calendarstore-11.0}/metadata/raw/x86_64-12.3.fwinfo +0 -0
  51. {pyobjc-framework-CalendarStore-10.1 → pyobjc_framework_calendarstore-11.0}/pyproject.toml +0 -0
  52. {pyobjc-framework-CalendarStore-10.1 → pyobjc_framework_calendarstore-11.0}/setup.cfg +0 -0
@@ -3,6 +3,7 @@ Bindings and notification support for Calendar data used
3
3
  by this application. Exposes read-only collections
4
4
  (calendars, events, tasks) as observable entities.
5
5
  """
6
+
6
7
  from CalendarStore import (
7
8
  CalCalendarsChangedExternallyNotification,
8
9
  CalCalendarsChangedNotification,
@@ -4,6 +4,7 @@ Script for building the example.
4
4
  Usage:
5
5
  python3 setup.py py2app
6
6
  """
7
+
7
8
  from setuptools import setup
8
9
 
9
10
  setup(
@@ -1,7 +1,7 @@
1
1
  (This is the MIT license, note that libffi-src is a separate product with its own license)
2
2
 
3
3
  Copyright 2002, 2003 - Bill Bumgarner, Ronald Oussoren, Steve Majewski, Lele Gaifax, et.al.
4
- Copyright 2003-2022 - Ronald Oussoren
4
+ Copyright 2003-2024 - Ronald Oussoren
5
5
 
6
6
  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
7
7
 
@@ -1,6 +1,6 @@
1
1
  # This file is generated by objective.metadata
2
2
  #
3
- # Last update: Sat Jul 1 14:07:57 2023
3
+ # Last update: Tue Jun 11 10:06:11 2024
4
4
  #
5
5
  # flake8: noqa
6
6
 
@@ -34,15 +34,7 @@ constants = """$CalAlarmActionDisplay$CalAlarmActionEmail$CalAlarmActionProcedur
34
34
  enums = """$CalCalendarNotEditableError@1025$CalCalendarNotInRepository@1027$CalCalendarTitleNotUniqueError@1028$CalDateInvalidError@1026$CalPriorityHigh@1$CalPriorityLow@9$CalPriorityMedium@5$CalPriorityNone@0$CalRecurrenceDaily@0$CalRecurrenceMonthly@2$CalRecurrenceWeekly@1$CalRecurrenceYearly@3$CalSpanAllEvents@2$CalSpanFutureEvents@1$CalSpanThisEvent@0$"""
35
35
  misc.update(
36
36
  {
37
- "enum (unnamed at /Users/ronald/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.0.sdk/System/Library/Frameworks/CalendarStore.framework/Headers/CalendarStoreErrors.h:13:1)": NewType(
38
- "enum (unnamed at /Users/ronald/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.0.sdk/System/Library/Frameworks/CalendarStore.framework/Headers/CalendarStoreErrors.h:13:1)",
39
- int,
40
- ),
41
37
  "CalSpan": NewType("CalSpan", int),
42
- "enum (unnamed at /Users/ronald/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.0.sdk/System/Library/Frameworks/CalendarStore.framework/Headers/CalTask.h:21:1)": NewType(
43
- "enum (unnamed at /Users/ronald/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.0.sdk/System/Library/Frameworks/CalendarStore.framework/Headers/CalTask.h:21:1)",
44
- int,
45
- ),
46
38
  "CalRecurrenceType": NewType("CalRecurrenceType", int),
47
39
  }
48
40
  )
@@ -91,6 +83,36 @@ try:
91
83
  r(b"CalTask", b"setIsCompleted:", {"arguments": {2: {"type": "Z"}}})
92
84
  finally:
93
85
  objc._updatingMetadata(False)
86
+
87
+ objc.registerNewKeywordsFromSelector(
88
+ "CalRecurrenceRule", b"initDailyRecurrenceWithInterval:end:"
89
+ )
90
+ objc.registerNewKeywordsFromSelector(
91
+ "CalRecurrenceRule", b"initMonthlyRecurrenceWithInterval:end:"
92
+ )
93
+ objc.registerNewKeywordsFromSelector(
94
+ "CalRecurrenceRule",
95
+ b"initMonthlyRecurrenceWithInterval:forDayOfTheWeek:forWeekOfTheMonth:end:",
96
+ )
97
+ objc.registerNewKeywordsFromSelector(
98
+ "CalRecurrenceRule", b"initMonthlyRecurrenceWithInterval:forDaysOfTheMonth:end:"
99
+ )
100
+ objc.registerNewKeywordsFromSelector(
101
+ "CalRecurrenceRule", b"initWeeklyRecurrenceWithInterval:end:"
102
+ )
103
+ objc.registerNewKeywordsFromSelector(
104
+ "CalRecurrenceRule", b"initWeeklyRecurrenceWithInterval:forDaysOfTheWeek:end:"
105
+ )
106
+ objc.registerNewKeywordsFromSelector(
107
+ "CalRecurrenceRule", b"initYearlyRecurrenceWithInterval:end:"
108
+ )
109
+ objc.registerNewKeywordsFromSelector(
110
+ "CalRecurrenceRule",
111
+ b"initYearlyRecurrenceWithInterval:forDayOfTheWeek:forWeekOfTheMonth:forMonthsOfTheYear:end:",
112
+ )
113
+ objc.registerNewKeywordsFromSelector(
114
+ "CalRecurrenceRule", b"initYearlyRecurrenceWithInterval:forMonthsOfTheYear:end:"
115
+ )
94
116
  expressions = {}
95
117
 
96
118
  # END OF FILE
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyobjc-framework-CalendarStore
3
- Version: 10.1
3
+ Version: 11.0
4
4
  Summary: Wrappers for the framework CalendarStore on macOS
5
5
  Home-page: https://github.com/ronaldoussoren/pyobjc
6
6
  Author: Ronald Oussoren
@@ -18,21 +18,21 @@ Classifier: Operating System :: MacOS :: MacOS X
18
18
  Classifier: Programming Language :: Python
19
19
  Classifier: Programming Language :: Python :: 3
20
20
  Classifier: Programming Language :: Python :: 3 :: Only
21
- Classifier: Programming Language :: Python :: 3.8
22
21
  Classifier: Programming Language :: Python :: 3.9
23
22
  Classifier: Programming Language :: Python :: 3.10
24
23
  Classifier: Programming Language :: Python :: 3.11
25
24
  Classifier: Programming Language :: Python :: 3.12
26
25
  Classifier: Programming Language :: Python :: 3.13
26
+ Classifier: Programming Language :: Python :: 3.14
27
27
  Classifier: Programming Language :: Python :: Implementation :: CPython
28
28
  Classifier: Programming Language :: Objective C
29
29
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
30
30
  Classifier: Topic :: Software Development :: User Interfaces
31
- Requires-Python: >=3.8
31
+ Requires-Python: >=3.9
32
32
  Description-Content-Type: text/x-rst; charset=UTF-8
33
33
  License-File: LICENSE.txt
34
- Requires-Dist: pyobjc-core>=10.1
35
- Requires-Dist: pyobjc-framework-Cocoa>=10.1
34
+ Requires-Dist: pyobjc-core>=11.0
35
+ Requires-Dist: pyobjc-framework-Cocoa>=11.0
36
36
  Project-URL: Documentation, https://pyobjc.readthedocs.io/en/latest/
37
37
  Project-URL: Issue tracker, https://github.com/ronaldoussoren/pyobjc/issues
38
38
  Project-URL: Repository, https://github.com/ronaldoussoren/pyobjc
@@ -20,6 +20,7 @@ Lib/pyobjc_framework_CalendarStore.egg-info/PKG-INFO
20
20
  Lib/pyobjc_framework_CalendarStore.egg-info/SOURCES.txt
21
21
  Lib/pyobjc_framework_CalendarStore.egg-info/dependency_links.txt
22
22
  Lib/pyobjc_framework_CalendarStore.egg-info/not-zip-safe
23
+ Lib/pyobjc_framework_CalendarStore.egg-info/pyobjc-build-info.txt
23
24
  Lib/pyobjc_framework_CalendarStore.egg-info/requires.txt
24
25
  Lib/pyobjc_framework_CalendarStore.egg-info/top_level.txt
25
26
  PyObjCTest/__init__.py
@@ -35,14 +36,14 @@ PyObjCTest/test_calrecurrencerule.py
35
36
  PyObjCTest/test_caltask.py
36
37
  metadata/CalendarStore.fwinfo
37
38
  metadata/metadata.ini
38
- metadata/raw/arm64-12.0.fwinfo
39
39
  metadata/raw/arm64-12.3.fwinfo
40
- metadata/raw/arm64-14.0.fwinfo
40
+ metadata/raw/arm64-14.5.fwinfo
41
+ metadata/raw/arm64-15.0.fwinfo
41
42
  metadata/raw/x86_64-10.10.fwinfo
42
43
  metadata/raw/x86_64-10.16.fwinfo
43
44
  metadata/raw/x86_64-10.6.fwinfo
44
45
  metadata/raw/x86_64-10.7.fwinfo
45
46
  metadata/raw/x86_64-10.8.fwinfo
46
- metadata/raw/x86_64-12.0.fwinfo
47
47
  metadata/raw/x86_64-12.3.fwinfo
48
- metadata/raw/x86_64-14.0.fwinfo
48
+ metadata/raw/x86_64-14.5.fwinfo
49
+ metadata/raw/x86_64-15.0.fwinfo
@@ -0,0 +1,3 @@
1
+ macOS 15.3 (24D5040f)
2
+ Apple clang version 16.0.0 (clang-1600.0.26.6)
3
+ SDK: macOS 15.2
@@ -0,0 +1,2 @@
1
+ pyobjc-core>=11.0
2
+ pyobjc-framework-Cocoa>=11.0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyobjc-framework-CalendarStore
3
- Version: 10.1
3
+ Version: 11.0
4
4
  Summary: Wrappers for the framework CalendarStore on macOS
5
5
  Home-page: https://github.com/ronaldoussoren/pyobjc
6
6
  Author: Ronald Oussoren
@@ -18,21 +18,21 @@ Classifier: Operating System :: MacOS :: MacOS X
18
18
  Classifier: Programming Language :: Python
19
19
  Classifier: Programming Language :: Python :: 3
20
20
  Classifier: Programming Language :: Python :: 3 :: Only
21
- Classifier: Programming Language :: Python :: 3.8
22
21
  Classifier: Programming Language :: Python :: 3.9
23
22
  Classifier: Programming Language :: Python :: 3.10
24
23
  Classifier: Programming Language :: Python :: 3.11
25
24
  Classifier: Programming Language :: Python :: 3.12
26
25
  Classifier: Programming Language :: Python :: 3.13
26
+ Classifier: Programming Language :: Python :: 3.14
27
27
  Classifier: Programming Language :: Python :: Implementation :: CPython
28
28
  Classifier: Programming Language :: Objective C
29
29
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
30
30
  Classifier: Topic :: Software Development :: User Interfaces
31
- Requires-Python: >=3.8
31
+ Requires-Python: >=3.9
32
32
  Description-Content-Type: text/x-rst; charset=UTF-8
33
33
  License-File: LICENSE.txt
34
- Requires-Dist: pyobjc-core>=10.1
35
- Requires-Dist: pyobjc-framework-Cocoa>=10.1
34
+ Requires-Dist: pyobjc-core>=11.0
35
+ Requires-Dist: pyobjc-framework-Cocoa>=11.0
36
36
 
37
37
 
38
38
  Wrappers for the "CalendarStore" on macOS 10.5 and later. The CalendarStore
@@ -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: Sat Jul 1 14:07:57 2023
4
+ // Last update: Sat May 18 09:18:10 2024
5
5
  {
6
6
  "arch": "arm64",
7
7
  "definitions": {
@@ -2112,12 +2112,6 @@
2112
2112
  },
2113
2113
  "CalSpan": {
2114
2114
  "type": "I"
2115
- },
2116
- "enum (unnamed at /Users/ronald/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.0.sdk/System/Library/Frameworks/CalendarStore.framework/Headers/CalTask.h:21:1)": {
2117
- "type": "I"
2118
- },
2119
- "enum (unnamed at /Users/ronald/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.0.sdk/System/Library/Frameworks/CalendarStore.framework/Headers/CalendarStoreErrors.h:13:1)": {
2120
- "type": "I"
2121
2115
  }
2122
2116
  },
2123
2117
  "expressions": {},
@@ -2229,5 +2223,5 @@
2229
2223
  "CalendarStoreErrors.h"
2230
2224
  ],
2231
2225
  "release": "10.16",
2232
- "sdk": "/Users/ronald/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.0.sdk"
2226
+ "sdk": "/Users/ronald/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.5.sdk"
2233
2227
  }
@@ -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: Sun Jul 11 21:24:09 2021
4
+ // Last update: Tue Jun 11 10:06:11 2024
5
5
  {
6
6
  "arch": "arm64",
7
7
  "definitions": {
@@ -1361,14 +1361,17 @@
1361
1361
  "name": "CalEvent",
1362
1362
  "properties": [
1363
1363
  {
1364
- "attributes": [],
1364
+ "attributes": [
1365
+ "nonatomic"
1366
+ ],
1365
1367
  "name": "isAllDay",
1366
1368
  "typestr": "Z",
1367
1369
  "typestr_special": true
1368
1370
  },
1369
1371
  {
1370
1372
  "attributes": [
1371
- "copy"
1373
+ "copy",
1374
+ "nonatomic"
1372
1375
  ],
1373
1376
  "name": "location",
1374
1377
  "typestr": "@",
@@ -1376,7 +1379,8 @@
1376
1379
  },
1377
1380
  {
1378
1381
  "attributes": [
1379
- "copy"
1382
+ "copy",
1383
+ "nonatomic"
1380
1384
  ],
1381
1385
  "name": "recurrenceRule",
1382
1386
  "typestr": "@",
@@ -1384,7 +1388,8 @@
1384
1388
  },
1385
1389
  {
1386
1390
  "attributes": [
1387
- "copy"
1391
+ "copy",
1392
+ "nonatomic"
1388
1393
  ],
1389
1394
  "name": "startDate",
1390
1395
  "typestr": "@",
@@ -1392,7 +1397,8 @@
1392
1397
  },
1393
1398
  {
1394
1399
  "attributes": [
1395
- "copy"
1400
+ "copy",
1401
+ "nonatomic"
1396
1402
  ],
1397
1403
  "name": "endDate",
1398
1404
  "typestr": "@",
@@ -1401,6 +1407,7 @@
1401
1407
  {
1402
1408
  "attributes": [
1403
1409
  "copy",
1410
+ "nonatomic",
1404
1411
  "readonly"
1405
1412
  ],
1406
1413
  "name": "attendees",
@@ -1409,6 +1416,7 @@
1409
1416
  },
1410
1417
  {
1411
1418
  "attributes": [
1419
+ "nonatomic",
1412
1420
  "readonly"
1413
1421
  ],
1414
1422
  "name": "isDetached",
@@ -2098,6 +2106,14 @@
2098
2106
  "CalSpanFutureEvents": 1,
2099
2107
  "CalSpanThisEvent": 0
2100
2108
  },
2109
+ "enum_type": {
2110
+ "CalRecurrenceType": {
2111
+ "type": "I"
2112
+ },
2113
+ "CalSpan": {
2114
+ "type": "I"
2115
+ }
2116
+ },
2101
2117
  "expressions": {},
2102
2118
  "externs": {
2103
2119
  "CalAlarmActionDisplay": {
@@ -2187,7 +2203,12 @@
2187
2203
  "functions": {},
2188
2204
  "informal_protocols": {},
2189
2205
  "literals": {},
2190
- "structs": {}
2206
+ "structs": {},
2207
+ "typedefs": {
2208
+ "CalPriority": "NSUInteger",
2209
+ "CalRecurrenceType": "enum CalRecurrenceType",
2210
+ "CalSpan": "enum CalSpan"
2211
+ }
2191
2212
  },
2192
2213
  "framework": "CalendarStore",
2193
2214
  "headers": [
@@ -2202,5 +2223,5 @@
2202
2223
  "CalendarStoreErrors.h"
2203
2224
  ],
2204
2225
  "release": "10.16",
2205
- "sdk": "/Users/ronald/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.0.sdk"
2226
+ "sdk": "/Users/ronald/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.0.sdk"
2206
2227
  }
@@ -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: Sat Jul 1 14:07:54 2023
4
+ // Last update: Sat May 18 09:18:07 2024
5
5
  {
6
6
  "arch": "x86_64",
7
7
  "definitions": {
@@ -2112,12 +2112,6 @@
2112
2112
  },
2113
2113
  "CalSpan": {
2114
2114
  "type": "I"
2115
- },
2116
- "enum (unnamed at /Users/ronald/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.0.sdk/System/Library/Frameworks/CalendarStore.framework/Headers/CalTask.h:21:1)": {
2117
- "type": "I"
2118
- },
2119
- "enum (unnamed at /Users/ronald/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.0.sdk/System/Library/Frameworks/CalendarStore.framework/Headers/CalendarStoreErrors.h:13:1)": {
2120
- "type": "I"
2121
2115
  }
2122
2116
  },
2123
2117
  "expressions": {},
@@ -2229,5 +2223,5 @@
2229
2223
  "CalendarStoreErrors.h"
2230
2224
  ],
2231
2225
  "release": "10.16",
2232
- "sdk": "/Users/ronald/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.0.sdk"
2226
+ "sdk": "/Users/ronald/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.5.sdk"
2233
2227
  }
@@ -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: Sun Jul 11 21:24:08 2021
4
+ // Last update: Tue Jun 11 10:06:08 2024
5
5
  {
6
6
  "arch": "x86_64",
7
7
  "definitions": {
@@ -1361,14 +1361,17 @@
1361
1361
  "name": "CalEvent",
1362
1362
  "properties": [
1363
1363
  {
1364
- "attributes": [],
1364
+ "attributes": [
1365
+ "nonatomic"
1366
+ ],
1365
1367
  "name": "isAllDay",
1366
1368
  "typestr": "Z",
1367
1369
  "typestr_special": true
1368
1370
  },
1369
1371
  {
1370
1372
  "attributes": [
1371
- "copy"
1373
+ "copy",
1374
+ "nonatomic"
1372
1375
  ],
1373
1376
  "name": "location",
1374
1377
  "typestr": "@",
@@ -1376,7 +1379,8 @@
1376
1379
  },
1377
1380
  {
1378
1381
  "attributes": [
1379
- "copy"
1382
+ "copy",
1383
+ "nonatomic"
1380
1384
  ],
1381
1385
  "name": "recurrenceRule",
1382
1386
  "typestr": "@",
@@ -1384,7 +1388,8 @@
1384
1388
  },
1385
1389
  {
1386
1390
  "attributes": [
1387
- "copy"
1391
+ "copy",
1392
+ "nonatomic"
1388
1393
  ],
1389
1394
  "name": "startDate",
1390
1395
  "typestr": "@",
@@ -1392,7 +1397,8 @@
1392
1397
  },
1393
1398
  {
1394
1399
  "attributes": [
1395
- "copy"
1400
+ "copy",
1401
+ "nonatomic"
1396
1402
  ],
1397
1403
  "name": "endDate",
1398
1404
  "typestr": "@",
@@ -1401,6 +1407,7 @@
1401
1407
  {
1402
1408
  "attributes": [
1403
1409
  "copy",
1410
+ "nonatomic",
1404
1411
  "readonly"
1405
1412
  ],
1406
1413
  "name": "attendees",
@@ -1409,6 +1416,7 @@
1409
1416
  },
1410
1417
  {
1411
1418
  "attributes": [
1419
+ "nonatomic",
1412
1420
  "readonly"
1413
1421
  ],
1414
1422
  "name": "isDetached",
@@ -2098,6 +2106,14 @@
2098
2106
  "CalSpanFutureEvents": 1,
2099
2107
  "CalSpanThisEvent": 0
2100
2108
  },
2109
+ "enum_type": {
2110
+ "CalRecurrenceType": {
2111
+ "type": "I"
2112
+ },
2113
+ "CalSpan": {
2114
+ "type": "I"
2115
+ }
2116
+ },
2101
2117
  "expressions": {},
2102
2118
  "externs": {
2103
2119
  "CalAlarmActionDisplay": {
@@ -2187,7 +2203,12 @@
2187
2203
  "functions": {},
2188
2204
  "informal_protocols": {},
2189
2205
  "literals": {},
2190
- "structs": {}
2206
+ "structs": {},
2207
+ "typedefs": {
2208
+ "CalPriority": "NSUInteger",
2209
+ "CalRecurrenceType": "enum CalRecurrenceType",
2210
+ "CalSpan": "enum CalSpan"
2211
+ }
2191
2212
  },
2192
2213
  "framework": "CalendarStore",
2193
2214
  "headers": [
@@ -2202,5 +2223,5 @@
2202
2223
  "CalendarStoreErrors.h"
2203
2224
  ],
2204
2225
  "release": "10.16",
2205
- "sdk": "/Users/ronald/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.0.sdk"
2226
+ "sdk": "/Users/ronald/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.0.sdk"
2206
2227
  }
@@ -20,13 +20,15 @@ import shutil
20
20
  import subprocess
21
21
  import sys
22
22
  import tempfile
23
+ import textwrap
23
24
  import time
24
25
  import unittest
26
+ from fnmatch import fnmatch
25
27
  from sysconfig import get_config_var, get_config_vars
26
28
  from setuptools import Command
27
29
  from setuptools import Extension as _Extension
28
30
  from setuptools import setup as _setup
29
- from setuptools.command import build_ext, build_py, develop, egg_info, install_lib, test
31
+ from setuptools.command import build_ext, build_py, develop, egg_info, install_lib
30
32
 
31
33
  from distutils import log
32
34
  from distutils.errors import DistutilsError, DistutilsPlatformError
@@ -59,6 +61,7 @@ REPO_NAME = "pyobjc"
59
61
  class oc_egg_info(egg_info.egg_info):
60
62
  def run(self):
61
63
  egg_info.egg_info.run(self)
64
+ self.write_build_info()
62
65
 
63
66
  path = os.path.join(self.egg_info, "PKG-INFO")
64
67
  with open(path) as fp:
@@ -83,19 +86,54 @@ class oc_egg_info(egg_info.egg_info):
83
86
  fp.write(middle)
84
87
  fp.write(last)
85
88
 
89
+ def write_build_info(self):
90
+ macos_version = subprocess.check_output(
91
+ ["sw_vers", "-productversion"], text=True
92
+ ).strip()
93
+ macos_build = subprocess.check_output(
94
+ ["sw_vers", "-buildversion"], text=True
95
+ ).strip()
96
+ clang_version = (
97
+ subprocess.check_output(["clang", "--version"], text=True)
98
+ .splitlines()[0]
99
+ .strip()
100
+ )
101
+
102
+ sdk_root = get_sdk()
103
+ if sdk_root is None:
104
+ sdk_root = subprocess.check_output(
105
+ ["xcrun", "-sdk", "macosx", "--show-sdk-path"], text=True
106
+ ).strip()
107
+ sdk_info = os.path.join(sdk_root, "SDKSettings.plist")
108
+ if os.path.exists(sdk_info):
109
+ pl = plistlib.load(open(sdk_info, "rb"))
110
+ sdk_version = pl["DisplayName"]
111
+ else:
112
+ sdk_version = os.path.basename(sdk_root)
113
+
114
+ build_info = textwrap.dedent(
115
+ f"""\
116
+ macOS {macos_version} ({macos_build})
117
+ {clang_version}
118
+ SDK: {sdk_version}
119
+ """
120
+ )
121
+
122
+ self.write_file(
123
+ "pyobjc-build-info.txt",
124
+ os.path.join(self.egg_info, "pyobjc-build-info.txt"),
125
+ build_info,
126
+ )
127
+
86
128
 
87
- class oc_test(test.test):
129
+ class oc_test(Command):
88
130
  description = "run test suite"
89
- user_options = test.test.user_options + [
90
- ("verbosity=", None, "print what tests are run")
91
- ]
131
+ user_options = [("verbosity=", None, "print what tests are run")]
92
132
 
93
133
  def initialize_options(self):
94
- test.test.initialize_options(self)
95
134
  self.verbosity = "1"
96
135
 
97
136
  def finalize_options(self):
98
- test.test.finalize_options(self)
99
137
  if isinstance(self.verbosity, str):
100
138
  self.verbosity = int(self.verbosity)
101
139
 
@@ -154,18 +192,13 @@ class oc_test(test.test):
154
192
  self.cleanup_environment()
155
193
  self.add_project_to_sys_path()
156
194
 
157
- from pkg_resources import EntryPoint
158
-
159
- loader_ep = EntryPoint.parse("x=" + self.test_loader)
160
- loader_class = loader_ep.resolve()
161
-
162
195
  import warnings
163
196
 
164
197
  warnings.simplefilter("error")
165
198
 
166
199
  try:
167
200
  time_before = time.time()
168
- suite = loader_class().loadTestsFromName(self.distribution.test_suite)
201
+ suite = makeTestSuite()
169
202
 
170
203
  if self.verbose and self.verbosity < 3:
171
204
  runner = unittest.TextTestRunner(verbosity=3)
@@ -208,12 +241,12 @@ Operating System :: MacOS :: MacOS X
208
241
  Programming Language :: Python
209
242
  Programming Language :: Python :: 3
210
243
  Programming Language :: Python :: 3 :: Only
211
- Programming Language :: Python :: 3.8
212
244
  Programming Language :: Python :: 3.9
213
245
  Programming Language :: Python :: 3.10
214
246
  Programming Language :: Python :: 3.11
215
247
  Programming Language :: Python :: 3.12
216
248
  Programming Language :: Python :: 3.13
249
+ Programming Language :: Python :: 3.14
217
250
  Programming Language :: Python :: Implementation :: CPython
218
251
  Programming Language :: Objective C
219
252
  Topic :: Software Development :: Libraries :: Python Modules
@@ -511,21 +544,15 @@ def Extension(*args, **kwds):
511
544
  % (tuple(map(int, os_level.split(".")[:2])))
512
545
  )
513
546
 
514
- # XCode 15 has a bug w.r.t. weak linking for older macOS versions,
515
- # fall back to older linker when using that compiler.
516
- # XXX: This should be in _fixup_compiler but doesn't work there...
517
- lines = subprocess.check_output(["xcodebuild", "-version"], text=True).splitlines()
518
- if lines[0].startswith("Xcode"):
519
- xcode_vers = int(lines[0].split()[-1].split(".")[0])
520
- if xcode_vers >= 15:
521
- ldflags.append("-Wl,-ld_classic")
522
-
523
547
  if os_level == "10.4":
524
548
  cflags.append("-DNO_OBJC2_RUNTIME")
525
549
 
526
550
  if "-Werror" not in cflags:
527
551
  cflags.append("-Werror")
528
552
 
553
+ if get_config_var("Py_GIL_DISABLED"):
554
+ cflags.append("-DPyObjC_GIL_DISABLED")
555
+
529
556
  if "extra_compile_args" in kwds:
530
557
  kwds["extra_compile_args"] = kwds["extra_compile_args"] + cflags
531
558
  else:
@@ -543,8 +570,15 @@ def _sort_key(version):
543
570
  return tuple(int(x) for x in version.split("."))
544
571
 
545
572
 
546
- def setup(min_os_level=None, max_os_level=None, cmdclass=None, **kwds):
573
+ def setup(
574
+ min_os_level=None,
575
+ max_os_level=None,
576
+ cmdclass=None,
577
+ options={}, # noqa: M511, B006
578
+ **kwds,
579
+ ):
547
580
  k = kwds.copy()
581
+ options = options.copy()
548
582
 
549
583
  os_level = get_sdk_level()
550
584
  if os_level is None:
@@ -616,7 +650,7 @@ def setup(min_os_level=None, max_os_level=None, cmdclass=None, **kwds):
616
650
 
617
651
  if "ext_modules" not in k:
618
652
  # No extension modules, can build universal wheel
619
- k["options"] = {"bdist_wheel": {"universal": 1}}
653
+ options.update({"bdist_wheel": {"universal": 1}})
620
654
 
621
655
  plat_name = "MacOS X"
622
656
  plat_versions = []
@@ -658,6 +692,12 @@ def setup(min_os_level=None, max_os_level=None, cmdclass=None, **kwds):
658
692
  )
659
693
  k["long_description_content_type"] = "text/x-rst; charset=UTF-8"
660
694
 
695
+ if "bdist_wheel" in options:
696
+ # Python 3.13 does not support the limited ABI for C extensions
697
+ # when using a free threaded build.
698
+ if get_config_var("Py_GIL_DISABLED"):
699
+ del options["bdist_wheel"]
700
+
661
701
  _setup(
662
702
  cmdclass=cmdclass,
663
703
  author="Ronald Oussoren",
@@ -667,11 +707,65 @@ def setup(min_os_level=None, max_os_level=None, cmdclass=None, **kwds):
667
707
  package_dir={"": "Lib", "PyObjCTest": "PyObjCTest"},
668
708
  dependency_links=[],
669
709
  package_data={"": ["*.bridgesupport"]},
670
- test_suite="PyObjCTest",
671
710
  zip_safe=False,
672
711
  license="MIT License",
673
712
  classifiers=CLASSIFIERS,
674
- python_requires=">=3.8",
713
+ python_requires=">=3.9",
675
714
  keywords=["PyObjC"] + [p for p in k["packages"] if p not in ("PyObjCTools",)],
715
+ options=options,
676
716
  **k,
677
717
  )
718
+
719
+
720
+ def recursiveGlob(root, pathPattern):
721
+ """
722
+ Recursively look for files matching 'pathPattern'. Return a list
723
+ of matching files/directories.
724
+ """
725
+ result = []
726
+
727
+ for rootpath, _dirnames, filenames in os.walk(root):
728
+ for fn in filenames:
729
+ if fnmatch(fn, pathPattern):
730
+ result.append(os.path.join(rootpath, fn))
731
+ return result
732
+
733
+
734
+ def importExternalTestCases(pathPattern="test_*.py", root=".", package=None):
735
+ """
736
+ Import all unittests in the PyObjC tree starting at 'root'
737
+ """
738
+
739
+ testFiles = recursiveGlob(root, pathPattern)
740
+ testModules = [x[len(root) + 1 : -3].replace("/", ".") for x in testFiles]
741
+ if package is not None:
742
+ testModules = [(package + "." + m) for m in testModules]
743
+
744
+ suites = []
745
+
746
+ for modName in testModules:
747
+ try:
748
+ module = __import__(modName)
749
+ except ImportError as msg:
750
+ print(f"SKIP {modName}: {msg}")
751
+ continue
752
+
753
+ if "." in modName:
754
+ for elem in modName.split(".")[1:]:
755
+ module = getattr(module, elem)
756
+
757
+ s = unittest.defaultTestLoader.loadTestsFromModule(module)
758
+ suites.append(s)
759
+
760
+ return unittest.TestSuite(suites)
761
+
762
+
763
+ gTopdir = os.path.dirname(__file__)
764
+
765
+
766
+ def makeTestSuite():
767
+ plain_suite = importExternalTestCases(
768
+ "test_*.py", os.path.join(gTopdir, "PyObjCTest"), package="PyObjCTest"
769
+ )
770
+
771
+ return plain_suite
@@ -9,6 +9,7 @@ for information on how to use this framework and PyObjC's documentation
9
9
  for general tips and tricks regarding the translation between Python
10
10
  and (Objective-)C frameworks
11
11
  """
12
+
12
13
  import os
13
14
  import sys
14
15
 
@@ -17,7 +18,7 @@ sys.path.insert(0, os.path.dirname(__file__))
17
18
 
18
19
  from pyobjc_setup import setup # noqa: E402
19
20
 
20
- VERSION = "10.1"
21
+ VERSION = "11.0"
21
22
 
22
23
  setup(
23
24
  name="pyobjc-framework-CalendarStore",
@@ -1,2 +0,0 @@
1
- pyobjc-core>=10.1
2
- pyobjc-framework-Cocoa>=10.1