[ANN] PyObjC 5.0
Ronald Oussoren via Pyobjc-dev <[email protected]> Tue, 18 Sep 2018 22:22:36 +0200
| Newsgroups | gmane.comp.python.pyobjc.devel,gmane.comp.python.apple |
|---|---|
| Message-ID | <[email protected]> |
--===============3669584339106310057== Content-type: multipart/alternative; boundary="Apple-Mail=_A3BEB5E2-0BCB-4840-9197-6E0D488FEE98" --Apple-Mail=_A3BEB5E2-0BCB-4840-9197-6E0D488FEE98 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 PyObjC 5.0 is out The release of macOS 10.14 is near, it is therefore time to release a = new major version of PyObjC. I=E2=80=99ve uploaded PyObjC to PyPI, it = can be installed using =E2=80=9Cpython3 -m pip install -U pyobjc=E2=80=9D.= What is PyObjC The PyObjC project provides bindings to most of Apple=E2=80=99s = higher-level APIs (frameworks). More information about these bindings = and how to use PyObjC can be found on the PyObjC website. What is new The main feature of this release is the addition of support for APIs = introduced in macOS 10.14 (Mojave). In particular: * 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: =E2=80=A2 AdSupport =E2=80=A2 CoreAudio (new in macOS 10.0) =E2=80=A2 CoreAudioKit (new in macOS 10.4) =E2=80=A2 CoreMedia (new in macOS 10.7) =E2=80=A2 CoreMediaIO (new in macOS 10.7) =E2=80=A2 DiscRecording (new in macOS 10.2) =E2=80=A2 DiscRecordingUI (new in macOS 10.2) =E2=80=A2 DVDPlayback (new in macOS 10.3) =E2=80=A2 MediaToolbox =E2=80=A2 NaturalLanguage =E2=80=A2 Network =E2=80=A2 OSAKit (new in macOS 10.4) =E2=80=A2 UserNotifications =E2=80=A2 VideoSubscriberAccount =E2=80=A2 VideoToolbox (new in macOS 10.8) * Added two features that can help with gating code on the version of = macos: 1) The constants =E2=80=9Cobjc.MAC_OS_X_VERSION_CURRENT=E2=80=9D can be = compared with one of the =E2=80=9Cobjc.MAC_OS_X_VERSION_=E2=80=A6=E2=80=9D= contants. 2) The function =E2=80=9Cobjc.macos_avaiable(major, minor[, patch])=E2=80=9D= returns true if the current macOS version is at least the specified = version, comparable with =E2=80=9C@available=E2=80=9D in Swift. =09 * PR19: Fix deprecation warning in bridgesupport support module Patch by: Micka=C3=ABl Schoentgen * Creating objc.ObjCPointer instances now results in a Python warning, = instead of an unconditional message on stdout. * System bridgesupport XML files (normally not used by PyObjC) can = contain constant numbers with value =E2=80=9Cinf=E2=80=9D, PyObjC now = knows how to handle those. * Added bindings for the =E2=80=9CMetadata=E2=80=9D subframework of the = =E2=80=9CCoreServices=E2=80=9D framework. * Added bindings for the =E2=80=9CCarbonCore=E2=80=9D subframework of = the =E2=80=9CCoreServices=E2=80=9D 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=E2=80=99t a valid identifier. * Issue 244: Bad metadata for CGPDFOperatorTableSetCallback * Issue 247: Fix crash in regression test case * One specific test in pyobjc-core crashed the interpreter when run = separately. Because of this I=E2=80=99ve disabled an optimization that = uses alloca instead of PyMem_Malloc to allocate memory for now. Supporting development I do all development on PyObjC in my spare time. Please consider = donating if you use PyObjC professionally. This will help me to improve = PyObjC and related projects. See my website for more information. P.S. This is a cross-post from = http://blog.ronaldoussoren.net/2018/09/18/pyobjc-is-out.html, and I=E2=80=99= ve also tweeted about this from @RonaldOussoren. --Apple-Mail=_A3BEB5E2-0BCB-4840-9197-6E0D488FEE98 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=utf-8 <html><body style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = line-break: after-white-space;" class=3D""><br class=3D""><b = class=3D"">PyObjC 5.0 is out</b><br class=3D""><br class=3D""><div = class=3D"">The release of macOS 10.14 is near, it is therefore time to = release a new major version of PyObjC. I=E2=80=99ve uploaded PyObjC = to PyPI, it can be installed using =E2=80=9Cpython3 -m pip install = -U pyobjc=E2=80=9D.<br class=3D""><br class=3D""></div><div class=3D""><b = class=3D"">What is PyObjC</b><br class=3D""><br class=3D""></div><div = class=3D"">The PyObjC project provides bindings to most of Apple=E2=80=99s= higher-level APIs (frameworks). More information about these = bindings and how to use PyObjC can be found on the PyObjC = website.<br class=3D""><br class=3D""></div><div class=3D""><b = class=3D"">What is new</b><br class=3D""><br class=3D""></div><div = class=3D"">The main feature of this release is the addition of support = for APIs introduced in macOS 10.14 (Mojave).<br class=3D""><br = class=3D""><div class=3D"">In particular:<br class=3D""><div class=3D"">* = Adds support for macOS 10.14 (Mojave)<br class=3D"">* This release = updates the framework wrappers with support for new APIs in macOS = 10.14 and adds bindings for the following new frameworks:</div><div = class=3D""><br class=3D""><div class=3D""><span class=3D"Apple-tab-span" = style=3D"white-space:pre"> </span>=E2=80=A2 = AdSupport<br class=3D""></div><div class=3D""><span = class=3D"Apple-tab-span" style=3D"white-space:pre"> = </span>=E2=80=A2 CoreAudio (new in macOS 10.0)<br = class=3D""></div><div class=3D""><span class=3D"Apple-tab-span" = style=3D"white-space:pre"> </span>=E2=80=A2 = CoreAudioKit (new in macOS 10.4)<br class=3D""></div><div = class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre"> = </span>=E2=80=A2 CoreMedia (new in macOS 10.7)<br = class=3D""></div><div class=3D""><span class=3D"Apple-tab-span" = style=3D"white-space:pre"> </span>=E2=80=A2 = CoreMediaIO (new in macOS 10.7)<br class=3D""></div><div = class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre"> = </span>=E2=80=A2 DiscRecording (new in macOS 10.2)<br = class=3D""></div><div class=3D""><span class=3D"Apple-tab-span" = style=3D"white-space:pre"> </span>=E2=80=A2 = DiscRecordingUI (new in macOS 10.2)<br class=3D""></div><div = class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre"> = </span>=E2=80=A2 DVDPlayback (new in macOS 10.3)<br = class=3D""></div><div class=3D""><span class=3D"Apple-tab-span" = style=3D"white-space:pre"> </span>=E2=80=A2 = MediaToolbox<br class=3D""></div><div class=3D""><span = class=3D"Apple-tab-span" style=3D"white-space:pre"> = </span>=E2=80=A2 NaturalLanguage<br class=3D""></div><div = class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre"> = </span>=E2=80=A2 Network<br class=3D""></div><div class=3D""><span = class=3D"Apple-tab-span" style=3D"white-space:pre"> = </span>=E2=80=A2 OSAKit (new in macOS 10.4)<br class=3D""></div><div= class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre"> = </span>=E2=80=A2 UserNotifications<br class=3D""></div><div = class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre"> = </span>=E2=80=A2 VideoSubscriberAccount<br class=3D""></div><div = class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre"> = </span>=E2=80=A2 VideoToolbox (new in macOS 10.8)<br = class=3D""></div><div class=3D""><br class=3D""></div><div class=3D""><br = class=3D""></div><div class=3D"">* Added two features that can help with = gating code on the version of macos:<br class=3D""></div></div><div = class=3D""><br class=3D""></div></div></div><blockquote style=3D"margin: = 0 0 0 40px; border: none; padding: 0px;" class=3D""><div class=3D""><div = class=3D""><div class=3D"">1) The constants = =E2=80=9Cobjc.MAC_OS_X_VERSION_CURRENT=E2=80=9D can be = compared with one of the =E2=80=9Cobjc.MAC_OS_X_VERSION_=E2=80=A6=E2=80= =9D contants.</div></div></div><div class=3D""><div class=3D""><div = class=3D""><br class=3D""></div></div></div><div class=3D""><div = class=3D""><div class=3D"">2) The function =E2=80=9Cobjc.macos_avaiable(ma= jor, minor[, patch])=E2=80=9D returns true if the current macOS = version is at least the specified version, comparable = with =E2=80=9C@available=E2=80=9D in = Swift.</div></div></div></blockquote><div class=3D""><div class=3D""><div = class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre"> = </span></div><div class=3D"">* PR19: Fix deprecation warning in = bridgesupport support module<br class=3D"">Patch by: Micka=C3=ABl = Schoentgen<br class=3D""></div><div class=3D""><br class=3D""></div><div = class=3D"">* Creating objc.ObjCPointer instances now results in a Python = warning, instead of an unconditional message on stdout.<br = class=3D""></div><div class=3D""><br class=3D""></div><div class=3D"">* = System bridgesupport XML files (normally not used by PyObjC) can = contain constant numbers with value =E2=80=9Cinf=E2=80=9D, PyObjC = now knows how to handle those.<br class=3D""></div><div class=3D""><br = class=3D""></div><div class=3D"">* Added bindings for the =E2=80=9CMetadat= a=E2=80=9D subframework of the = =E2=80=9CCoreServices=E2=80=9D framework.</div><div class=3D""><br = class=3D""></div><div class=3D"">* Added bindings for the = =E2=80=9CCarbonCore=E2=80=9D subframework of the = =E2=80=9CCoreServices=E2=80=9D framework.</div><div class=3D""><br = class=3D""></div><div class=3D"">Most APIs in this subframework are not = available to Python, only those APIs that are not deprecated and = seem interesting are exposed.<br class=3D""></div><div class=3D""><br = class=3D""></div><div class=3D"">* The separate framework wrappers = DictionaryServices, LaunchServices and SearchKit are deprecated, = use the CoreServices bindings instead.<br class=3D""><br = class=3D""></div><div class=3D"">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.<br class=3D""></div><div class=3D""><br = class=3D""></div><div class=3D"">* Fix unexpected exception when trying = to call getattr on a framework wrapped with a name that isn=E2=80=99t= a valid identifier.</div><div class=3D""><br class=3D""></div><div = class=3D"">* Issue 244: Bad metadata for = CGPDFOperatorTableSetCallback</div><div class=3D""><br = class=3D""></div><div class=3D"">* Issue 247: Fix crash in regression = test case<br class=3D""><br class=3D""></div><div class=3D"">* One = specific test in pyobjc-core crashed the interpreter when run = separately. Because of this I=E2=80=99ve disabled an optimization = that uses alloca instead of PyMem_Malloc to allocate memory for = now.<br class=3D""><br class=3D""></div><b class=3D"">Supporting = development<br class=3D""></b><br class=3D""></div><div class=3D"">I do = all development on PyObjC in my spare time. Please consider donating if = you use PyObjC professionally. This will help me to improve PyObjC = and related projects. See my website for more = information.<br class=3D""><br class=3D""><br class=3D"">P.S. This is a = cross-post from <a = href=3D"http://blog.ronaldoussoren.net/2018/09/18/pyobjc-is-" = class=3D"">http://blog.ronaldoussoren.net/2018/09/18/pyobjc-is-</a>out.htm= l, and I=E2=80=99ve also tweeted about this from @RonaldOussoren.<br = class=3D""><br class=3D""></div></div></body></html>= --Apple-Mail=_A3BEB5E2-0BCB-4840-9197-6E0D488FEE98-- --===============3669584339106310057== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline --===============3669584339106310057== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Pyobjc-dev mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/pyobjc-dev --===============3669584339106310057==--