I can't reproduce it on Linux. Maybe, it's windows specific bug?
On Wed, Mar 1, 2017 at 11:25 PM, Frank Millman <fr...@chagford.com> wrote: > "Frank Millman" wrote in message news:o93vs2$smi$1...@blaine.gmane.org... >> >> >> I use asyncio in my project, so most of my functions start with 'async' >> and > > most of my calls are preceded by 'await'. >> >> >> If an exception is raised, I usually get the full traceback, but sometimes >> I > > just get something like the following - >> >> >> Traceback (most recent call last): >> File "C:\Users\User\aib\aib\test_data.py", line 645, in <module> >> loop.run_until_complete(main(company)) >> File >> "C:\Users\User\AppData\Local\Programs\Python\Python36\lib\asyncio\base_events.py", >> line 466, in run_until_complete >> return future.result() >> ValueError: not enough values to unpack (expected 2, got 1) >> >> It does not show the line where the ValueError occurs, and I have not >> managed to narrow down exactly when this happens. >> > > I have narrowed it down a bit. > > Here is a fairly simple example, based on some code I had lying around - > > import asyncio > from itertools import count > > async def aenumerate(aiterable): > counter = count() > async for x in aiterable: > yield next(counter), x > await asyncio.sleep(0.5) > > async def gen(n): > for i in range(100, 100+n): > yield i > > async def aenum(): > g = gen(5) > async for a, x in aenumerate(g): > print(a, x) > print('done') > > async def main(): > await aenum() > > loop = asyncio.get_event_loop() > loop.run_until_complete(main()) > > If you run this as is, it works. > > I added '1/0' at various points, to force an exception. > > If I put it in main() or in aenum(), I do not get the full traceback. > > If I put it in aenumerate() or in gen(), I do get the traceback. > > I hope this enables someone cleverer than me to figure out what is going on. > > Frank > > > -- > https://mail.python.org/mailman/listinfo/python-list -- https://mail.python.org/mailman/listinfo/python-list