|
import inspect |
|
|
|
|
|
def check_kwargs(func, kwargs, name=None): |
|
"""check kwargs are valid for func |
|
|
|
If kwargs are invalid, raise TypeError as same as python default |
|
:param function func: function to be validated |
|
:param dict kwargs: keyword arguments for func |
|
:param str name: name used in TypeError (default is func name) |
|
""" |
|
try: |
|
params = inspect.signature(func).parameters |
|
except ValueError: |
|
return |
|
if name is None: |
|
name = func.__name__ |
|
for k in kwargs.keys(): |
|
if k not in params: |
|
raise TypeError(f"{name}() got an unexpected keyword argument '{k}'") |
|
|