in cfn_tools/_config.py [0:0]
def apply_configs(function):
"""Decorate some function with configs."""
signature = inspect.signature(function)
args_names = list(signature.parameters.keys())
valid_configs = [x for x in _CONFIG_DEFAULTS if x in args_names]
def wrapper(*args, **kwargs):
received_args = signature.bind_partial(*args, **kwargs).arguments
available_configs = [x for x in valid_configs if (x not in received_args) and (hasattr(config, x) is True)]
missing_args = {x: config[x] for x in available_configs}
final_args = {**received_args, **missing_args}
return function(**final_args)
wrapper.__doc__ = function.__doc__
wrapper.__name__ = function.__name__
wrapper.__signature__ = signature
return wrapper