I'm just throwing this idea out there to get feedback.
Sometimes, I want to conditionally enter a context manager. This simplest
(afaik) way of doing that is:
with ExitStack() as stack:
if condition:
cm = stack.enter_context(cm_function())
suite()
I suggest a more compact notation:
with cm_function() as cm if condition:
suite()
I'm not sure that this is possible within the grammar. (For some reason
with with_expr contains '"as" expr' rather than '"as" NAME'?
I realize this comes up somewhat rarely. I use context managers a lot, and
it comes up maybe 1 in 5k lines of code.
For some extensions of this notation, an else clause could bind a value to
cm in the case that condition is false.
Best,
Neil
_______________________________________________
Python-ideas mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/