in core/src/klio_core/config/_utils.py [0:0]
def _prepare_config_dict(self, known_keys, config_dict, **extra_kwargs):
if self.allow_unknown_keys:
actual_keys = extra_kwargs
for key in known_keys:
if key in config_dict:
actual_keys[key] = config_dict[key]
else:
actual_keys = config_dict.copy()
for key, value in extra_kwargs.items():
actual_keys[key] = extra_kwargs[key]
for key, value in actual_keys.items():
if key not in known_keys:
raise Exception(
"Unexpected config key {}".format(self._full_key(key))
)
for key in self.ignore_keys:
actual_keys.pop(key, None)
return actual_keys