asyncio does not always show the full traceback
INADA Naoki
songofacandy at gmail.com
Thu Mar 2 07:31:32 EST 2017
I can't reproduce it on Linux.
Maybe, it's windows specific bug?
On Wed, Mar 1, 2017 at 11:25 PM, Frank Millman <frank at chagford.com> wrote:
> "Frank Millman" wrote in message news:o93vs2$smi$1 at 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
More information about the Python-list
mailing list