Are you using Python3? Then there's "asynchronous context managers". I finally found a use-case for one in txtorcon, so here's an example: http://txtorcon.readthedocs.io/en/latest/txtorcon-controller.html#txtorcon.Tor.onion_authentication -- meejah