Is there an inverse operation to Python inspect.getcallargs in the standard library?
<p>Is there a way to get back from a return value from <code>inspect.getcallargs(func)</code> to a <code>*args, **kw</code> pair that can actually be used to call the <code>func</code>?</p>

<p>Use case: say I am writing a decorator, and I want to change a particular argument of a function by name.  Here's the beginning of some code to do this:</p>

<pre><code>@fix_x
def a(x):
    print x

@fix_x
def b(**q):
    print q['x']

def fix_x(func):
    def wrapper(*args, **kw):
        argspec = inspect.getargspec(func)
        callargs = inspect.getcallargs(func, *args, **kw)
        if 'x' in callargs:
            callargs['x'] += 5
        elif 'x' in callargs[argspec.keywords]:
            callargs[argspec.keywords]['x'] += 5
        # ...and now I'd like a simple way to call func with callargs...?
</code></pre>

<p>(I'm actually doing something more elaborate with the callargs between building them and wanting to make a call with them, but this should give an idea of what I'm looking for.)</p>
