[issue4806] Function calls taking a generator as star argument can mask TypeErrors in the generator
Daniel Urban
report at bugs.python.org
Sun Mar 6 13:35:12 CET 2011
Daniel Urban <urban.dani+py at gmail.com> added the comment:
I think the patch isn't entirely correct. It uses PyIter_Check for detecting the case when an *iterable* raises TypeError, but that function actually checks for an *iterator*. The check on the tp_iter member mentioned by Amaury Forgeot d'Arc probably would be better, but even that wouldn't detect every iterable: "Its presence normally signals that the instances of this type are iterable (although sequences may be iterable without this function)." (http://docs.python.org/dev/py3k/c-api/typeobj.html#PyTypeObject.tp_iter) (Apparently any object with a __getitem__ is iterable. By the way, collections.abc.Iterable also doesn't detect this case.)
----------
versions: +Python 3.3
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue4806>
_______________________________________
More information about the Python-bugs-list
mailing list