|Author:||Simon McVittie, Collabora|
dbus-python is developed at freedesktop.org using
See UsingGit for some details.
- Anonymous access
git clone git://anongit.freedesktop.org/git/dbus/dbus-python
- Committer access (requires freedesktop.org shell account)
git clone git+ssh://git.freedesktop.org/git/dbus/dbus-python
dbus-gmain is maintained via git subtree. To update, assuming you have a checkout of the dbus-gmain branch of the dbus-glib repository in ../dbus-gmain:
git subtree pull -P dbus-gmain ../dbus-gmain HEAD
dbus.mainloop are core public API.
dbus.lowlevel provides a lower-level public API for advanced use.
dbus.mainloop.glib is the public API for the GLib main loop integration.
dbus.exceptions are mainly for backwards
compatibility - use
dbus instead in new code. Ditto
dbus.proxies are internal
_dbus_bindings is the real implementation of the Python/libdbus
_dbus_bindings is the real implementation of
Python/libdbus-glib integration. Neither is public API, although some
of the classes and functions are exposed as public API in other modules.
All Python functions must be called with the GIL (obviously).
Before calling into any D-Bus function that can block, release the GIL; as well as the usual “be nice to other threads”, D-Bus does its own locking and we don’t want to deadlock with it. Most Connection methods can block.
Code needs to be Python 2.5 compatible - use Py_ssize_t where appropriate. See http://www.python.org/dev/peps/pep-0353/ for details.
Indentation and other holy wars¶
Python code is meant to follow PEP8, and has 4-space indentation, no hard tabs.
C code is meant to follow what PEP7 refers to as “Python 3000” style - 4-space indentation, no hard tabs, otherwise consistent with historical Python 2.x code.
Docstrings etc. are reStructuredText.