[Python-ideas] Add contextlib.DummyContext
Devin Jeanpierre
jeanpierreda at gmail.com
Wed May 18 01:36:37 EDT 2016
> This is one of those things which are so easy to implement which makes you
> think it is probably not worth adding to the stdlib, but then again, this is
> something I've ended up doing and rewriting pretty often over the years.
> Real world example:
>
> class DummyLock(object):
> def __init__(self, *args, **kwargs):
> pass
> def __enter__(self, *args, **kwargs):
> return self
> def __exit__(self, *args, **kwargs):
> pass
>
> def get_lock(name, bypass_lock=False):
> lock_cls = DummyLock if bypass_lock else RedisLock
> return lock
>
> with get_lock('foo', bypass_lock=True):
> ...
with contextlib.ExitStack() as exit_stack:
if not bypass_lock:
exit_stack.enter_context(RedisLock())
And similar.
In fact, ExitStack can itself be used as a no-op context manager, if you want.
-- Devin
More information about the Python-ideas
mailing list