Il giorno 26/nov/2013, alle ore 12:23, Daniele Varrazzo <p...@develer.com> ha scritto:
> On 2013-11-24 08:32, Giovanni Porcari wrote: >> Il giorno 24/nov/2013, alle ore 02:33, Daniele Varrazzo >> <p...@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. Beh Daniele non volevo complicare le cose tirando in ballo anche la tipizzazione. Ma hai ragione e infatti nel nostro uso abituale abbiamo modo di tipizzare facilmente gli attributi usando il suffisso '::'+tipo mentre volendo tipizzare il contenuto usiamo l'attributo 'riservato' _T. In questo caso l'esempio completo sarebbe stato port="5432::L" invece di port="5432". Mi rendo conto che possono sembrare soluzioni 'acrocchiate' ma nella nostra esperienza la leggibilità e la flessibilità sono buone e il formato e semplice da spiegare e molto flessibile. Usando un parser nostro possiamo usare tutti i tipi che vogliamo e il contenitore che risulta è molto facile da usare e si mappa immediatamente ad un tree in una pagina web. Quindi la pigrizia ci fa amare XML magari il dialetto nostro che è per artigiani pigri ;) G _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python