<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def load_config(self, settings=None):
 """ Load the configuration either from the config file, or from the given settings. Args: settings (dict):
 If given, the settings are pulled from this dictionary. Otherwise, the config file is used. """

        self._load_defaults()
        if settings:
            self.update(settings)
        else:
            config_paths = _get_config_files()
            for p in config_paths:
                conf = _process_config_file([p])
                self.update(conf)
        self._loaded = True
        self._validate()