0
Я пытаюсь переписать связанный с Glib/dbus код C на python. Соответствующий код C:Glib: привязка g_variant_get для python
GVariant *real_value;
JsonNode *root;
JsonGenerator *generator;
gsize json_length;
gchar *json;
GDBusProxy *proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SESSION,
G_DBUS_PROXY_FLAGS_NONE,
NULL, /* interface info */
"org.gnome.Shell",
"/org/gnome/Shell",
"org.gnome.Shell.Extensions",
NULL, /* GCancellable */
&error);
GVariant *variant = g_dbus_proxy_call_sync (obj->proxy,
"ListExtensions",
NULL, /* parameters */
G_DBUS_CALL_FLAGS_NONE,
-1, /* timeout */
NULL, /* cancellable */
&error);
g_variant_get (variant, "(@*)", &real_value);
root = json_gvariant_serialize (real_value);
generator = json_generator_new();
json_generator_set_root (generator, root);
json = json_generator_to_data (generator, &json_length);
Мой питон код:
proxy = Gio.DBusProxy.new_for_bus_sync(Gio.BusType.SESSION,
Gio.DBusProxyFlags.NONE,
None,
'org.gnome.Shell',
'/org/gnome/Shell',
'org.gnome.Shell.Extensions',
None)
result = proxy.call_sync("ListExtensions",
None,
Gio.DBusCallFlags.NONE,
-1,
None)
real_value = ???
root = Json.gvariant_serialize(real_value)
generator = Json.Generator.new()
generator.set_root(root)
data = generator.to_data()
Проблема заключается в том, что я не вижу никакой g_variant_get() связывания для получения "real_value". Как я могу это сделать в python?
Спасибо!