Skip to content

Commit b2dd85b

Browse files
author
PyCompiler ARK++
committed
feat: Display plugin requirements in BCASL loader tooltips
- Add plugin version requirements to tooltips in BCASL loader dialog - Show BCASL, Core, Plugins SDK, BcPluginContext, and GeneralContext requirements - Requirements only displayed if different from default 1.0.0 - Formatted with bullet points for better readability - Helps users understand plugin compatibility requirements at a glance
1 parent cb8c7fb commit b2dd85b

1 file changed

Lines changed: 30 additions & 1 deletion

File tree

bcasl/Loader.py

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -614,12 +614,41 @@ def open_bc_loader_dialog(self) -> None: # UI minimale
614614
text += f" [Phase: {phase_name}]"
615615

616616
item = QListWidgetItem(text)
617-
# Tooltip avec description et tags
617+
# Tooltip avec description, tags et requirements
618618
try:
619619
desc = meta.get("description") or ""
620620
tooltip = desc
621621
if tags:
622622
tooltip += f"\n\nTags: {', '.join(tags)}"
623+
624+
# Ajouter les requirements du plugin
625+
reqs = []
626+
# Récupérer les requirements depuis la métadonnée du plugin
627+
# On doit chercher dans la métadonnée complète du plugin
628+
try:
629+
# Chercher le plugin dans le registry pour obtenir les requirements
630+
from .executor import BCASL
631+
temp_mgr = BCASL(workspace_root, config={}, sandbox=False, plugin_timeout_s=0.0)
632+
reg = getattr(temp_mgr, "_registry", {})
633+
if pid in reg:
634+
plg = reg[pid].plugin
635+
if hasattr(plg, 'meta'):
636+
if plg.meta.required_bcasl_version != "1.0.0":
637+
reqs.append(f"BCASL >= {plg.meta.required_bcasl_version}")
638+
if plg.meta.required_core_version != "1.0.0":
639+
reqs.append(f"Core >= {plg.meta.required_core_version}")
640+
if plg.meta.required_plugins_sdk_version != "1.0.0":
641+
reqs.append(f"Plugins SDK >= {plg.meta.required_plugins_sdk_version}")
642+
if plg.meta.required_bc_plugin_context_version != "1.0.0":
643+
reqs.append(f"BcPluginContext >= {plg.meta.required_bc_plugin_context_version}")
644+
if plg.meta.required_general_context_version != "1.0.0":
645+
reqs.append(f"GeneralContext >= {plg.meta.required_general_context_version}")
646+
except Exception:
647+
pass
648+
649+
if reqs:
650+
tooltip += f"\n\nRequirements:\n" + "\n".join(f" • {req}" for req in reqs)
651+
623652
if tooltip:
624653
item.setToolTip(tooltip)
625654
except Exception:

0 commit comments

Comments
 (0)