[Python-ideas] unpacking context managers in WITH statement
fuzzyman at gmail.com
Fri Feb 3 18:50:06 CET 2012
On 3 February 2012 15:09, Yury Selivanov <yselivanov.ml at gmail.com> wrote:
> With the removal of "contextlib.nested" in python 3.2 nothing was
> introduced to replace it. However, I found it pretty useful, despite the
> fact that it had its own quirks. These quirks can (at least partially) be
> addressed by allowing unpacking syntax in the context manager.
> Consider the following snipped of code:
> ctxs = ()
> if args.profile:
> ctxs += (ApplicationProfilerContext(),)
> if args.logging:
> ctxs += (ApplicationLoggingContext(),)
> with *ctxs:
Well, I quite like this syntax and it does allow you to do something not
currently easily possible:
with *ctxs as tuple_of_results:
The use case is reasonably obscure however, and should this be possible:
with *ctx, other as tuple_of_results, another:
> As of now, without "nested" we have either option of reimplementing it, or
> to write lots of ugly code with nested 'try..except's. So the feature was
> taken out, but nothing replaced it.
> What do you think guys?
> Python-ideas mailing list
> Python-ideas at python.org
May you do good and not evil
May you find forgiveness for yourself and forgive others
May you share freely, never taking more than you give.
-- the sqlite blessing http://www.sqlite.org/different.html
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Python-ideas