Quì ho trovato alcuni esempi interessanti http://wiki.python.org/moin/ConfigParserShootout c' è solo da capire come si installano i moduli
Il giorno 07 giugno 2013 15:04, Daniele San Giovanni < sangiovanni.dani...@gmail.com> ha scritto: > Ci sarebbe ConfigParser che sarebbe ottima perchè permette di impostare > il link al file di configurazione specifico nel momento in cui viene > istanziato l' oggetto. > > Il problema è che i file di configurazione contengono una cosa del tipo: > > config_charts_daily = [ > { > "general" : { > 'label' : 'Potenza Attiva', #Etichetta associata alla > curva > 'y_axis_umis': 'W', #Unità di misura per l' > asse y > }, > "csv" : { #Le colonne vengono > numerate a partire da 0 > 'x_csv_column_number' : 0, #Numero colonna csv da > cui prelevare i dati da riportare sul grafico (asse x) > 'y_csv_column_number' : 3, #Numero colonna csv da > cui prelevare i dati da riportare sul grafico (asse y) > 'y_factor' : 0.01 #Fattore moltiplicativo > per l' asse y. > } > } > ] > > Stamattina ho fatto un po' di ricerche su come poter gestire questa > situazione ma poi ho abbandonato. > Adesso sto mettendo tutto in una classe in modo da selezionare di volta in > volta la configurazione desiderata. > Non è l' ideale ma provvisoriamente si potrebbe utilizzare. > L' eval prendendo le dovute precauzioni può anche essere utilizzato. > > > > Il giorno 07 giugno 2013 12:22, enrico franchi <enrico.fran...@gmail.com>ha > scritto: > > 2013/6/6 Daniele Varrazzo <p...@develer.com>: >> >> > Spiegami la differenza tra import ed eval. >> >> Direi che la questione principale e' che mentre ci vuole >> un'atteggiamento pro-attivo da parte dello sviluppatore per creare un >> problema con import [0][1], con eval basta una disattenzione. >> >> E' chiaro che se ad eval passi solo qualcosa di sanitizzato in varia >> maniera non corri nessun rischio particolare. Il problema e' che >> spesso, vista la potenza di eval, molti appena scopertolo ne abusano. >> Questo non vuole dire ovviamente *non usare eval*. >> >> Credo che la posizione di lisper su eval sia sintomatica: eval c'e' da >> piu' di 50 anni. >> La prima risposta qua mi sembra molto valida: >> >> http://stackoverflow.com/questions/2571401/why-exactly-is-eval-evil >> >> abstract: >> per i principianti: in generale non e' necessario, ci sono metodi piu' >> robusti di fare le stesse cose >> per gli un po' meno principianti: ci sono le macro >> A general important reason to avoid EVAL: it is often used for ugly hacks. >> >> Ora, concretizziamo su Python. Sui principianti (o su quelli che anche >> se principianti non sono), spesso e volentieri ci sono altri modi di >> fare le cose, che sono, a mio avviso, piu' strutturati e puliti. >> >> Ci sono anche casi in cui eval e' semplicemente la strada piu' comoda >> e sensata, senza passare per tre metaclassi e due class-decorator. >> Specie perche' noi non abbiamo le macro. Vedi per esempio >> l'implementazione di Raymond delle namedtuples -- almeno, credo sia di >> Raymond --, che alla fine dei conti chiama exec su uno stringone >> Python. E non mi sognerei di dire che e' insicuro: gli input sono ben >> controllati e comunque e' qualcosa che uso al posto della definizione >> di una classe... dove potrei comunque fare le peggio cose, e' input >> mio, non input utente. >> >> Pero' la regola, nel dubbio, meglio evitare features potenzialmente >> pericolose, a mio avviso sta comunque in piedi. >> >> >> --- >> [0] per esempio prendere una stringa dall'utente, salvarla in un >> modulo e importarla. >> [1] a naso, il caso in cui si usa import per un file di configurazione >> e' il cugino buono di quello la sopra: non e' insicuro nel senso che >> chi scrive la configurazione e' chi esegue il programma, su una >> macchina su cui ha i permessi, etc etc etc. E' anche vero che va >> valutato il rapporto costo/beneficio fra avere un file di >> configurazione turing-completo -- quindi flessibilita' massima -- e il >> fatto che appunto, errori di configurazione sono in generale piu' >> difficili da capire -- perche' il parsing e' fatto da Python, che di >> per se non ha idea della semantica intesa della configurazione, ma sa >> solo eseguire python --. >> >> >> -- >> . >> ..: -enrico- >> _______________________________________________ >> Python mailing list >> Python@lists.python.it >> http://lists.python.it/mailman/listinfo/python >> > > > > -- > Daniele San Giovanni > -- Daniele San Giovanni
_______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python