Hi Hayden Lau, do you have a GLib mainloop running? If no, maybe creating and starting one may help.
See also: https://bugzilla.gnome.org/show_bug.cgi?id=759644 -- Regards Chris Am Samstag, den 13.01.2018, 16:19 +0000 schrieb Hayden Lau: > Hello, > > I understand this is a dev mailing list, but I’m not sure where to > post this question otherwise. > > I’m attempting to write an application that interacts with UDisks2 > over DBus with PyGObject. However, I’m finding that after > instantiating the proper Gio.DBusObjectManagerClient, I seem to be > unable to get updates on the ObjectManager’s state. Am I missing > something? The only example code that I could find that had similar > functionality was in udiskie (https://github.com/coldfix/udiskie), b > ut that application uses Gio.DBusProxy directly. Is that > the recommended approach? My (non-working) proof of concept code > pasted below. It prints the initial set of objects reported by > the ‘org.freedesktop.UDisks2’ object manager, but does not print > changes (either via signal or polling) when disks are added or > removed. > > I am using the version of PyGObject that comes packaged with Ubuntu > 16.04 LTS, 3.20.0, along with the versions of DBus and Glib, etc that > also come with the OS. (https://packages.ubuntu.com/xenial/python3-gi > ) > > Thank you, > Hayden Lau > > ======================== > from time import sleep > import gi > gi.require_version('Gio', '2.0') > from gi.repository import Gio > > udisks2 = Gio.DBusObjectManagerClient.new_for_bus_sync( > Gio.BusType.SYSTEM, > Gio.DBusObjectManagerClientFlags.NONE, > 'org.freedesktop.UDisks2', > '/org/freedesktop/UDisks2', > None, > None, > None > ) > > def new_obj_handler(obj): > print('New Object: ', obj) > > def new_iface_handler(obj): > print('New Interface: ', obj) > > def get_paths(objmgr): > return [obj.get_object_path() for obj in objmgr.get_objects()] > > udisks2.connect('interface-added', new_iface_handler) > udisks2.connect('object-added', new_obj_handler) > > paths = [] > while(True): > if paths != get_paths(udisks2): > paths = get_paths(udisks2) > print(paths) > sleep(1) > _______________________________________________ > python-hackers-list mailing list > python-hackers-list@gnome.org > https://mail.gnome.org/mailman/listinfo/python-hackers-list
signature.asc
Description: This is a digitally signed message part
_______________________________________________ python-hackers-list mailing list python-hackers-list@gnome.org https://mail.gnome.org/mailman/listinfo/python-hackers-list