If a GSettings schema exists and has been compiled, there is usually no problem reading from it. However, if it doesn't exist, an error is usually thrown which cannot be handled. Try this in a Python file or console:
from gi.repository import Gio
try:
settings = Gio.Settings("com.example.doesnotexist")
except:
print "Couldn't load those settings!"
I'm being as broad as possible with the except
, but this is the error that is thrown.
(process:10248): GLib-GIO-ERROR **: Settings schema 'com.example.doesnotexist' is not installed
What I basically want to do is find out if the com.example.doesnotexist
schema exists or not; if not, then tell the user to run my setup script before using my application. Any other suggestions on doing this would be welcome.
You can use GSettingsSchemaSource. For instance:
> from gi.repository import Gio
> source = Gio.SettingsSchemaSource.get_default()
> source.lookup("org.gnome.Epiphany", True)
<GSettingsSchema at 0xa462800>
> source.lookup("com.example.doesnotexist", True)
>
According to the documentation, lookup should return NULL
(None
) if the schema does not exists, however in PyGObject returns NoneType. Anyway, you can use it to check whether the schema exists or not.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With