[Python] alternative ad eval

Balan Victor balan.victor0 a gmail.com
Mar 18 Mar 2014 00:14:26 CET


Il giorno 17 marzo 2014 23:29, enrico franchi <enrico.franchi a gmail.com> ha
scritto:

>
> 2014-03-17 21:57 GMT+00:00 Balan Victor <balan.victor0 a gmail.com>:
>
> 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 quello che sembra, e' molto robusto perche' hai il
> completo controllo e non hai rischi.
>
> Ci avevo pensato però non ho trovato granché che mi aiutasse a fare
qualche prova. Inoltre visto che l'utente, se ha bisogno, può definire
oggetti di vario tipo per essere usati come value può anche definire una
funzione check per l'oggetto e dentro la stringa da passare ad eval può
scrivere "value.check()". Questo come lo gestisco nel parser? E come li
passo value ? Questo è un caso estremo, però può accedere. I

n ogni caso mi accontento di farlo funzionare solo con int, float, bool,
string e datetime però non so da dove cominciare.



> Altrimenti Python viene con un po' di librerie per parsare python. Il
> problema e' che una completa sandbox e' (l'ultima volta che mi ero
> informato) essenzialmente impossibile per come funziona Python. Quindi hai
> comunque rischi.
>
tipo pyparser? L'ho guardato ma la documentazione non mi sembra molto
chiara e sembra che sia stato abbandonato ...
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20140318/418da14f/attachment.html>


Maggiori informazioni sulla lista Python