On 06/06/2017 11:38 AM, Jon Ribbens wrote: > On 2017-06-06, Peter Otten <__pete...@web.de> wrote: >> ...but not the empty string: >> >>>>> float("") >> Traceback (most recent call last): >> File "<stdin>", line 1, in <module> >> ValueError: could not convert string to float: >> >> Maybe there were some backward compatibility concerns that I lack the >> fantasy to imagine. > > It's a little odd, PyFloat_FromString just calls: > > PyErr_Format(PyExc_ValueError, > "could not convert string to float: %R", v); > > which should be appending the repr() of the argument to the error > message, and there's no code I can see anywhere that would be > special-casing the empty string and avoiding inserting "''". > If the string is empty, then the line:
if (end != last) { does not evaluate to true, so you end up skipping the error you're referring to and instead executing these lines: else if (x == -1.0 && PyErr_Occurred()) { return NULL; } So maybe the logic should be fixed here since the empty string is basically taking a separate logical path than it philosophically should (imo). Cheers, Thomas -- https://mail.python.org/mailman/listinfo/python-list