2022-09-27 20:13:03 by Adam Ciarcinski | Files touched by this commit (177) |  |
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.
|
2020-07-09 10:36:43 by Adam Ciarcinski | Files touched by this commit (85) |  |
Log message:
py-pyobjc: updated to 6.2.2
Version 6.2.2
Build for the Metal bindings failed on macOS 10.14
Fix incompatibility with macOS 11 in framework loader
Another attempt at giving a nice error message when trying to install on \
platforms other than macOS.
The classifiers now correctly identify supported Python versions
|
2020-07-08 15:12:44 by Adam Ciarcinski | Files touched by this commit (85) |  |
Log message:
py-pyobjc: updated to 6.2.1
Version 6.2.1
* Ensure package ‘pyobjc’ won’t try to build the PubSub bindings on macOS 10.15
* Minor tweaks to build and pass tests on macOS 10.14 with the latest Xcode that \
can be installed on that version of macOS.
* Fix SystemError in block edge case
* PyObjC raised a SystemError when converting a callable into an ObjC block when \
the callable is a bound method without positional arguments.
* Fix crash on catalina caused by writing to read-only memory.
* Make sure the SDK detection works when the version is not in the SDK name
* There were no SDK updates in Xcode 11.5 and Xcode 11.6 (beta)
|
2020-05-23 13:07:21 by Adam Ciarcinski | Files touched by this commit (1) |
Log message:
py-pyobjc: some frameworks require newer Darwin
|
2020-05-23 09:03:51 by Adam Ciarcinski | Files touched by this commit (133) |  |
Log message:
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.
|
2019-11-19 06:36:44 by Adam Ciarcinski | Files touched by this commit (1) |
Log message:
py-pyobjc: Python 2.7 is not supported
|
2019-11-18 18:03:17 by Adam Ciarcinski | Files touched by this commit (81) |  |
Log message:
py-pyobjc: updated to 6.1
Version 6.1
Updated for the macOS 10.15.1 SDK (Xcode 11.2)
Fix reference counting in -[OC_PythonData length], which resulted in use-after-free.
Fix problems found in pyobjc-core by the clang static analyser
Version 6.0.1
Remove debug print accidently left in production
Surpress “-Wunguarded-availability” warnings in the extension AppKit._inlines
Version 6.0
Removed Python 2 support from the C extension in pyobjc-core
Reformatted code in pyobjc-core:
- Use “black” for Python code
- Use “clang-format” for Objective-C code
Updated bindings for macOS 10.15 (Xcode 11.0)
The userspace driver frameworks introduced in macOS 10.15 (DriverKit and related \
frameworks) will not be exposed through PyObjC. Please let me know if you have a \
good use case for using these frameworks with Python.
Add new framework wrappers for all other new frameworks in macOS 10.15:
AuthenticationServices
CoreHaptics
CoreMotion
DeviceCheck
ExecutionPolicy
FileProvider
FileProviderUI
LinkPresentation
OSLog
PencilKit
PushKit
QuickLookThumbnailing
Speech
SoundAnalysis
SystemExtensions
Add new framework wrappers for a number of older frameworks:
MetalKit (new in macOS 10.11)
Fix crash when creating NSData objects on macOS 10.15
|
2019-08-20 09:15:55 by Adam Ciarcinski | Files touched by this commit (81) |  |
Log message:
py-pyobjc: updated to 5.2
Version 5.2
* Updated metadata for Xcode 10.2
* objc.registerStructAlias no longer emits a deprecation warning because it is \
still used by the framework wrappers.
The function is still deprecated though, the deprecation will reappear once \
the metadata has been updatd.
* The core bridge now uses PyDict_GetItemWithError(), which may result in \
exceptions being raised that were previously swallowed.
* Partially switch to the new buffer API instead of the older Python 2 buffer API.
The new implementation is more correct, but may keep Python objects alive \
longer than the previous implementation, and also affects buffer related \
functionality of Python objects. In particular, calling [someData bytes] on a \
Python object keeps the Py_buffer alive until the next flush of the \
autoreleasepool.
* Fix incorrect metadata for the callback argument to \
-[AVCaptureStillImageOutput \
captureStillImageAsynchronouslyFromConnection:completionHandler:].
* Add bindings to the “PrintCore” APIs from the ApplicationServices framework.
Python 2: UserDict.UserDict instances are now bridged to instances of a \
subclass of NSDictionary.
|
2019-01-08 21:29:42 by Adam Ciarcinski | Files touched by this commit (2) |
Log message:
py-pyobjc-framework-CoreServices: added version 5.1.2
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.
This package contains wrappers for framework 'CoreSpotlight'.
|
2019-01-08 13:08:47 by Adam Ciarcinski | Files touched by this commit (85) |  |
Log message:
py-pyobjc: updated to 5.1.2
Version 5.1.2
Fix compile error on macOS 10.9 or earlier
Calling completion handler failed due to incomplete runtime info
PyObjC’s metadata system didn’t automaticly set the call signature for \
blocks passed into a method implemented in Python. This causes problems when the \
ObjC or Swift block does not have signature information in the ObjC/blocks \
runtime.
Use MAP_JIT when allocating memory for the executable stubs for Python methods.
With the “restricted” runtime you’ll have to add the \
“com.apple.security.cs.allow-jit” entitlement to use this flag, in earlier \
versions you’d have to use a different entitlement: \
“com.apple.security.cs.allow-unsigned-executable-memory”.
The MAP_JIT flag is only used on macOS 10.14 or later.
Ensure that PyObjC can be built using /usr/bin/python on macOS 10.14
This failed due the problems with header files in the SDK included with Xcode 10.
Version 5.1.1
Update metadata for Xcode 10.1
Version 5.1
Xcode 10 “GM” contains one difference from the last beta: the constant \
MLComputeUnitsCPUAndGPU in the CoreML bindings.
Add a proxy for C’s “FILE*” type on Python 3. This is not necessary on \
Python 2 because the default IO stack on Python 2 already uses FILE* internally.
This proxy type is very minimal and shouldn’t not be used for general I/O.
Bindings are up-to-date w.r.t. Xcode 10.1 (beta)
Updated the support code for framework wrappers to be able to emit deprecation \
warnings on the first import of a deprecated constants (functions and methods \
will only raise a deprecation warning when called).
This is just an infrastructure change, the actual framework bindings do not yet \
contain the information used to emit deprecation warnings.
Add metadata for deprecation warnings to the “Contacts” framework
Import ABCs from collections.abc instead of collections because the latter is \
deprecated.
Instances of most builtin value types and sequences (int, float, str, unicode, \
tuple, list, set, frozenset and dict) can now be written to archives that \
require secureCoding.
Version 5.0
Version 5.0 of PyObjC primarily adds support for macOS 10.14 (mojave), and also \
adds support for a couple of older frameworks that weren’t supported before.
|