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'.
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
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.
>
> 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.
>
> 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
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... ;)
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
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
>
>
>> 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
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
>
>
> 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
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),
>
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
>
> 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
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
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
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
>
>
> 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
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
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
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
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
22 matches
Mail list logo