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 elemento della tupla può essere qualunque tipo o classe di > python. Il secondo elemento è una espressione da applicare sulla tupla > e che deve restituire True or False(value si riferisce al primo > elemento della tupa) Il terzo elemento è il risultato dell'operazione > appena sopra. > > A intervalli regolari ho bisogno di scorrere l'array sopra e > aggiornare il valore del terzo elemento. > Ho pensato di usare eval in questo modo: > > def check_status(value, eval_string): > rc = eval(eval_string) > if rc is not bool: raise WrongEvalString() > return rc > > Conosco i rischi di eval e vorrei evitare di usarlo però non riesco a > trovare nulla di altrettanto semplice e con le stesse potenzialità. > > NB: In realtà la stringa che fa la validazione può essere impostata > solo da qualcuno di autorizzato quindi il rischio che mi cancelli > tutto il fs non ci dovrebbe essere, e non dovrebbero nemmeno fare > operazioni del tipo "value ** value" però in ogni caso vorrei trovare > qualcosa che mi metta al sicuro da questo tipo di operazioni. > > grazie
Alcune librerie ci sono, ad esempio: https://pypi.python.org/pypi/RestrictedPython ce ne sono anche altre: cerca "restricted python" su pypi. -- Riccardo Lemmi _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python