"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