@@ -61,7 +61,7 @@ def _has_bcasl_marker(pkg_dir: Path) -> bool:
6161
6262def _discover_bcasl_meta (api_dir : Path ) -> dict [str , dict [str , Any ]]:
6363 """Découvre les plugins en important chaque package et en appelant bcasl_register(manager).
64- Retourne un mapping plugin_id -> meta dict {id, name, version, description, author}
64+ Retourne un mapping plugin_id -> meta dict {id, name, version, description, author, requirements }
6565 """
6666 meta : dict [str , dict [str , Any ]] = {}
6767 try :
@@ -103,13 +103,30 @@ def _discover_bcasl_meta(api_dir: Path) -> dict[str, dict[str, Any]]:
103103 except Exception :
104104 tags = []
105105
106+ # Récupérer les requirements
107+ reqs : list [str ] = []
108+ try :
109+ if plg .meta .required_bcasl_version != "1.0.0" :
110+ reqs .append (f"BCASL >= { plg .meta .required_bcasl_version } " )
111+ if plg .meta .required_core_version != "1.0.0" :
112+ reqs .append (f"Core >= { plg .meta .required_core_version } " )
113+ if plg .meta .required_plugins_sdk_version != "1.0.0" :
114+ reqs .append (f"Plugins SDK >= { plg .meta .required_plugins_sdk_version } " )
115+ if plg .meta .required_bc_plugin_context_version != "1.0.0" :
116+ reqs .append (f"BcPluginContext >= { plg .meta .required_bc_plugin_context_version } " )
117+ if plg .meta .required_general_context_version != "1.0.0" :
118+ reqs .append (f"GeneralContext >= { plg .meta .required_general_context_version } " )
119+ except Exception :
120+ pass
121+
106122 m = {
107123 "id" : plg .meta .id ,
108124 "name" : plg .meta .name ,
109125 "version" : plg .meta .version ,
110126 "description" : plg .meta .description ,
111127 "author" : plg .meta .author ,
112128 "tags" : tags ,
129+ "requirements" : reqs ,
113130 }
114131 meta [plg .meta .id ] = m
115132 except Exception :
@@ -621,31 +638,8 @@ def open_bc_loader_dialog(self) -> None: # UI minimale
621638 if tags :
622639 tooltip += f"\n \n Tags: { ', ' .join (tags )} "
623640
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-
641+ # Ajouter les requirements du plugin depuis meta_map
642+ reqs = meta .get ("requirements" , [])
649643 if reqs :
650644 tooltip += f"\n \n Requirements:\n " + "\n " .join (f" • { req } " for req in reqs )
651645
0 commit comments