
On Fri, 15 May 2020 at 21:50, Eric V. Smith <eric@trueblade.com> wrote:
I fear that my comment on some text in the PEP was lost amidst the voting, so I'm repeating it here. This will probably screw up some threading, but this is the oldest message I have to reply to.
The PEP says "At most one additional item may be consumed from one of the iterators when compared to normal zip usage." I think this should be prefaced with "If ValueError is raised ...". Also, why does it say "at most one additional item". How could it ever be less than one?
It seems to me, looking at the Python implementation in the PEP (not the current or C implementation) that the crux is here: except StopIteration: if not strict: return if items: i = len(items) + 1 raise ValueError(f"zip() argument {i} is too short") So if it is not strict, it will return/stop consuming iterators. If it is strict but it runs out *not* on the first iterator it will also not consume from another iterator?
And I'm not sure I'd say "normal zip usage", maybe "the existing builtin zip function".
Depends on where we end up I guess, if we go with what Brandt' PEP says (makes sense to keep internally consistent) I'd say "zip without the strict=True flag" or similar.
Eric _______________________________________________ Python-Dev mailing list -- python-dev@python.org To unsubscribe send an email to python-dev-leave@python.org https://mail.python.org/mailman3/lists/python-dev.python.org/ Message archived at https://mail.python.org/archives/list/python-dev@python.org/message/ZEY2QHBS... Code of Conduct: http://python.org/psf/codeofconduct/