def _prepare_context_config()

in dusty/models/config.py [0:0]


    def _prepare_context_config(self, config, suite):
        """ Prepare context configuration, e.g.: resolve secret variables, merge config objects """
        context_config = recursive_merge(config["global"], config["suites"].get(suite))
        # Allow to inherit from other suite
        if context_config.get("inherit_from", None) and \
                config["suites"].get(context_config.get("inherit_from"), None):
            context_config = recursive_merge(
                config["suites"].get(context_config.get("inherit_from")), context_config
            )
        # Process depots and load modules
        for _ in range(3):
            self._load_modules(context_config)
            context_config = self._process_depots(context_config)
        # Load config objects
        base_config = self._depot_read_config_object("__base__.yaml")
        project_config = self._depot_read_config_object(
            context_config["settings"].get("load_settings_from", None)
        )
        merge_config = self._depot_read_config_object("__merge__.yaml")
        override_config = self._depot_read_config_object("__override__.yaml")
        # Merge resulting config
        result = base_config
        result = recursive_merge(result, context_config)
        result = recursive_merge(result, project_config)
        result = recursive_merge_existing(result, merge_config)
        result = recursive_merge(result, override_config)
        # Process depots and load modules with resulting config
        for _ in range(3):
            self._load_modules(result)
            result = self._process_depots(result)
        return result