[issue37398] contextlib.ContextDecorator decorating async functions
Nathaniel Smith
report at bugs.python.org
Fri Aug 9 16:18:19 EDT 2019
Nathaniel Smith <njs at pobox.com> added the comment:
> I wouldn't be OK with magic switching in the behaviour of ContextDecorator (that's not only semantically confusing, it's also going to make the contextlib function wrappers even slower than they already are).
I hear you on the semantic confusion, but is a single check at definition time really that expensive? The runtime cost is zero.
> I'm also entirely unclear on what you would expect a synchronous context manager to do when applied to an asynchronous function, as embedding an "await" call inside a synchronous with statement is unlikely to end well.
It would be like:
async def blah():
with something():
await foo()
There's nothing weird about this; people write the long version all the time. You'd only do it when 'something()' doesn't do I/O, but there are lots of context managers that don't do I/O.
----------
_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue37398>
_______________________________________
More information about the Python-bugs-list
mailing list