Gestionando preferencias con GConf y Python
Esta receta es un pequeña introducción al uso de GConf desde un programa Python.
Introducción
GConf es el sistema de gestión de preferencias de GNOME. Es un gestor de persistencia genérico, algo así como una pequeña base de datos que permite almacenar globalmente las preferencias de los usuarios.
En esta receta sólo voy a contar cómo guardar y leer datos desde GConf, aunque es posible hacer otras cosas más sofisticadas tales como registrar un observador de una variable o conjunto de ellas para que GConf lo invoque cuando se produzca un cambio en su valor.
Guardar y recuperar una variable
Cada aplicación debe tener un lugar en el árbol. En el ejemplo será /app/prueba
:
Automatizando
Estos valores tienen tipo, que puede ser bool, int, float, string, pair, list o schema. Pero si tu aplicación tiene muchos datos que se deben cargar/guardar es bastante rollo tener que utilizar el método set/get adecuado dependiendo del tipo. Pero con Python se puede simplificar mucho esta tarea utilizando sus potentes mecanismos de introspección. La siguiente clase encapsula todo lo necesario:
Como se puede comprobar, el “truco” es que la clase se preocupa sólo de los atributos cuyo nombre empiece por “gc_”. Y aquí va un ejemplo de uso:
Se puede comprobar (y modificar) el valor de estas variables usando gconf-editor
de este modo:
La versión actualizada de este código esta disponible en un repositorio subversion: https://arco.inf-cr.uclm.es/svn/public/misc/gconf/autoprefs.py
Referencias
- GConf Reference Manual – C
- Introduction to GConf and GnomeVFS – C
- GConfTutorial – C#
- Mono Documentation :: GConf
- Introduction to the GConf library – bastante viejo