Descripción del módulo de Configuración de Pyragua
Es importante para el usuario tener una herramienta de programación que se acople a sus necesidades, y que de alguna manera facilite su experiencia en el momento de programar pensando en ello es una caracteristica importante contar con un administrador de configuración en la versión .4. A continuación se listan las características más generales que debe cumplir el administración de configuración.
Caracteristicas Generales
* Configuración de plugins(plugins a futuro)
* Permitir conectar plugins al archivo
* Configuración de la apariencia (permitir que la shell este dentro de la vista principal de la IDE o ser una ventana extra)
* Regresar a la configuración por defecto (configuració inicial)
* Configuración de templates
Ideas para la implementación
Dado que XML podría resultar complicado para la implementación puesto que el fichero de configuración podría tener bastantes lineas entonces en su lugar se usará el módulo ConfigParser? dado que es muy útil a la hora de leer y escribir archivos de configuración al estilo de los archivos .ini (los de windows) ,con distintas secciones delimitadas por un nombre de sección y pares de la forma clave-valor (uso de diccionarios) lo que facilitara el trabajo.
Descripción General
Necesidades de los Archivos de Configuración
- Dada la complejidad que tendrá Pyragua, se hace necesario utilizar un administrador de configuración, dado que se espera que Pyragua no maneje un único archivo de configuración, sino más bien que de alguna manera, se puedan manejar diferentes archivos de configuración.
- El administrador de configuraciones debe encargarse de proveer una capa de acceso unificada a todos los archivos de configuración.
- El administrador debe proveer mecanismos para agregar opcines, secciones, y también archivos.
- Se debe manejar por ejemplo, una carpeta para archivos de configuración dentro de la carpeta de Pyragua (.pyragua) ubicada en el home del usuario.
- Si no se encuentra el archivo de configuración, se debe tratar de crear, junto con la carpeta .pyragua y con un contenido inicial.
- Pyragua debe ser funcional aún sin ningún archivo de configuración, pero esto quizás no depende del administrador.
Archivos de Configuración
Lista de algunos archivos de configuración que manejará Pyragua:
- Principal
- Pyragua tendrá un archivo de configuración principal, que contendrá la información por defecto. Este archivo, en caso de que no se encuentre, se creará bajo la carpeta .pyragua.
- Combinaciones de Teclas
- Un archivo de configuración contendrá los atajos de pyragua, de forma que estos puedan ser configurables.
- Interfaz
- Un archivo de configuración que contendrá configuraciones relacionadas con la interfaz gráfica de Pyragua. El encargado de crearlo es PyraguaUI.
- Plugins
- Los plugins pueden crear sus propios archivos de configuración para sus necesidades. El administrador debe permitir esto.
Ideas para la implementación
Los métodos get del archivo de configuración deben recibir como último parámetro un valor por defecto, de forma que siempre que se use, y dado que no se tenga un determinado parámetro, no se afecte el funcionamiento de pyragua.
ConfigParser? para sus archivos de configuración maneja una jerarquía de Seccions->Opciones. Un archivo es de la forma
[Seccion1] opcion = valor opcion2 = valor2 [Seccion2] opcion21 = valor21
El get es de la forma get("Seccion1", "opcion") lo cual retorna valor. Dado que se manejarán diversos archivos de configuración, pero se espera tener un administrador de configuración unificado, se debe manejar un tercer nivel en la jerarquía, algo de la forma Archivo -> seccion -> opcion. Suponiendo que el archivo anterior se llama pyragua.conf, el get sería de la forma get("pyragua", "Seccion1". "opcion") (En este caso se ignoró la extensión, pero quizás no sea conveniente que sea así.
Para manejar un valor por defecto la función get será de la forma get("archivo", "seccion", "opcion", "valorpordefecto"). Si no encuentra el archivo, o la seccion, o la opcion, se retornará el valor por defecto. También si se levanta algún tipo de excepción por un formato inválido de un archivo de configuración sucederá lo mismo, de esta forma pyragua continuará utilizando el valor por defecto. También se puede pensar que se agregue el valor por defecto, si es que no se encuentra.
Se puede pensar que por defecto se leans ciertos archivos de configuración de una carpeta, o que se interpreten los archivos por demanda, es decir, al realizar un get sobre un archivo, si este no se ha leído aún, se lee, pero se mantendrá cargado para próximas consultas.
Interfaz del módulo de Configuración
API del módulo de configuración.
