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

1import inspect 

2 

3 

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. 

8 

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 )