A different solution to the problem, given:
external - the function whose signature we want to reuse
ours - the function we want to define with the signature of external
from functools import wraps
from typing import TYPE_CHECKING
if TYPE_CHECKING:
ours = external
else:
@wraps(external)
def ours(*args, **kwargs):
return external(*args, **kwargs)