| n | def safeval(expr, globals=None, locals=None): | n | def safeval(expression, globals=None, locals=None): | 
            |  | try: |  | try: | 
            | n | if 'globals().__setitem__' in expr or 'globals().__delitem__' in expr: | n | if 'globals().__delitem__' in expression or 'globals().__setitem__' in expression: | 
            |  | return None |  | return None | 
            |  | else: |  | else: | 
            | n | return eval(expr, globals, locals) | n | return eval(expression, globals, locals) | 
            |  | except NameError: |  | except NameError: | 
            | t | return expr | t | return expression | 
            |  | except Exception as obj: |  | except Exception as e: | 
            |  | return obj |  | return e |