def __init__(self, packages=None, paths=None, ignore_paths=None, keep_going=False, load_defaults=True):
        self._load_defaults = None
        self.logger = logging.getLogger('ExtensionLoader')
        self.keep_going = keep_going
        self.extension_kinds = {ext_tuple.name: ExtensionLoaderItem(ext_tuple)
                                for ext_tuple in settings.extensions}
        self.default_packages = [ext.default_package for ext in self.extension_kinds.values()]

        self.packages = packages or []
        self.load_defaults = load_defaults
        self.paths = paths or []
        self.ignore_paths = ignore_paths or []
        self.extensions = {}
        self.aliases = {}
        self.global_param_aliases = {}
        # create an empty dict for each extension type to store discovered
        # extensions.
        for ext in self.extension_kinds.values():
            setattr(self, '_' + ext.name, {})
        self._load_from_packages(self.packages)
        self._load_from_paths(self.paths, self.ignore_paths)
params::
dataset/ETHPy150Open ARM-software/workload-automation/wlauto/core/extension_loader.py/ExtensionLoader.__init__