To address the original question, I don't believe a next() equivalent for async iterables has been added to the standard library yet. Here's an implementation from one of my projects that I use to manually get the next value: https://bpaste.net/show/e4bd209fc067. It exposes the same interface as the synchronous next(). Usage:
await anext(some_async_iterator) Ultimately, it's a fancy wrapper around the original snippet of 'await iterator.__anext__()'. On Sat, Jan 30, 2016 at 6:07 AM Maxime S <maxischm...@gmail.com> wrote: > 2016-01-30 11:51 GMT+01:00 Frank Millman <fr...@chagford.com>: > > > "Chris Angelico" wrote in message > > news:CAPTjJmoAmVNTCKq7QYaDRNQ67Gcg9TxSXYXCrY==s9djjna...@mail.gmail.com. > .. > > > > > >> On Sat, Jan 30, 2016 at 7:22 PM, Frank Millman <fr...@chagford.com> > >> wrote: > >> > We had a recent discussion about the best way to do this, and ChrisA > >> > suggested the following, which I liked - > >> > > >> > cur.execute('SELECT ...) > >> > try: > >> > row = next(cur) > >> > except StopIteration: > >> > # row does not exist > >> > else: > >> > try: > >> > next_row = next(cur) > >> > except StopIteration: > >> > # row does exist > >> > else: > >> > # raise exception > >> > > >> > Now that I have gone async, I want to do the same with an asynchronous > >> > iterator. > >> > > > > > I might be a bit off-topic, but why don't you simply use cursor.rowcount? > > For a pure iterator-based solution, I would do something like this (admitly > a bit cryptic, but iterator-based solutions often are :-) : > > async def get_uniqu(ait): > async for row in ait: > break > else: > raise NotEnoughtRows() > async for _ in ait: > raise TooManyRows() > return row > -- > https://mail.python.org/mailman/listinfo/python-list > -- https://mail.python.org/mailman/listinfo/python-list