in awswrangler/_utils.py [0:0]
def decorator(func: FunctionType) -> FunctionType:
signature = inspect.signature(func)
@wraps(func)
def inner(*args: Any, **kwargs: Any) -> Any:
passed_unsupported_kwargs = set(unsupported_kwargs).intersection(
set([key for key, value in kwargs.items() if value is not None])
)
# Allow kwargs that didn't modify the default value
passed_unsupported_kwargs = {
key for key in passed_unsupported_kwargs if kwargs[key] != signature.parameters[key].default
}
if condition_fn() and len(passed_unsupported_kwargs) > 0:
raise exceptions.InvalidArgument(f"{message} `{', '.join(passed_unsupported_kwargs)}`.")
return func(*args, **kwargs)
inner.__doc__ = _inject_kwargs_validation_doc(
doc=func.__doc__,
unsupported_kwargs=unsupported_kwargs,
message=message,
)
inner.__name__ = func.__name__
inner.__setattr__("__signature__", signature)
return cast(FunctionType, inner)