Up to [cvs.NetBSD.org] / pkgsrc / devel / py-pyobjc-framework-SystemConfiguration
Request diff between arbitrary revisions
Keyword substitution: kv
Default branch: MAIN
py-pyobjc*: updated to 10.0 Version 10.0 Update bindings for macOS 14 Symbols newly introduced in macOS 14 were added to the existing bindings, and the following new bindings were introduced: Cinematic MediaExtension SensitiveContentAnalysis Symbols The “IMServicePlugIn” bindings are no longer available The entire framework was deprecated in macOS 10.13 and removed in macOS 14. The bindings can not be build using the latest SDK, and had (at best) limited use. PyObjC 10 requires Python 3.8 and no longer supports Python 3.7 Removed all MAC_OS_X_VERSION* constants from objc. These constants are needed in practice (switch to objc.available() to check for platform availability), and caused unnecessary code churn. The value for objc.options.deprecation_warnings is now a string instead of an integer. Fix unintended incompatibility with pytest in PyObjCTools.TestSupport The lazy loading machinery by default no longer uses objc.ObjCLazyModule, but uses module level __dir__ and __getattr__ instead. The class objc.ObjCLazyModule is still available, but is deprecated As a side effect of this objc is no longer an attribute of framework binding packages (e.g Foundation.objc is no longer a valid attribute). Another side effect of this is that all attributes added by the import system are now correctly present in the packages for framework bindings. And a final side effect is that private symbols (prefixed with underscore) are no longer imported from dependencies of framework bindings (more closely matching the from dependency import * behaviour that the lazy importer emulates. Add attribute __framework_identifier__ to all framework bindings with the identifier of the corresponding system framework. Introduce objc.createFrameworkDirAndGetattr() to create module level __dir__ and __getattr__ for use by framework bindings. Tests now validate the bundle identifier value used in framework bindings. This resulted in a number of changes to framework bindings with incorrect bundle identifier values. This shouldn’t affect user code because the bundle loader falls back on the framework path when the identifier cannot be found. Avoid test failures in pyobjc-core when pyobjc-framework-Quartz is not installed. A number of classes can no longer be subclasses in Python because they are marked as non-subclassable in the macOS 14 SDK (either directly or as “subclassing is deprecated”: CKAllowedSharingOptions, CKAsset, CKContainer, CKDatabase, CKDatabaseNotification, CKDatabaseSubscription, CKFetchRecordZoneChangesConfiguration, CKNotification, CKNotificationID, CKNotificationInfo, CKOperationConfiguration, CKOperationGroup, CKQuery, CKQueryCursor, CKQueryNotification, CKQuerySubscription, CKRecord, CKRecordID, CKRecordZone, CKRecordZoneID, CKRecordZoneNotification, CKRecordZoneSubscription, CKReference, CKServerChangeToken, CKShare, CKShareMetadata, CKShareParticipant, CKSubscription, CKSyncEngine, CKSyncEngineAccountChangeEvent, CKSyncEngineConfiguration, CKSyncEngineDidFetchChangesEvent, CKSyncEngineDidFetchRecordZoneChangesEvent, CKSyncEngineDidSendChangesEvent, CKSyncEngineEvent, CKSyncEngineFailedRecordSave, CKSyncEngineFailedZoneSave, CKSyncEngineFetchChangesOptions, CKSyncEngineFetchedDatabaseChangesEvent, CKSyncEngineFetchedRecordDeletion, CKSyncEngineFetchedRecordZoneChangesEvent, CKSyncEngineFetchedZoneDeletion, CKSyncEnginePendingDatabaseChange, CKSyncEnginePendingRecordZoneChange, CKSyncEnginePendingZoneDelete, CKSyncEnginePendingZoneSave, CKSyncEngineRecordZoneChangeBatch, CKSyncEngineSendChangesContext, CKSyncEngineSendChangesOptions, CKSyncEngineSentDatabaseChangesEvent, CKSyncEngineSentRecordZoneChangesEvent, CKSyncEngineState, CKSyncEngineStateSerialization, CKSyncEngineStateUpdateEvent, CKSyncEngineWillFetchChangesEvent, CKSyncEngineWillFetchRecordZoneChangesEvent, CKSyncEngineWillSendChangesEvent, CKSystemSharingUIObserver, CKUserIdentity, CKUserIdentityLookupInfo. The encoding of a number of basic types changes, in particular those of CoreFoundation struct types and SIMD struct types. None of this should affect user code. objc.getClassList now has an optional positional argument to ignore classes with a name that aren’t identifiers. Some of the functionality in CoreFoundation was rewritten in Swift in macOS 14, with Swift subclasses of NSArray and NSDictionary. Those classes break an invariant of PyObjC: the superclass of the root of the Swift class hierarchy changes when the class is instantiated for the first time (from NSObject to the correct superclass). PyObjC 10 contains a workaround for this by ignoring these classes unless they are needed to create a proxy for an instance (FB12286520). Fix crash when the method signature retrieved from the Objective-C runtime contains the class name for a method returning id. Remove old 32-bit support in metadata override files. Restructure objc.simd: The matrix types are now named simd_float3x3 instead of matrix_float3x3, with the older name as an alias (to match older system headers). Fix crash when loading the libdispatch bindings on recent macOS versions (at least macOS 13, possibly earlier) dispatch.dispatch_source_t is renamed to dispatch.dispatch_source_type_t to match the type name in C code. Xcode 15 has a bug when using weak symbols and targeting older macOS versions. Switch to the old linker when detecting Xcode 15.
py-pyobjc: updated to 6.2 Version 6.2 The project has moved from Bitbucket to Github Remove most remnants of Python 2 support Clean up code quality issues found using flake8 Add pre-commit hook to run black on all Python code. Fix protocol conformance testing when explicitly implementing a protocol Before this bugfix a class explicitly conforming to a protocol could not implement any method that wasn’t declared in the protocol, the bridge would erroneously raise an exception when checking the additional method. Issue reported by Georg Seifert. Fix Python 3 issues in PyObjCTools.Conversion Reported by vinolin asokan. PyObjCTools.Conversio.propertyListFromPythonCollection didn’t recursively convert members of lists and tuples. PyObjCTools.Conversio.propertyListFromPythonCollection and PyObjCTools.Conversio.pythonCollectionFromPropertyList now support sets. Update metadata for Xcode 11.4 (beta 2) Added bindings for framework AutomaticAssessmentConfiguration.framework introduced in macOS 10.15.4 In some cases the compiler uses the type encoding “^{NSObject=#}” instead of “@”. Reported by Georg Seifert. Added bindings for the Metal framework (new in macOS 10.11) Most framework bindings now use the limited ABI for the included C extensions, reducing the number of wheels that are needed. The exception are the bindings for Cocoa, Quartz and libdispatch, those use functionality not available in the limited ABI. The bridge itself (pyobjc-core) still uses the full CPython API. The CoreAudio bindings also don’t use the limited ABI for now, those need more work to work with that ABI.
The PyObjC project aims to provide a bridge between the Python and Objective-C programming languages. The bridge is intended to be fully bidirectional, allowing the Python programmer to take full advantage of the power provided by various Objective-C based toolkits and the Objective-C programmer transparent access to Python based functionality.