feat: allow varargs callback for signals (#22)

This commit is contained in:
Mike Degatano
2022-09-19 16:38:29 -04:00
committed by GitHub
parent f4d173e042
commit a3379c74ad
2 changed files with 99 additions and 2 deletions

View File

@@ -118,8 +118,10 @@ class BaseProxyInterface:
def _add_signal(self, intr_signal, interface):
def on_signal_fn(fn):
fn_signature = inspect.signature(fn)
if not callable(fn) or len(fn_signature.parameters) != len(
intr_signal.args
if len(fn_signature.parameters) != len(intr_signal.args) and (
inspect.Parameter.VAR_POSITIONAL
not in [par.kind for par in fn_signature.parameters.values()]
or len(fn_signature.parameters) - 1 > len(intr_signal.args)
):
raise TypeError(
f"reply_notify must be a function with {len(intr_signal.args)} parameters"