Commit graph

9 commits

Author SHA1 Message Date
adam
8bfc568498 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-09 08:36:33 +00:00
adam
9498aed989 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-07-08 13:12:35 +00:00
adam
b019899456 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.
2020-05-23 07:03:41 +00:00
adam
b05ff94a91 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-11-18 17:03:08 +00:00
adam
4eeb85338d 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-08-20 07:15:45 +00:00
adam
72672ab5b7 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.
2019-01-08 12:08:39 +00:00
adam
fb826e3641 py-pyobjc: updated to 4.2.2
Version 4.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.
2018-08-15 19:00:48 +00:00
adam
31660a82ff py-pyobjc: updated to 4.2.1
4.2.1:
Bug fixes and improvements.
2018-04-14 08:29:23 +00:00
adam
528c710d21 py-pyobjc: updated to 4.1
Version 4.1:
Protection agains buffer overflow and negative indexes in __getitem__ and __setitem__ for objc.varlist instances.

Fix incorrect metadata for +[NSEvent addLocalMonitorForEventsMatchingMask:handler:]

Fix incorrect and misleading error message in the exception that is raised when return a value from a block that should not return a value.

Issue 223: Fix hard crash when executing help(Cocoa)
Fetching the help for PyObjC framework wrappers isn’t very useful due to the sheer size of the output (4.5 million lines of output for help(Cocoa) at the moment), but shouldn’t cause a hard crash of the interpreter.

Issue 218: Explictly cause an ImportError when reloading `objc._objc`
Reloading the PyObjC core extension now raises an ImportError because this cannot work and used to raise a rather vague error.

Updated metadata for Xcode 9.2

Added missing `MAC_OS_X_VERSION_*` constants

Fix memory error in struct wrappers which resulted in a use-after-free error in the initializer for structs.

Add bindings for frameworks Security, SecurityFoundation and and SecurityInterface.
The bindings for the Security framework don’t expose a number of older APIs that were deprecated in macOS 10.7.

Add bindings to libdispatch.
These bindings require macOS 10.8 or later, libdispatch was available earlier but macOS 10.8 changed the API in such a way that wrapping became a lot easier.
2018-02-08 19:54:18 +00:00