Releases: ronaldoussoren/pyobjc
v6.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
As a side-effect of this all usage of "NS_DURING" and "PyObjC_DURING"
has been replaced by the expansion of those macros, mostly because
"clang-format" doesn't understand these kinds of blocks.Replacing "PyObjC_DURING" by its expansion also reduces the knowledge
needed to understand what's going on w.r.t. the Python GIL.The macro "PyObjC_DURING", and its siblings, have been removed as well.
-
-
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)
-
Issue #271: Fix crash when creating NSData objects on macOS 10.15
v5.3
v5.2
-
Updated metadata for Xcode 10.2
-
#252:
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. -
#75: The core bridge now uses :func:
PyDict_GetItemWithError
, which
may result in exceptions being raised that were previously swallowed. -
#247: 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 thePy_buffer
alive
until the next flush of the autoreleasepool. -
#257: Fix incorrect metadata for the callback argument to
-[AVCaptureStillImageOutput captureStillImageAsynchronouslyFromConnection:completionHandler:]
.
#258: 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.
v5.1.2
-
#254: Fix compile error on macOS 10.9 or earlier
-
#255: 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.
v5.1.1
- Update metadata for Xcode 10.1
v5.1
-
Xcode 10 "GM" contains one difference from the last beta: the constant MLComputeUnitsCPUAndGPU
in the CoreML bindings. -
#222: 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
-
#252: Import ABCs from
collections.abc
instead ofcollections
because the latter is deprecated. -
#180, #251: 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.
v5.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.
v5.0b1
-
Bindings updated for Xcode 10 beta 6.
-
Add a custom binding for a number of structure types in
CoreAudio:- AudioBuffer
- AudioBufferList
- AudioChannelDescription
- AudioChannelLayout
- AudioValueTranslation
With this patch using APIs with these types should actually
work. -
PR19: Fix deprecation warning in bridgesupport support module
Patch by: Mickaël Schoentgen
-
Creating objc.ObjCPointer instances now results in a
Python warning, instead of an unconditional message on
stdout... note::
The creation of these objects is a sign that APIs are
not wrapped correctly, these objects are created for
pointers where the bridge doesn't know how to handle
them properly. -
System bridgesupport XML files (normally not used by PyObjC)
can contain constant numbers with value "inf", PyObjC now
knows how to handle those. -
Added bindings for the "Metadata" subframework of the
"CoreServices" framework. -
Added bindings for the "CarbonCore" subframework of the
"CoreServices" framework.Most APIs in this subframework are not available to Python,
only those APIs that are not deprecated and seem interesting
are exposed. -
The separate framework wrappers DictionaryServices,
LaunchServices and SearchKit are deprecated, use
the CoreServices bindings instead.These framework wrappers still exists, but are effectively
aliases for CoreServices with this release. Because of this
these bindings can expose more symbols than previously. -
Fix unexpected exception when trying to call getattr
on a framework wrapped with a name that isn't a valid
identifier. -
#244: Bad metadata for CGPDFOperatorTableSetCallback
-
#247: Fix crash in regression test case
One specific test in pyobjc-core crashed the interpreter
when run separately. Because of this I've disabled an
optimization that uses alloca instead of PyMem_Malloc to
allocate memory for now.
v5.0a1
-
Adds support for macOS 10.14 (Mojave)
This release updates the framework wrappers with support
for new APIs in macOS 10.14 and adds bindings for the following
new frameworks:- AdSupport
- CoreAudio (new in macOS 10.0)
- CoreAudioKit (new in macOS 10.4)
- CoreMedia (new in macOS 10.7)
- CoreMediaIO (new in macOS 10.7)
- DiscRecording (new in macOS 10.2)
- DiscRecordingUI (new in macOS 10.2)
- DVDPlayback (new in macOS 10.3)
- MediaToolbox
- NaturalLanguage
- Network
- OSAKit (new in macOS 10.4)
- UserNotifications
- VideoSubscriberAccount
-
Support for CoreAudio, CoreMedia and MediaToolbox is limited
in this release due to missing manual wrappers. -
Added two features that can help with gating code on the
version of macos:-
The constants "objc.MAC_OS_X_VERSION_CURRENT" can be
compared with one of the "objc.MAC_OS_X_VERSION_..." contants. -
The function "objc.macos_avaiable(major, minor[, patch])"
returns true if the current macOS version is at least the
specified version, comparable with "@available" in Swift.
-
v4.2.2
-
Update metadata for Xcode 9.4
-
The binary release now includes wheels for both variants for the
Python.org installer for python 3.6 and 3.7: 32- and 64-bit for
macOS 10.6 or later, and 64-bit only for macOS 10.9 or later. -
Ensure the context manager for
NSAnimationContext
defined in
PyObjCTools.AppCategories
actually works. -
Fix convenience wrappers for
Foundation.NSCache
. -
Fix convenience wrappers for
Foundation.NSHashTable
.