GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.
Sign up| * ``with (await asyncio.lock):`` and ``with (yield from asyncio.lock):`` statements are | ||
| not longer supported, use ``async with lock`` instead. The same is correct for | ||
| ``asyncio.Condition`` and ``asyncio.Semaphore``. | ||
| (Contributed by Andrew Svetlov in :issue:`34793`.) |
Please also replace the deprecation warning with changedversion in https://docs.python.org/3/library/asyncio-sync.html#boundedsemaphore
|
|
||
|
|
||
| class _ContextManagerMixin: | ||
| def __enter__(self): | ||
| raise RuntimeError( | ||
| '"yield from" should be used as context manager expression') |
Should we keep this? We can change the error message to say that async with should be used...
I think the motivation was emphasizing that context managers were supported but in a slightly unusual way: with (yield from lock):; bare with lock: was forbidden.
After switching to async with lock: everything becomes clear: with is not supported in any form for the sake of async with. The error message is standard and well-known: AttributeError: __enter__. I think we shouldn't replace the default behavior.
Maybe the standard text can be improved globally, but it is another story, I guess.
90d9ba6
into
python:master
asvetlov commentedDec 9, 2019
•
edited by bedevere-bot
https://bugs.python.org/issue34793