Issue 20108: cannot pass kwarg func to inspect.getcallargs (original) (raw)

Consider the following example.

import inspect
inspect.getcallargs(lambda **kwargs: None, func=1)

IMHO getcallargs should return

{'kwargs': {'func': 1}}

however, Python (versions 3.3 and 3.4) throws the following exception instead:

TypeError: getcallargs() got multiple values for argument 'func'

This can be easily solved in lib/inspect.py by changing

def getcallargs(func, *positional, **named):

into

def getcallargs(*func_and_positional, **named):
    func, *positional = func_and_positional

Best regards,

Joost van Zwieten