Log message:
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.
|
Log message:
py-pyobjc*: updated to 9.2
9.2
Version 9.2
Added warning objc.ObjCSuperWarning that is used to warn about classes that use \
argument-less super without binding that name to objc.super.
Document that objc.super must be used instead of builtin.super when calling \
superclass methods in a Cocoa subclass.
Add minimal pyproject.toml to all subprojects
Fix crash in pyobjc-core when using Python 3.12a7.
Added explicit tests for dealing with Objective-C categories that are loaded \
while using classes from Python.
Fix the version of macOS where the SafariServices framework is present.
Fixed some issues found by testing on a macOS 10.11 system
Trying to implement a method with SIMD types as arguments or return value will \
now give a more useful error when the bridge does not support the signature.
Fix incomplete metadata for CoreMediaIO.CMIOObjectSetPropertyData
Fix incorrect metadata
Removed Quartz.CGColorConversionInfoCreateFromListWithArguments. This function \
was already documented as unsupported, but was still present in the framework \
wrapper.
Removed Quartz.CVPixelBufferCreateWithPlanarBytes. This function requires a \
manual binding, but was still present with a generic (and non-working) binding.
Removed CoreMedia.CMBufferQueueCreate, \
CoreMedia.CMBufferQueueGetCallbacksForSampleBuffersSortedByOutputPTS, \
CoreMedia.CMBufferQueueGetCallbacksForUnsortedSampleBuffers, \
CoreMedia.CMVideoFormatDescriptionGetH264ParameterSetAtIndex, \
CoreMedia.CMVideoFormatDescriptionGetHVECParameterSetAtIndex, These functions \
require a manual binding, but were still present with a generic (and \
non-working) binding.
Explicitly exclude definitions from CMIOHardwarePlugIn.h from the CoreMediaIO \
bindings.
Added deref_result_pointer key to the metadata for a return value. Use this when \
a callable returns a pointer to a single value (for example \
CMAudioFormatDescriptionGetMostCompatibleFormat)
Removed unsupported functions from the ApplicationServices bindings (not named \
individually due to the size of the list). Also fixed annotations for other \
ApplicationServices bindings.
Add manual binding for CFNetwork.CFNetServiceBrowserCreate, \
CFNetwork.CFNetServiceSetClient, and CFNetwork.CFNetServiceMonitorCreate.
Fix incompatibility with Python 3.12 beta 1.
|
Log message:
py-pyobjc*: updated to 8.5.1
Version 8.5
This release continues the work on test coverage in pyobjc-core, resulting in a \
number of minor bug fixes.
Added two options to the build_ext command in the setup.py of pyobjc-core:
--no-lto: Disable link time optimization
--no-warnings-as-errors: Disable -Werror
For struct bindings in frameworks the “in” operator no longer swallows \
exceptions raised by the __eq__ method.
Improved handing of invalid type encodings for struct types.
Fix crash while handling a struct wrapper with an invalid type encoding.
Fix handling of empty structs (such as struct foo { }; in objc.repythonify().
The type for NSObject.pyobjc_instanceMethod and NSObject.pyobjc_classMethods now \
supports the GC protocol to avoid garbage collection issues when the value for \
these properties is stored as an attribute (which introduces a reference cycle)
PyObjC should work with Python 3.11 alpha release, starting at alpha 6. Earlier \
alpha’s are not supported due to reverting a workaround for a bug that was \
fixed in alpha 6.
NSObject.alloc = 42 now fails. It was already impossible to replace a selector \
by something else through instances (NSObject.new().description = 42 raises).
Added objc.ObjCPointer.typestr with the same value as objc.ObjCPonter.type. The \
latter is now deprecated and will be removed in PyObjC 9.
Better error messages when a class implementing a protocol inherits a method of \
the wrong kind (“class” vs. “instance”).
The value of __slots__ in a class definition is now kept in the created class \
(previous versions always set the attribute to an empty tuple).
This is primarily useful when __slots__ is a dict that is used to document \
attributes.
Raise the correct exception when the name of a method is not an ASCII string.
objc.loadSpecialVar() now better enforces that the module_globals argument is a \
Python dictionary.
Fixed a crash in objc.loadSpecialVar() due to a missing pointer dereference.
pip install pyobjc-framework-... for a framework that is not present on the \
current machine will now give a better error message when the “wheel” \
package is not installed.
Setting an integer option in objc.options to a value of an incompatible type \
(such as a string) will now raise an exception as intended, instead of breaking \
the interpreter.
Trying to delete an attribute from objc.options now raises \
:type:`AttributeError` instead of :type:`TypeError`.
objc.selector now copies the default signature from its argument when that \
argument is another objc.selector.
Until now this would raise an exception.
Added some missing error checking in calls to PyObject_New() and PyObject_GC_New().
It is now possible to create an objc.selector from a callable that is not a \
function or bound method. This may require specifying the method signature in \
the call to objc.selector.
For pyobjc-core the build_ext command in setup.py now includes the command-line \
option from the standaard command, which means python setup.py build_ext -j 4 \
can now be used for parallel builds.
On my M1 laptop using python setup.py build_ext -j 8 halves the time needed to \
build the extension.
The test command setup.py now supports the -v option to print test cases while \
they are run, in previoius versions this required using the --verbosity option.
Improve error handling when dealing with “isHidden” selectors.
Added pyobjc_hiddenSelectors(classmethods) to objc.objc_class
This method returns a copy of the dictionary with “hidden” selectors, that \
is Objective-C selectors that are hidden from view.
The method is primarily a debugging aid for development of PyObjC itself.
ApplicationServices.AXIsProcessTrustedWithOptions and \
Quartrz.CGPDFArrayGetObject had incorrect metadata.
The testsuites for the various framework bindings now have a test that does some \
basic checks on function and selector metadata. This test found the problem with \
CGPDFArrayGetObject.
Added objc._C_ATOMIC and objc._C_COMPLEX, both extracted from the clang sources \
after finding some type encodings that PyObjC could not decode.
objc._C_ATOMIC is ignored by PyObjC (for now), and objc._C_COMPLEX is not yet \
supported.
Fix internal error for _C_OUT argument markup on arguments that are \
CoreFoundation types.
This can only happen with invalid metadata definitions in framework bindings, \
and earlier versions this resulted in an internal assertion error. With this \
change the “output” argument is always None in the result.
Fix metadata for a number of functions with a C string argument
The metadata for the following functions was changed to have the correct type \
encoding for string argument, to fix issues with using non-ASCII (byte) strings.
ApplicationServices.PMWorkflowSubmitPDFWithOptions
CoreServices.LocaleRefGetPartString
Foundation.NSGetSizeAndAlignment
Network.nw_advertise_descriptor_create_bonjour_service
Network.nw_browse_descriptor_create_bonjour_service
Network.nw_browse_descriptor_get_bonjour_service_domain
Network.nw_browse_descriptor_get_bonjour_service_type
Network.nw_connection_copy_description
Network.nw_content_context_create
Network.nw_content_context_get_identifier
Network.nw_endpoint_copy_address_string
Network.nw_endpoint_copy_port_string
Network.nw_endpoint_create_bonjour_service
Network.nw_endpoint_create_host
Network.nw_endpoint_create_url
Network.nw_endpoint_get_bonjour_service_domain
Network.nw_endpoint_get_bonjour_service_name
Network.nw_endpoint_get_bonjour_service_type
Network.nw_endpoint_get_hostname
Network.nw_framer_create_definition
Network.nw_framer_message_access_value
Network.nw_framer_message_copy_object_value
Network.nw_framer_message_set_object_value
Network.nw_framer_message_set_value
Network.nw_framer_options_set_object_value
Network.nw_listener_create_with_port
Network.nw_privacy_context_create
Network.nw_quic_get_application_error_reason
Network.nw_quic_set_application_error
Network.nw_txt_record_access_key
Network.nw_ws_options_add_additional_header
Network.nw_ws_options_add_subprotocol
Quartz.CGContextSelectFont
Quartz.CGContextShowText
Quartz.CGContextShowTextAtPoint
Quartz.CGDataProviderCreateWithFilename
Quartz.CGPDFArrayGetName
Quartz.CGPDFContentStreamGetResource
Quartz.CGPDFDictionaryGetArray
Quartz.CGPDFDictionaryGetBoolean
Quartz.CGPDFDictionaryGetName
Quartz.CGPDFDocumentUnlockWithPassword
Quartz.CGPDFScannerPopName
Quartz.CGPDFTagTypeGetName
While fixing this issue I found problems with the metadata for these functions:
CoreMIDI.MIDIExternalDeviceCreate
CoreMedia.CMBlockBufferAccessDataBytes
CoreMedia.CMBlockBufferGetDataPointer
CoreMedia.CMBufferQueueInstallTriggerHandler
CoreMedia.CMBufferQueueInstallTriggerHandlerWithIntegerThreshold
CoreMedia.CMTextFormatDescriptionGetJustification
CoreServices.TECGetTextEncodingFromInternetNameOrMIB
DVDPlayback.DVDGetScanRate
MediaAccessibility.MACaptionAppearanceAddSelectedLanguage
There’s also a new test that checks for this problem in all exposed functions.
Fix incorrect reset of the “inline_list” attribute of the lazy importer, \
this could result in an incorrect TypeError when trying to access an \
non-existing attribute after looking at __all__.
Fix uniqueness of symbols exposed in the OpenDirectory bindings.
Unhide manual bindings for Security.SecKeychainFindGenericPassword and \
Security.SecKeychainFindInternetPassword.
|