[pyar] Leyendo archivo de configuración

Ricardo Kirkner ricardokirkner en gmail.com
Jue Oct 7 12:18:54 ART 2010


Otro beneficio de configglue es que ya está hecha la integración con
django (django-configglue), lo que te permite usar configglue para tus
archivos de configuración de django.

Más beneficios de configglue:

- includes: te permite incluir configuraciones de otros archivos,
separando lógicamente tu configuración (por ej, 1 archivo por entorno:
dev, staging, prod)


Más beneficios de django-configglue:

- python manage.py settings (sin parametros) : te muestra la lista de
opciones que podes sobrecargar desde la linea de comandos
- python manage.py settings --show : te muestra las opciones
configuradas, en el formato compatible con django
- python manage.py settings --validate : ejecuta el validador y
reporta errores (te permite atrapar errores de config antes de darle
restart a apache)




2010/10/7 John Rowland Lenton <john.lenton en canonical.com>:
> On Wed, Oct 06, 2010 at 08:20:09PM -0300, Maximiliano Robaina wrote:
>> Hola gente,
>>
>> ¿Que módulo recomiendan usar para leer archivos de configuración ?
>> El archivo de configuración podría tener estructuras de definición como
>> por ejemplo un dict por lo tanto, en principio estaría descartado
>> ConfigParser.
>>
>> Entonces, que otras opciones recomiendan ?
>>
>> - ConfigObj  [http://code.google.com/p/configobj/]
>> - config  [http://www.red-dove.com/config-doc/]
>> - json
>>
>> otros ?
>
> configglue, a full :)
>
> Suponete que tenés un archivo pupo.conf, de la pinta
>
> ---8<--(pupo.conf)---
> [__main__]
> foo = foo_d
>
> [foo_d]
> bar = 42
> ---(fin pupo.conf)---
>
> y el código python
>
> ---8<--(pupo.py)---
> from pprint import pprint
> from configglue.pyschema import (schemaconfigglue, SchemaConfigParser,
>                                 DictConfigOption, IntConfigOption, Schema)
>
> # armar el esquema
> class MySchema(Schema):
>    foo = DictConfigOption({'bar': IntConfigOption()},
>                           help="bla bla bla")
> parser = SchemaConfigParser(MySchema())
> # levantar la config de un archivo; parser hereda de ConfigParer así
> # que con esto ya estás
> parser.readfp(file("pupo.conf"))
>
> # integrarlo con opciones de línea de comando (opcional!)
> op, opts, args = schemaconfigglue(parser)
> # op es un OptionParser, opts es su objeto Values, args son los
> # argumentos de línea de comandos que no eran opciones
> pprint(opts.foo)
>
> ---(fin pupo.py)---
>
> esto te da: un esquema en python, con validadores y toda la
> huevada. Un archivo de configuración estático y muy sencillo (dato
> insólito: a los sysadmins no les gusta ni un poquito configurar
> escribiendo en un archivo python). Y te toma valores desde la línea de
> comandos, también.
>
> qué no te da: no te da poder cambiar los valores del diccionario desde
> línea de comandos. Todavía; La parte del glue para DictConfigOptions
> no está hecha.
>
> no te toma opciones de variables de entorno, todavía.
>
> Por eso no le pusimos "1.0".
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.10 (GNU/Linux)
>
> iQEcBAEBCAAGBQJMreAnAAoJEIMEmW3KgE4RdOUH/3SSeLIFR5PVskDqrzFwVnOb
> iWiFhJq72LZDK/cDPXJ/n+cLGEoNnVIrti6yZ5knOyBBW4+n68SfU322sDQisfV+
> avJM1+TOjgXBaczqtMzy7XOxGeFwK6j+fxXGssnxTx7oGQSlZyJEOsKGj6NrugE6
> HrDWj9jddkULKef7ukej2dFSAq9VBTX5YmYBrEq4NTZ9oN378+gFcxkfVTQrMUpm
> Iqp+7q2qCEupTltwkRWw6QFY98vec3/+Dk6pZLukaBA7yBP7FlNov0VgzSwpgw1n
> jTS9tDhEMQZM1MsiN1AfYLxM1qgLhaPgypAEhp4FK3TzxfNuB8tJ5GVhWIJ6Suo=
> =OQmB
> -----END PGP SIGNATURE-----
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>



More information about the pyar mailing list