Nathaniel Smith <n...@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 <rep...@bugs.python.org>
<https://bugs.python.org/issue37398>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to