
In terms of language proposals, you can't just say "don't need values for"; the semantics have to be EITHER "consume and discard" OR "don't consume". We already have a perfectly good way of spelling "consume and discard":
x, y, _ = iter
You mean ( x, y, *_ = iter ) ? Since this has to be about non-consumption of the generator/iterator,
Ellipsis cannot be a zero-length deque. Thus this syntax would have to be restricted to the *last* entry, and it then means "don't check for more elements".
Yes, you are right to the *last* entry. (*last* depends on proposed syntax (spelling)).
The proposed semantics, if I understand you correctly, are:
try: _iter = iter(it) x = next(_iter) y = next(_iter) except StopIteration: raise ValueError # no "else" clause, we're done here
Yes, "roughly" this semantics is proposed, with some assumptions on _iter = iter(it). As I can see at the moment, these cases should behave differently:
x, y = [1,2,3,4] # must raise ValueError x, y = iter([1,2,3,4]) # should work
But at the same time, it violates current situation. So maybe, as you have said we need special syntax. I will think about it.
Start by perusing PEP 1, and the template in PEP 12:
https://www.python.org/dev/peps/pep-0001/ https://www.python.org/dev/peps/pep-0012/
The PEP editors (myself included) are here to help you; don't hesitate to reach out with questions.
Thank you! With kind regards, -gdg