- Mapped all built-in Python exceptions to D-Bus errors.
- Default bus connection now uses context/thread-local storage. This is potentially breaking in code that used bus in a different threads or contexts.
- Added
map_exception_to_dbus_errorwhich lets mapping of any exception to D-Bus error name. - D-Bus interfaces and member names are now verified before exporting to D-Bus. A helpful error message will be returned if verification fails.
- Added ability to export and track objects with ObjectManager.
- Added
sdbus.unittest.IsolatedDbusTestCasewhich is a test case that runs on a separated D-Bus instance. Requiresdbus-daemoncommand be installed. - Allow replacing the default bus. Changing default bus will not have effect on existing objects which will continue to use the old bus.
- Fixed non-mapped errors in methods called from D-Bus not returning generic error.
- Fixed errors in properties always returning Access Denied instead of specific or generic D-Bus errors.
- Fixed
strandintsubclasses not being accepted on fast API. - Fixes trying to process a disconnected bus and causing high CPU usage.
- Marked autodoc extension safe for parallel reading and writing.
- pkg-config is now required when building from source.
- Added support for Alpine Linux and any other distros using elogind instead of systemd.
- Improved PropertiesChanged signal emissions for python objects.
- Fixed python D-Bus methods that return single struct.
- Fixed missing header file from the source package.
- Deprecated
DbusInterfaceCommonAsync._connectandDbusInterfaceCommonAsync.new_connectin favor ofDbusInterfaceCommonAsync._proxifyandDbusInterfaceCommonAsync.new_proxyrespectively.
- Added
gen-from-connectioncommand to module that generates interface classes from run-time introspection. Takes service name and one or more object paths as arguments. Outputs to stdout. - Added
sd_bus_open_system_remotecall that opens a remote system bus through SSH. - Added
sd_bus_open_system_machineandsd_bus_open_user_machinecalls that open a bus connection inside systemd-nspawn containers.
- Typing stub will raise an exception when called in case the C module failed to load. This should reduce crypting errors in case the module failure.
- Interface generator now skips standard interfaces such as
org.freedesktop.DBus.Introspectable
- Added limited API module. This has advantage of working on multiple Python versions but 5% performance penalty. PyPI will probably use the limited API module.
- Fixed any libsystemd errors causing a segmentation fault.
- Fixed unmapped errors not being raised properly.
- Added binary packages to PyPI. No more issues with libsystem versions.
- BREAKING Moved proxies from
sdbus.proxies,sdbus.async_proxiestosdbus_asyncandsdbus_block. - Added
org.freedesktop.DBus.ObjectManagerinterface and a base interface with it. - Added
org.freedesktop.DBus.Propertiesinterface to base interface. - Added autodoc extension.
- Added interface code generator.
- Added
request_default_bus_nameto request name on default bus in blocking order. - Added
SdBus.request_nameto requests name in blocking order. Useful to initialize the daemons. - Fixed any initialized dbus objects never being deleted even if there were no more references to them.