in awswrangler/_config.py [0:0]
def apply_configs(function: FunctionType) -> FunctionType:
"""Decorate some function with configs."""
signature = inspect.signature(function)
args_names: tuple[str, ...] = tuple(signature.parameters.keys())
available_configs: tuple[str, ...] = tuple(x for x in _CONFIG_ARGS if x in args_names)
@wraps(function)
def wrapper(*args_raw: Any, **kwargs: Any) -> Any:
args: dict[str, Any] = signature.bind_partial(*args_raw, **kwargs).arguments
for name in available_configs:
if hasattr(config, name) is True:
value = config[name]
_assign_args_value(args, name, value)
for name, param in signature.parameters.items():
if param.kind == param.VAR_KEYWORD and name in args:
if isinstance(args[name], dict) is False:
raise RuntimeError(f"Argument {name} ({args[name]}) is a non dictionary keyword argument.")
keywords: dict[str, Any] = args[name]
del args[name]
args = {**args, **keywords}
return function(**args)
wrapper.__doc__ = _inject_config_doc(doc=function.__doc__, available_configs=available_configs)
wrapper.__name__ = function.__name__
wrapper.__setattr__("__signature__", signature)
return wrapper # type: ignore[return-value]