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

Attachment: 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

Reply via email to