ANTS-Framework / ants

ANTS is a framework to manage and apply macOS and Linux host configurations using Ansible Pull.
GNU General Public License v3.0
41 stars 8 forks source link

Update pyobjc to 9.0.1 #167

Closed pyup-bot closed 1 year ago

pyup-bot commented 1 year ago

This PR updates pyobjc from 8.5.1 to 9.0.1.

Changelog ### 9.0.1 ``` ------------- * 512: Fix metadata for ``webView:runJavaScriptConfirmPanelWithMessage:initiatedByFrame:completionHandler:`` and ``webView:runJavaScriptTextInputPanelWithPrompt:defaultText:initiatedByFrame:completionHandler:`` in the WebKit bindings. * 508: Reintroduce support for bridgesupport files that was dropped in 9.0. There are external users for this interface and the replacement used by PyObjC itself is not yet in a state where it can be used by other projects. * Framework bindings were updated for the SDK included in Xcode 14.1 * 517: Fix bad markup in overview of wrapped frameworks * 519: Fix compile error with Python 3.12 ``` ### 9.0 ``` ----------- * Support for macOS 13 (Xcode 14 beta 4) * Updated framework bindings for macOS 13 The list below lists the frameworks that have API changes that affect the framework bindings. * Added bindings for the following frameworks (all new in macOS 13): - AVRouting - BackgroundAssets - ExtensionKit - HealthKit - MetalFX - SafetyKit - SharedWithYou - SharedWithYouCore - ThreadNetwork * The definition of a number of basic structs has moved in the SDK for macOS 13 and PyObjC conforms to this change on all platforms. In particular: - ``CGPoint``, ``CGSize``, ``CGVector``, ``CGRect``, ``CGAffineTransform`` and ``CGAffineTransformComponents`` are now defined in the ``CoreFoundation`` module. - ``NSPoint``, ``NSSize`` and ``NSRect`` are now aliases for the corresponding ``CG*`` types (instead of the other way around in previous versions of PyObjC). Both changes should require no changes to scripts, unless code relies on the particular ``__name__`` of a type. * The extension API ("pyobjc-api.h") now has nullability annotations, which may lead to compilation errors or warnings when compiling 3th-party extensions using this API. * The extension API ("pyobjc-api.h") has a changed interface for creating method IMPs, because of this extensions for older versions of PyObjC cannot be used with PyObjC 9. * 416: PyObjC 9.0 requires Python 3.7 or later * 384: Remove support for BridgeSupport files The bridge itself hasn't used these files for a long time, and system bridgesupport files are basically unusable. * 415: Remove ``objc._setClassExtender`` This was an internal function that's no longer used by PyObjC itself. * 429: Remove ``-[OC_PythonNumber getValue:forType:]`` This method is never actually used by the system and is not part of the ``NSNumber`` interface (but possibly was in the past) * 438: Removed bindings for the ``Message`` and ``ServerNotification`` frameworks. Both frameworks were removed in macOS 10.9 and hence cannot be used on a platform that's still supported by PyObjC. * 451: Removed the ``type`` attribute for ``ObjCPointer`` The ``typestr`` attribute contains the same value and has more consistent naming with the rest of PyObjC. * 436: ``Quarrtz.CVPixelBufferCreateWithBytes`` now conforms to the PyObjC standard for returning values: it returns a tuple of two values, the C return value and the value return through ``pixelBufferOut``. In older versions the return value was only the value return through ``pixelBufferOut``. * 464: The encodings ``objc._C_NSBOOL`` and ``objc._C_BOOL`` are now treated exactly the same as the types ``BOOL`` and ``bool`` have the same size and representation on arm64 and x86_64. * 94: Add support for SIMD types in APIs (types such as ``vector_float3``) The python representation of these types are types with the same name in defined in :mod:`objc.simd`. Because the FFI library used by PyObjC (libffi) does not support these types the bridge only supports the method signatures found in system frameworks, other signatures will result in exceptions at runtime. The relevant libffi issue for this is `408 <https://github.com/libffi/libffi/issues/408>`_. But note that even if that issue were to be fixed PyObjC likely won't use SIMD support in libffi until that's merged in the system version on macOS. * Because of the previous change APIs that have a SIMD type are now callable from Python. * Changes due to generic implementation for SIMD types: - ``SpriteKit.SK3DNode.projectPoint_``: The result is now ``objc.simd.vector_float3`` instead of a tuple - ``SpriteKit.SK3DNode.unprojectPoint_``: The result is now ``objc.simd.vector_float3`` instead of a tuple - ``SpriteKit.SKFieldNode.direction``: The result is now ``objc.simd.vector_float3`` instead of a tuple - ``SpriteKit.SKPhysicsWorld.sampleFieldsAt_``: The result is now ``objc.simd.vector_float3`` instead of a tuple * Still not supported (requires some more infrastructure): - ``SpriteKit.SKFieldNode.customFieldWithEvaluationBlock_`` * The registered metadata can now contain a key ``full_signature`` with the full encoding type signature for a method. This is used to replace the encoding extracted from the Objective-C runtime when one or more types have an empty encoding in the Objective-C runtime (such as the SIMD types mentioned earlier) * The Objective-C proxy for Python methods that require a custom helper (instead of using libffi) now use ``imp_implementationWithBlock``. * 492: For a number of classes in ``AVFoundation`` the system actually uses instances from a parallel class hierarchy with ``_Tundra`` as a suffix of the class name. Updated the metadata generator to automatically register the same metadata updates for these classes as for the original classes. * 493: Fix typos in CoreMedioIO metadata for CoreFoundation types * 495: Added two new assertions to ``PyObjCTools.TestSupport.TestCase``: - ``assertArgIsIDLike`` - ``assertResultIsIDLike`` These assert that the type of an argument or return value is a Objective-C or CoreFoundation object, or a pointer to one. * Fix internal error when an object that cannot be used in a boolean context is used for an ObjC argument that expects a ``bool`` or ``BOOL`` value. * 502: Fix incompatibility with Nuitka. Earlier version of PyObjC failed when compiled using Nuitka, this version does work when using Nuitka 1.1.6 or later. Limitations: - The automatic calculation of the method signature in ``selector()`` assumes that methods return ``id`` for Nuitka compiled code. That should not be a problem in practice. As a side effect of this builtin functions are accepted as the callable for a selector, even when not specifying a signature (e.g. ``objc.selector(dir)`` now works). * Fixed crash in objc.selector due to uninitialized memory. * Move helpers for NSInvocation from pyobjc-framework-Cocoa to pyobjc-core. * 505: Don't use static buffer during creation of "native" selector objects This can avoid an ``objc.error`` exception when introspecting existing Cocoa classes. * 479: Revert change that made it impossible to replace a method with a property. ``` ### 8.6 ``` ----------- * 468: Fix setup.py for framework bindings to ensure that ``python setup.py build_ext`` works for bindings that don't contain a C extension. * Fix incompatibilities with Python 3.11 (beta 1) - Switch to ``PyCode_GetCode`` instead of accessing the ``co_code`` field on Python 3.11. - Add definition for ``PassKit.PKPaymentNetworkAppleStoredValue`` (actually using this won't work as the constant is not present on macOS 12.4 even though the SDK seems to suggest otherwise) * Add definition for ``objc.MAC_OS_X_VERSION_12_4`` ```
Links - PyPI: https://pypi.org/project/pyobjc - Changelog: https://pyup.io/changelogs/pyobjc/ - Repo: https://github.com/ronaldoussoren/pyobjc