def log(func):
    def inner(*args, **kwargs):
        func_name = inspect.stack()[3][3]
        if func_name == "_wrapper":
            func_name = inspect.stack()[2][3]
        (uid, gid, pid) = fuse_get_context()
        pre = "(%s: UID=%d GID=%d PID=%d ARGS=(%s) KWARGS=(%s))" % (
            func_name, uid, gid, pid,
            ", ".join(map(str, list(args)[1:])), str(**kwargs))
        try:
            g_logger.debug("log: call: %s",  pre)
            ret = func(*args, **kwargs)
            g_logger.debug("log: result: %s", ret)
            return ret
        except Exception as e:
            g_logger.warning("log: exception: %s", str(e))
            raise e
    return inner
When paging through results, this will return the previous page, using
dataset/ETHPy150Open williballenthin/python-ntfs/examples/mount/mount.py/log--crossover with--dataset/ETHPy150Open rackspace/pyrax/pyrax/clouddns.py/CloudDNSManager.list_previous_page