This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author JBernardo
Recipients JBernardo
Date 2012-07-03.20:11:25
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1341346286.65.0.729285382693.issue15245@psf.upfronthosting.co.za>
In-reply-to
Content
`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`.
History
Date User Action Args
2012-07-03 20:11:26JBernardosetrecipients: + JBernardo
2012-07-03 20:11:26JBernardosetmessageid: <1341346286.65.0.729285382693.issue15245@psf.upfronthosting.co.za>
2012-07-03 20:11:26JBernardolinkissue15245 messages
2012-07-03 20:11:25JBernardocreate