diff --git a/src/trame_common/decorators/klass.py b/src/trame_common/decorators/klass.py index 863e166..7aba102 100644 --- a/src/trame_common/decorators/klass.py +++ b/src/trame_common/decorators/klass.py @@ -1,10 +1,12 @@ import functools import inspect import logging +from collections.abc import Callable +from typing import Any, TypeVar -logger = logging.getLogger(__name__) +F = TypeVar("F", bound=Callable[..., Any]) -# logging.basicConfig(level=logging.DEBUG) +logger = logging.getLogger(__name__) def can_be_decorated(x): @@ -102,10 +104,10 @@ def wrapped_init(instance, *args, **kwargs): return klass -def change(*args): +def change(*args: str) -> Callable[[F], F]: """Method decorator for state change""" - def decorate(f): + def decorate(f: F) -> F: if not hasattr(f, "_trame_state_change"): f._trame_state_change = [] f._trame_state_change.extend(args) @@ -114,10 +116,10 @@ def decorate(f): return decorate -def trigger(*args): +def trigger(*args: str) -> Callable[[F], F]: """Method decorator to assign a trigger name to a function""" - def decorate(f): + def decorate(f: F) -> F: if not hasattr(f, "_trame_trigger_names"): f._trame_trigger_names = [] f._trame_trigger_names.extend(args)