Re: ConfigParser y secciones en mayuscula/minuscula

Oswaldo Hernández <[email protected]>
Newsgroups gmane.comp.python.general.castellano
Message-ID <[email protected]>
Arnau Sanchez escribió:
> Oswaldo Hernández wrote:
> 
>> El problema con el que me encuentro es que si intento leer una sección 
>> llamada '[general]' y el usuario la ha escrito como '[GENERAL]' ó 
>> '[General]' el modulo ConfigParser no la encuentra.
> 
> En general, quien toca un fichero de configuración debería saber lo que 
> está haciendo. Pero en fin, supongo que es un caso especial de usuario 
> no técnico.
> 
>> Veo que una vez que el objeto ConfigParser ha leido el archivo, tiene 
>> la propiedad '_sections' que es un diccionario con todo el contenido 
>> del archivo ini. La unica solución que se me ocurre hacer una copia de 
>> este diccionario convirtiendo los nombres de seccion y clave a 
>> minúsculas.
> 
> Se me ocurre otra forma, mira:
> 
> http://docs.python.org/library/configparser.html#ConfigParser.ConfigParser
> 
> El segundo parámetro de ConfigParser() es el tipo de diccionario que 
> usará internamente. Si le pasas una clase que implemente un diccionario 
> con claves case-insensitive, como por ejemplo ésta de aquí:
> 
> http://code.activestate.com/recipes/283455/
> 
> Podrás hacer algo así:
> 
> parser = ConfigParser(dict_type=caselessDict)
> parser.read("file.conf")
> parse.get("MySECtiON", "var1")
> 

Desconocia que se le podia indicar el tipo de diccionario a utilizar, en la documentacion no lo 
dice, o no lo he sabido encontrar.

De todas formas durante este rato he hecho la modificacion del diccionario _sections derivando la 
clase ConfigParser y sobreescribiendo el metodo 'read' de forma que despues de hacer la lectura, 
crea un nuevo diccionario con las secciones y clave en minúsculas y lo reasigna a _sections.
Estoy haciendo pruebas y en principio parece que funciona bien.


>> NOTA: Sorry si este mensaje llega dos veces, lo envie anteriormente 
>> con el from erroneo.
> 
> Tranquilo, llegó sólo una; si lo mandas desde una cuenta no registrada 
> el mensaje queda en espera de aprobación, a mi me ha pasado varias veces 
> (lo que no sé es si los administradores se miran esos mensajes o no).
> 
Se quedarán en el limbo de los mensajes :)


Gracias.

-- 
*****************************************
Oswaldo Hernández
oswaldo (@) soft-com (.) es
*****************************************
PD:
Antes de imprimir este mensaje, asegúrese de que es necesario.
El medio ambiente está en nuestra mano.
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.