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
_______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python