Есть ли способ объединить подписи из декоратора и упакованной функции? - PullRequest
1 голос
/ 14 января 2020

Я хочу обернуть вызываемый объект декоратором, принимающим дополнительный параметр, с сигнатурой обернутой функции как объединения двух.

Например,

def decorator(func):
    # something like @functools.wrap 
    def wrapper(other_param: int = None, **kwargs):
        pass

    return wrapper

@decorator
def myfunc(*, foo: int, bar: int):
    pass

Мне хотелось бы позвонить inspect.signature на украшенном myfun c и получить все три именованных параметра. Мне известна библиотека sigtools, но я не могу использовать ее в качестве зависимости.

Редактировать: Чтобы уточнить, я хочу, чтобы подпись оболочки была (foo, bar, other_param).

...