On Wed, Jul 01, 2015 at 08:14:56AM +0100, Neil Williams wrote: > If I had upstream code which needed this support, I'd just embed it > into the project and update the copyright instead of having a package > for 18 lines in the first place.
Without really wishing to weigh in on whether it should be in Debian (given an upstream that uses it, I can see it being reasonable for a Debian maintainer to package it rather than patch away its use), I recently implemented this elsewhere as the equivalent of: import contextlib if condition: context = ... else: # A no-op context manager. context = contextlib.contextmanager(lambda: (None for _ in [None]))() with context: ... If you can use Python >= 3.3 (in the code in question this is sadly still some way off), then you can simplify this using contextlib.ExitStack: import contextlib with contextlib.ExitStack() as stack: if condition: stack.enter_context(...) ... The important feature of any of these approaches is to avoid duplicating the body of the "with" statement. -- Colin Watson [cjwat...@debian.org] -- To UNSUBSCRIBE, email to debian-devel-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/20150701085118.ga21...@riva.ucam.org