From 87e4efa82a6f8fa81d78250cfbe41960d2c88b22 Mon Sep 17 00:00:00 2001 From: miro Date: Mon, 9 Dec 2024 18:05:59 +0000 Subject: [PATCH] fix: runtime requirements runtime requirements class property was not workign properly due to the class not being passed to the skill loader all skills were considered to need internet, offline skills were not loading early as intended! --- ovos_core/skill_manager.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/ovos_core/skill_manager.py b/ovos_core/skill_manager.py index 50fe0c390506..eb333bda6aee 100644 --- a/ovos_core/skill_manager.py +++ b/ovos_core/skill_manager.py @@ -302,7 +302,8 @@ def load_plugin_skills(self, network=None, internet=None): LOG.info(f"Consider uninstalling {skill_id} instead of blacklisting it") continue if skill_id not in self.plugin_skills and skill_id not in loaded_skill_ids: - skill_loader = self._get_plugin_skill_loader(skill_id, init_bus=False) + skill_loader = self._get_plugin_skill_loader(skill_id, init_bus=False, + skill_class=plug) requirements = skill_loader.runtime_requirements if not network and requirements.network_before_load: continue @@ -327,7 +328,7 @@ def _get_internal_skill_bus(self): bus = self.bus return bus - def _get_plugin_skill_loader(self, skill_id, init_bus=True): + def _get_plugin_skill_loader(self, skill_id, init_bus=True, skill_class=None): """Get a plugin skill loader. Args: @@ -340,7 +341,10 @@ def _get_plugin_skill_loader(self, skill_id, init_bus=True): bus = None if init_bus: bus = self._get_internal_skill_bus() - return PluginSkillLoader(bus, skill_id) + loader = PluginSkillLoader(bus, skill_id) + if skill_class: + loader.skill_class = skill_class + return loader def _load_plugin_skill(self, skill_id, skill_plugin): """Load a plugin skill. @@ -352,7 +356,7 @@ def _load_plugin_skill(self, skill_id, skill_plugin): Returns: PluginSkillLoader: Loaded plugin skill loader instance if successful, None otherwise. """ - skill_loader = self._get_plugin_skill_loader(skill_id) + skill_loader = self._get_plugin_skill_loader(skill_id, skill_class=skill_plugin) try: load_status = skill_loader.load(skill_plugin) except Exception: