Skip to content

v10.2

Compare
Choose a tag to compare
@ronaldoussoren ronaldoussoren released this 28 May 06:00
· 146 commits to master since this release
  • Fix a number of warnings found by adding -Wpendantic to the CFLAGS for
    pyobjc-core

  • Fix undefined behaviour warnings:

    • Suppress the undefined behaviour warning about out of range values in
      double to (unsigned) long long in the OC_PythonNumber implementation
      as these are unavoidable when matching NSNumber behaviour.

    • Switch to using memcpy instead of direct assignment in converting
      plain C values to/from Python because "packed" structs might result
      in accessing values through unaligned pointers.

  • Updated bindings for the macOS 14.4 SDK (Xcode 15.3)

  • Added bindings for the "BrowserEngineKit" framework on macOS 14.4 or later.

  • Add :func:obj.registerPathType to register a Python type as a path like
    type with PyObjC. By default only :class:pathlib.Path is registered as such.

    A minor backward compatibility issue is that instances of the registered types
    will be written to NSArchive and NSKeyArchive archives as instances
    of NSURL and won't roundtrip back to the original Python type. This might
    change in future versions of PyObjC, at least for :class:pathlib.Path.

  • #589: Instances of :class:pathlib.Path (and other types registered with
    objc.registerPathType) are bridged into Objective-C as instances of NSURL.

    This means that these types can be used as values passed to APIs expecting
    a filesystem URL, e.g.:

    path = pathlib.Path("/Applications/Numbers.app")
    bundle = NSBundle.bundleWithURL_(path)
  • Fix some warnings in pyobjc-core when testing with Python 3.13a4.

  • Add support for NSBezierPathElementQuadraticCurveTo in NSBezierPath.elementAtIndex_associatedPoints_.

  • #595: Fix compilation error in pyobjc-framework-Cocoa with a recent
    deployment target.