'Decorator to allow a function to take keyword args even though
the RPC layer doesn\'t support that.  The decorated function
assumes its last argument is a dictionary of keyword args and
passes them to the original function as keyword args.'

@staticmethod
def _allow_keyword_args(f):

    def new_fn(*args):
        assert args
        keyword_args = args[(-1)]
        args = args[:(-1)]
        return f(*args, **keyword_args)
    new_fn.func_name = f.func_name
    return new_fn
