[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&nbsp;version of PyObjC. I=E2=80=99ve uploaded PyObjC =
to PyPI, it can be installed using =E2=80=9Cpython3&nbsp;-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&nbsp;(frameworks). More information about these =
bindings and how to use PyObjC can&nbsp;be found on&nbsp;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&nbsp;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&nbsp;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 =
&nbsp;AdSupport<br class=3D""></div><div class=3D""><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">		=
</span>=E2=80=A2 &nbsp;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 =
&nbsp;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 &nbsp;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 =
&nbsp;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 &nbsp;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 =
&nbsp;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 &nbsp;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 =
&nbsp;MediaToolbox<br class=3D""></div><div class=3D""><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">		=
</span>=E2=80=A2 &nbsp;NaturalLanguage<br class=3D""></div><div =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">		=
</span>=E2=80=A2 &nbsp;Network<br class=3D""></div><div class=3D""><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">		=
</span>=E2=80=A2 &nbsp;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 &nbsp;UserNotifications<br class=3D""></div><div =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">		=
</span>=E2=80=A2 &nbsp;VideoSubscriberAccount<br class=3D""></div><div =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">		=
</span>=E2=80=A2 &nbsp;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&nbsp;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&nbsp;current macOS =
version is at least the specified version, comparable =
with&nbsp;=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&nbsp;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&nbsp;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&nbsp;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&nbsp;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&nbsp;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&nbsp;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&nbsp;with this release. =
Because of this these bindings can expose more symbols =
than&nbsp;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&nbsp;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.&nbsp;Because of this I=E2=80=99ve disabled an optimization =
that uses alloca instead of&nbsp;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&nbsp;use PyObjC professionally. This will help me to improve PyObjC =
and related&nbsp;projects. See&nbsp;my website&nbsp;for more =
information.<br class=3D""><br class=3D""><br class=3D"">P.S. This is a =
cross-post from&nbsp;<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==--