That exact same thing exists mate :-) See ast.literal_eval On Tue, Jun 14, 2016 at 1:14 AM <jab@math.brown.edu> wrote:
(Riffing off some discussion in another thread, I had another idea I wanted to throw out there.)
Given that Eval Really Is Dangerous[1], has something like this ever been considered?:
int(str(42)) 42 float(str(42.0)) 42.0 bool(str(False)) # :( True eval_literal('42') 42 eval_literal('42.0') 42.0 eval_literal('False') # :) False eval_literal('', default=False) # shout out to PEP 463 / Michael Selik False
i.e. An extremely limited version of eval, possibly just for literals or even literal atoms, that would make it safe?
[1] http://nedbatchelder.com/blog/201206/eval_really_is_dangerous.html _______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/