Re: [Python] alternative ad eval

2014-03-20 Per discussione Riccardo Lemmi
Balan Victor wrote: >> >> Siccome a naso quello che vuoi fare e' un semplice expression >> language, hai comunque bisogno, a mio avviso di un vero parser. >> Davvero, e' roba facile da scrivere, una volta che usi la libreria >> giusta, e' piu' robusto e quando si spacca si capisce meglio perche'.

Re: [Python] alternative ad eval

2014-03-19 Per discussione Balan Victor
Il giorno 19 marzo 2014 09:46, enrico franchi ha scritto: > > 2014-03-19 6:05 GMT+00:00 Balan Victor : > > Ci lavoro tutti i giorni sul monitoraggio e quelli free e open source >> hanno dei grossi limiti di integrazione con vari strumenti enterprise e >> pure di stabilità mentre quelli commercial

Re: [Python] alternative ad eval

2014-03-19 Per discussione enrico franchi
2014-03-19 6:05 GMT+00:00 Balan Victor : > Ci lavoro tutti i giorni sul monitoraggio e quelli free e open source > hanno dei grossi limiti di integrazione con vari strumenti enterprise e > pure di stabilità mentre quelli commerciali ti impongono la loro filosofia, > o la usi o non funziona nulla.

Re: [Python] alternative ad eval

2014-03-18 Per discussione Balan Victor
> > Esegue un eval, ma restituisce l'AST del codice compilato, in modo da > validare il codice da eseguire. Risparmi un bel pò di tempo rispetto a > pyparsing, perchè usi la grammatica di Python. Lo svantaggio è che > probabilmente devi gestire più casi. > Interessante, la provo appena riesco.

Re: [Python] alternative ad eval

2014-03-18 Per discussione Balan Victor
> > C'e' tanta roba forte e facile gia' pronta. Non vi consiglio di farvi in > casa queste cose. > Due o tre cose sul monitoraggio le ho imparate, via... ;) > Ci lavoro tutti i giorni sul monitoraggio e quelli free e open source hanno dei grossi limiti di integrazione con vari strumenti enterprise

Re: [Python] alternative ad eval

2014-03-18 Per discussione enrico franchi
2014-03-18 13:05 GMT+00:00 Balan Victor : > Attualmente lo scopo è solo quello di valutare la fattibilità di un > piccolo software di monitoraggio. C'e' tanta roba forte e facile gia' pronta. Non vi consiglio di farvi in casa queste cose. Due o tre cose sul monitoraggio le ho imparate, via... ;)

Re: [Python] alternative ad eval

2014-03-18 Per discussione Manlio Perillo
2014-03-18 14:02 GMT+01:00 Dario Bertini : > 2014-03-18 13:39 GMT+01:00 Manlio Perillo : > > eval è relativamente sicuro, dato che può eseguire solo espressioni, e > non > > statement completi come exec. > > Lo puoi rendere ancora più sicuro limitando il namespace, ad esempio: > > purtroppo, non b

Re: [Python] alternative ad eval

2014-03-18 Per discussione Manlio Perillo
2014-03-18 13:43 GMT+01:00 Balan Victor : > >> Riguardo "value ** value" temi un attacco di tipo DoS? >> > No no questo codice mi serve nella parte backend. Temo che un utente, per > semplice distrazione, faccia andare in crash l'applicazione. > > Attacco DoS inconsapevole :) In questo caso la so

Re: [Python] alternative ad eval

2014-03-18 Per discussione Balan Victor
> > >> IMHO Sarebbe sempre bello avere un po' più di contesto in questi casi per > capire qual è l'obbiettivo finale... Tipo in che contesto girerà il codice, > chi/cosa fornirà input, quale sarà l'output ecc.. > Almeno, ovviamente, che non sia un quesito puramente accademico :) Attualmente lo sc

Re: [Python] alternative ad eval

2014-03-18 Per discussione Dario Bertini
2014-03-18 13:39 GMT+01:00 Manlio Perillo : > eval è relativamente sicuro, dato che può eseguire solo espressioni, e non > statement completi come exec. > Lo puoi rendere ancora più sicuro limitando il namespace, ad esempio: purtroppo, non basta: http://nedbatchelder.com/blog/201206/eval_really_is

Re: [Python] alternative ad eval

2014-03-18 Per discussione Balan Victor
> > > Riguardo "value ** value" temi un attacco di tipo DoS? > No no questo codice mi serve nella parte backend. Temo che un utente, per semplice distrazione, faccia andare in crash l'applicazione. > In questo caso se vuoi limitare anche le possibili espressioni, l'unica > alternativa e scrivert

Re: [Python] alternative ad eval

2014-03-18 Per discussione Manlio Perillo
2014-03-17 22:57 GMT+01:00 Balan Victor : > Ho un array di tuple cosi formate da 3 elementi: > (int|float|boolean|string|datetime|..., string, boolean). Es: > > [ > (10, "value >= 1", True), > ("Ciao", "o in value", True), > (True, "value == False", False), > (92.5f, "value >= 92.0f", True), >

Re: [Python] alternative ad eval

2014-03-18 Per discussione Dario Bertini
Sarebbe interessante vedere i requisiti per capire se prevedano effettivamente che l'utente possa passare qualunque oggetto python (magari da loro definito)... comunque: 2014-03-18 9:14 GMT+01:00 Balan Victor : >> >> Ehm.. con la grammatica del linguaggio che vuoi parsare. >> >> Ma lascia che te

Re: [Python] alternative ad eval

2014-03-18 Per discussione Balan Victor
> > Siccome a naso quello che vuoi fare e' un semplice expression language, > hai comunque bisogno, a mio avviso di un vero parser. > Davvero, e' roba facile da scrivere, una volta che usi la libreria giusta, > e' piu' robusto e quando si spacca si capisce meglio perche'. > quindi pyparsing? Facil

Re: [Python] alternative ad eval

2014-03-18 Per discussione Lorenzo Sutton
On 17/03/2014 22:57, Balan Victor wrote: Ho un array di tuple cosi formate da 3 elementi: (int|float|boolean|string|datetime|..., string, boolean). Es: [ (10, "value >= 1", True), ("Ciao", "o in value", True), (True, "value == False", False), (92.5f, "value >= 92.0f", True), ] Il primo e

Re: [Python] alternative ad eval

2014-03-18 Per discussione enrico franchi
2014-03-18 8:14 GMT+00:00 Balan Victor : > però come parser immagino non intendevi proprio questo Siccome a naso quello che vuoi fare e' un semplice expression language, hai comunque bisogno, a mio avviso di un vero parser. Davvero, e' roba facile da scrivere, una volta che usi la libreria giust

Re: [Python] alternative ad eval

2014-03-18 Per discussione Riccardo Lemmi
Balan Victor wrote: > Ho un array di tuple cosi formate da 3 elementi: > (int|float|boolean|string|datetime|..., string, boolean). Es: > > [ > (10, "value >= 1", True), > ("Ciao", "o in value", True), > (True, "value == False", False), > (92.5f, "value >= 92.0f", True), > ] > Il primo element

Re: [Python] alternative ad eval

2014-03-18 Per discussione Balan Victor
> > > Ehm.. con la grammatica del linguaggio che vuoi parsare. > > Ma lascia che te lo dica... secondo me rischi di ficcarti in un mezzo > ginepraio. Il fatto che tu abbia bisogno di questo secondo campo cosi' > flessibile non ottimo indice che le cose saranno facili. > > Per il resto puoi definirt

Re: [Python] alternative ad eval

2014-03-17 Per discussione enrico franchi
2014-03-17 23:14 GMT+00:00 Balan Victor : > > Il giorno 17 marzo 2014 23:29, enrico franchi ha > scritto: > > >> 2014-03-17 21:57 GMT+00:00 Balan Victor : >> >> Conosco i rischi di eval e vorrei evitare di usarlo però non riesco a >>> trovare nulla di altrettanto semplice e con le stesse potenzia

Re: [Python] alternative ad eval

2014-03-17 Per discussione Balan Victor
Il giorno 17 marzo 2014 23:29, enrico franchi ha scritto: > > 2014-03-17 21:57 GMT+00:00 Balan Victor : > > Conosco i rischi di eval e vorrei evitare di usarlo però non riesco a >> trovare nulla di altrettanto semplice e con le stesse potenzialità. >> > > La soluzione 'semplice' e' scrivere un pi

Re: [Python] alternative ad eval

2014-03-17 Per discussione enrico franchi
2014-03-17 21:57 GMT+00:00 Balan Victor : > Conosco i rischi di eval e vorrei evitare di usarlo però non riesco a > trovare nulla di altrettanto semplice e con le stesse potenzialità. > La soluzione 'semplice' e' scrivere un piccolo parser per le espressioni che ti servono. E' meno complicato di

[Python] alternative ad eval

2014-03-17 Per discussione Balan Victor
Ho un array di tuple cosi formate da 3 elementi: (int|float|boolean|string|datetime|..., string, boolean). Es: [ (10, "value >= 1", True), ("Ciao", "o in value", True), (True, "value == False", False), (92.5f, "value >= 92.0f", True), ] Il primo elemento della tupla può essere qualunque tipo o