[pyar] Leyendo archivo de configuración

John Rowland Lenton john.lenton en canonical.com
Jue Oct 7 11:58:49 ART 2010


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".
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 490 bytes
Desc: Digital signature
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20101007/73eb7e95/attachment.sig>


More information about the pyar mailing list