Coverage for biobb_pytorch / mdae / utils / model_utils.py: 100%
9 statements
« prev ^ index » next coverage.py v7.13.2, created at 2026-02-02 16:33 +0000
« prev ^ index » next coverage.py v7.13.2, created at 2026-02-02 16:33 +0000
1import inspect
4def assert_valid_kwargs(target_cls, kwargs, context=""):
5 """
6 Assert that the keys in kwargs are valid parameters for target_cls.__init__.
7 Raises AssertionError if invalid keys are found.
9 Args:
10 target_cls: class whose __init__ signature to inspect
11 kwargs (dict): keyword arguments to validate
12 context (str): optional context name for error messages
13 """
14 sig = inspect.signature(target_cls.__init__)
15 params = sig.parameters
16 # if **kwargs is accepted, skip strict validation
17 if any(p.kind == inspect.Parameter.VAR_KEYWORD for p in params.values()):
18 return
19 valid_keys = set(params.keys()) - {'self'}
20 invalid = set(kwargs.keys()) - valid_keys
21 assert not invalid, (
22 f"Invalid {context} arguments for {target_cls.__name__}: {invalid}. "
23 f"Valid parameters are: {valid_keys}"
24 )