Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #102285
| From | Chris Angelico <rosuav@gmail.com> |
|---|---|
| Newsgroups | comp.lang.python |
| Subject | Re: Cannot step through asynchronous iterator manually |
| Date | 2016-01-30 19:09 +1100 |
| Message-ID | <mailman.115.1454141369.2338.python-list@python.org> (permalink) |
| References | <n8hjmt$b8n$1@ger.gmane.org> <CALwzid=sSDSm8hdAN+ORJ54A_jEu9Wc8103iqGKAah8mrj-TXw@mail.gmail.com> |
On Sat, Jan 30, 2016 at 7:02 PM, Ian Kelly <ian.g.kelly@gmail.com> wrote: > On Jan 29, 2016 11:04 PM, "Frank Millman" <frank@chagford.com> wrote: >> >> Hi all >> >> To loop though an iterator one usually uses a higher-level construct such > as a 'for' loop. However, if you want to step through it manually you can > do so with next(iter). >> >> I expected the same functionality with the new 'asynchronous iterator' in > Python 3.5, but I cannot find it. >> >> I can achieve the desired result by calling 'await aiter.__anext__()', > but this is clunky. >> >> Am I missing something? > > async for x in aiter: > pass Yeah, he wants to single-step it. A regular for loop is equivalent to calling next() lots of times, and you can manually call next(). Common usage: Skip a header row before iterating over the rest of a file. So how do you do the same thing with an async iterator? I'm not sure there's a way, currently. That's the question. Of course, you can always do this: async for x in aiter: break as an equivalent to "x = next(aiter)", but that's just stupid :) ChrisA
Back to comp.lang.python | Previous | Next | Find similar | Unroll thread
Re: Cannot step through asynchronous iterator manually Chris Angelico <rosuav@gmail.com> - 2016-01-30 19:09 +1100
csiph-web