Como alterar programaticamente o argspec de uma função em um decorador python?
Dada uma função:
def func(f1, kw='default'):
pass
bare_argspec = inspect.getargspec(func)
@decorator
def func2(f1, kw='default'):
pass
decorated_argspec = inspect.getargspec(func2)
Como posso criar um decorador quebare_argspec == decorated_argspec
?
(Por que razão, a estrutura que chama a função decorada faz a inspeção argspec para escolher o que passar, então o decorador deve reter o mesmo argspec para ter um bom desempenho. Quando fiz essa pergunta no #python, tive uma longa discurso sobre por que o framework é péssimo, o que não é o que estou procurando; tenho que resolver o problema aqui. Além disso, também estou interessado na resposta)