def _prepare_config_dict()

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