I second this, I depend on this monkeypatch for my turbogears projects, where I use callable objects as error handlers:
def getargspec(func):
if getattr(func, '__call__') and not isfunction(func) and not ismethod(func):
func = func.__call__
if ismethod(func):
func = func.im_func
if not isfunction(func):
raise TypeError('arg is not a Python function')
args, varargs, varkw = getargs(func.func_code)
return args, varargs, varkw, func.func_defaults
but I suppose 2.7 is locked to this change so I propose it for 3.x