asyncio does not always show the full traceback

Frank Millman frank at chagford.com
Thu Mar 2 07:55:46 EST 2017


"INADA Naoki"  wrote in message 
news:CAEfz+TyUdWJesyttqZg2_ROMPhmJRxqaGA2ULgFQV5QbpiiiXQ at mail.gmail.com...
>
> I can't reproduce it on Linux.
> Maybe, it's windows specific bug?
>

> 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())
>

Thanks for the reply.

I tried it out on linux (Fedora 22, Python 3.6.0b4), and I get the same 
result as I do on Windows.

If I place '1/0' in main(), this is the traceback -

Traceback (most recent call last):
  File "test_db1a.py", line 25, in <module>
    loop.run_until_complete(main())
  File "/usr/local/lib/python3.6/asyncio/base_events.py", line 466, in 
run_until_complete
    return future.result()
ZeroDivisionError: division by zero

If I place '1/0' in gen(), this is the traceback -

Traceback (most recent call last):
  File "test_db1a.py", line 25, in <module>
    loop.run_until_complete(main())
  File "/usr/local/lib/python3.6/asyncio\base_events.py", line 466, in 
run_until_complete
    return future.result()
  File "test_db1a.py", line 17, in aenum
    async for a, x in aenumerate(g):
  File "test_db1a.py", line 6, in aenumerate
    async for x in aiterable:
  File "test_db1a.py", line 11, in gen
    1/0
ZeroDivisionError: division by zero

Can anyone else confirm whether they can reproduce my results?

Thanks

Frank





More information about the Python-list mailing list