Fri 26 Jan 2007
I landed dbus-python 0.80.1 in Fedora yesterday. This is a complete rewrite of the lowlevel bindings from Pyrex to C done by Simon McVittie. Please check your packages if they use the python bindings to make sure they still work with the new bindings. Some API has been deprecated, some kept for compat reasons and some broken. Most of the broken API comes from the lowlevel dbus_bindings API which wasn’t public in the first place. If you use those lowlevel API’s and can’t find a way to do what you want in the highlevel public APIs please contact us on the D-Bus list or in bugzilla so that we can figure out a way to support your usage in a sane public API. The more input we get the faster we can move to stabilizing the Python APIs just as we stabilized core D-Bus. And now for a list of changes:
- The “Everything changes” release (0.80.0), quickly followed by the “oops” release which made it work
- dbus_bindings and dbus_glib_bindings rewritten in C rather than Pyrex, and renamed to make it clear that they’re not intended to be public API
- Low-level public API moved to dbus.lowlevel to give new users a hint that it’s probably not what they want
- Remove Variant class, add variant_level property on all D-Bus types
- Make signal matching work as expected after name ownership changes
- Use unambiguous D-Bus data types when converting from D-Bus to Python, and follow well-defined rules when converting from Python to D-Bus
- Add utf8_strings and byte_arrays options in various places, so a user can tweak the calling conventions to be more efficient
- Raise error if no main loop is configured and the user does something that only works with a main loop
- Make async method calls actually async when made while still introspecting
- Redo main loop machinery to allow for pure-Python main loops later
- Allow construction of a dbus.service.Object if you have no BusName
- Remove dependency on libxml2 by porting introspection XML parser to use expat
- Port build system from distutils to autofoo
- Install a header file for third-party main loop integration
- Python 2.5-compatible, on 32 and 64 bit
- More documentation, tests, examples, interoperability tests
January 26th, 2007 at 6:28 pm
J5, you totally rock. If we ever meet IRL, I owe you multiple drinks. (That is of course assuming that we don’t meet within the next few days while I’m still underage. :p)