[Python] parsing config file

Daniele Varrazzo piro a develer.com
Mar 26 Nov 2013 12:23:46 CET


On 2013-11-24 08:32, Giovanni Porcari wrote:
> Il giorno 24/nov/2013, alle ore 02:33, Daniele Varrazzo
> <piro a develer.com> ha scritto:

>> Ma un file di configurazione: ma che ci vuole sax per parsare un 
>> paio di fetenti coppie chiave valore? Ancora a pensare solo per un 
>> secondo se un valore logico lo devi scrivere come 1, true oppure v? 
>> C'è di meglio, no?

> <db>
>   <development implementation="postgres" host="localhost" port='5432'
> password="mypassword" user="myuser"/>

> Io ad esempio lo leggo così:
>
> config=Bag(myfile)
> development_port=config('db.development?port')
>>>> '5432'

Esattamente quello che intendevo: lo leggi male. L'interfaccia è fica e 
comodissima, ne sono certo, ma l'informazione nel file è incompleta. 
Passa la stringa "5432" ad una funzione socket e quella esploderà:

     >>> s.listen(('localhost', '5432'))
     TypeError: an integer is required

Tra l'altro "5432" non è chiaramente una porta valida: è maggiore di 
65535:

     >>> "5432" > 65535
     True

Ad un file di configurazione si chiedono poche cose. Tra queste secondo 
me sono abbastanza importanti:

- essere editabile a mano
- essere fortemente tipizzato

e ad xml mancano entrambe.

-- Daniele



Maggiori informazioni sulla lista Python