simpleeval 0.9.10
So I just remembered that any valid assignment target can be used in a list comprehension! i.e. something like [... for foo[0] in ...] is valid syntax.
Expected behavior
>>> [x for x in ([None],) for x[0] in (15,)]
[[15]]
Actual behavior
>>> EvalWithCompoundTypes('[x for x in ([None],) for x[0] in (15,)]')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "LIBPATH/simpleeval.py", line 539, in eval
return super(EvalWithCompoundTypes, self).eval(expr)
File "LIBPATH/simpleeval.py", line 332, in eval
return self._eval(ast.parse(expr.strip()).body[0].value)
File "LIBPATH/simpleeval.py", line 343, in _eval
return handler(node)
File "LIBPATH/simpleeval.py", line 597, in _eval_comprehension
do_generator()
File "LIBPATH/simpleeval.py", line 592, in do_generator
do_generator(gi+1)
File "LIBPATH/simpleeval.py", line 589, in do_generator
recurse_targets(g.target, i)
File "LIBPATH/simpleeval.py", line 579, in recurse_targets
for t, v in zip(target.elts, value):
AttributeError: 'Subscript' object has no attribute 'elts'
simpleeval 0.9.10So I just remembered that any valid assignment target can be used in a list comprehension! i.e. something like
[... for foo[0] in ...]is valid syntax.Expected behavior
Actual behavior