Josh Rosenberg added the comment: And for this particular case, even if the resource allocators don't support the context manager protocol, contextlib.closing can do the job:
from contextlib import closing with closing(allocateresource1()) as resource1, closing(allocateresource2()) as resource2: dostuffthatmightthrowexception() If it's not a simple as calling close, you can write your own simple manager wrapper that calls some other cleanup function use @contextlib.contextmanager. ---------- nosy: +josh.rosenberg _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue21067> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com