simpleeval
simpleeval copied to clipboard
Crashes when evaluating an empty string
When giving simpleeval an empty string it raises this error: Traceback (most recent call last):
Traceback (most recent call last):
File "simpleeval.py", line 613, in simple_eval
return s.eval(expr)
File "simpleeval.py", line 334, in eval
return self._eval(parsed.body[0].value)
IndexError: list index out of range
I propose to either throw an appropriate error or maybe return something. Wether that'd be an empty string or None
is too philosophical for me but maybe there's an PIP on this? Anyways, something like this should suffice:
parsed = ast.parse(expr.strip())
if len(parsed.body) > 0:
# and evaluate if not empty:
return self._eval(parsed.body[0].value)
else:
return None
An interesting note: eval("")
in normal Python raises a SyntaxError.
>>> eval("")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<string>", line 0
^
SyntaxError: unexpected EOF while parsing
Looks like this can be closed due to #108.