Various more changes to dbus-python

Simon McVittie simon.mcvittie at collabora.co.uk
Wed Jan 10 05:31:30 PST 2007


As well as the patch to support switching off introspection in
get_object and get_object_by_unique_name (thanks Ulisses), here are some
changes I've checked into git:

- Added part of a tutorial in doc/tutorial.txt (or really .txt.in, since
  the version is filled in by ./configure).

- Don't require a main loop unless the user does something that actually
  needs it (async calls, signal connections, exporting objects)

  This isn't actually quite strict enough - get_object() now tracks
  NameOwnerChanged to follow well-known name ownership changes, but in
  the absence of a main loop it won't get the signals - but following
  name ownership changes didn't work at all in Pyrex-dbus-python, so
  it's not a regression.

- Subscripting a ByteArray gives a 1-character string again (it briefly
  gave a Byte, which subtypes int, but least astonishment and all that).
  This is backwards-compatible with Pyrex-dbus-python (although not with
  earlier release candidates of C-dbus-python!)

- dbus.Interface and dbus.proxies.ProxyObject have a method
  get_dbus_method() which you can use to call remote methods with
  strange names (__getattr__ for instance). Previously the only way to
  get a remote method proxy was by attribute access, which meant certain
  remote method names would be shadowed by actual attributes of the
  object.

- When serializing objects, if the object has the special attribute
  __dbus_object_path__, guess that it's an object path if there's no
  signature, and if serializing it as an object path, use the contents
  of that attribute. dbus.Interface, ProxyObject and dbus.service.Object
  now have that special attribute.

I plan to do another release candidate once I've finished the tutorial,
which will hopefully be the last before 0.80. Is there anything else that
needs to happen before 0.80? Particularly, anything that breaks API?
(Compatible changes can happen later, but I want to make the
incompatible changes all at once so things only have to be ported once.)

	Simon


More information about the dbus mailing list