Async Iteration
Yes, you guessed it right; the abracadabra collections made the exact same mistakes for the async iterablors (or was it "iteramblers"...?).
But fret not; the optype alternatives are right here:
| operator | operand | |||
|---|---|---|---|---|
| expression | function | type | method | type |
anext(_) |
do_anext |
DoesANext |
__anext__ |
CanANext[+V] |
aiter(_) |
do_aiter |
DoesAIter |
__aiter__ |
CanAIter[+R: CanAnext] |
But wait, shouldn't V be a CanAwait? Well, only if you don't want to get
fired...
Technically speaking, __anext__ can return any type, and anext will pass
it along without nagging. For details, see the discussion at python/typeshed#7491.
Just because something is legal, doesn't mean it's a good idea (don't eat the
yellow snow).
Additionally, there is optype.CanAIterSelf[R], with both the
__aiter__() -> Self and the __anext__() -> V methods.