New submission from João Bernardo <jbv...@gmail.com>: `ast.literal_eval` is very strict on names, so it seems to lack some "literals" that may be result of `repr` on built-in objects.
-> Obvious cases: ast.literal_eval('...') ast.literal_eval('Ellipsis') both result on ValueError. -> Not so obvious: nan_name = repr(float('nan')) ast.literal_eval(nan_name) # ValueError inf_name = repr(float('inf')) ast.literal_eval(inf_name) # ValueError ast.literal_eval("2e308") # == inf `nan` and `inf` are not literals (at least "inf" should be, but that's another problem), but their representations are not possible to be evaluated unlike any other float numbers with maybe precision loss. I think `literal_eval` should include these 3 names the same way it accepts True, False and None. Another case, that I personally don't care, but seems plausible would be `NotImplemented`. ---------- components: Library (Lib) messages: 164621 nosy: JBernardo priority: normal severity: normal status: open title: ast.literal_eval on some literals type: enhancement versions: Python 3.3 _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue15245> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com