def _run_callable_with_postamble(postamble, callable_, *args, **kwargs):
    """Returns a callable of no args that invokes callable_ (with the
    specified args and kwargs) and then invokes postamble (with no
    args).

    The callable returns the result of (or exception thrown by)
    callable_.

    """
    def fn():
        try:
            return callable_(*args, **kwargs)
        finally:
            postamble()
    return fn