File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -793,14 +793,31 @@ def _create_plugin_instance() -> "BcPluginBase":
793793 f"Impossible d'instancier le plugin '{ cls_to_decorate .__name__ } ': { e } "
794794 ) from e
795795
796+ # Appliquer la priorité basée sur les tags si pas explicitement définie
797+ if priority is None and plugin_instance is not None :
798+ from .tagging import TAG_PRIORITY_MAP , DEFAULT_TAG_PRIORITY
799+ tags = getattr (plugin_instance .meta , "tags" , ()) or ()
800+ if tags :
801+ # Trouver le score minimum parmi les tags
802+ scores = []
803+ for tag in tags :
804+ tag_str = str (tag ).strip ().lower ()
805+ if tag_str :
806+ score = TAG_PRIORITY_MAP .get (tag_str , DEFAULT_TAG_PRIORITY )
807+ scores .append (score )
808+ if scores :
809+ tag_priority = min (scores )
810+ if tag_priority != DEFAULT_TAG_PRIORITY :
811+ plugin_instance .priority = tag_priority
812+
796813 # Appliquer la priorité personnalisée si fournie
797814 if priority is not None and plugin_instance is not None :
798815 plugin_instance .priority = priority
799816
800817 # Ajouter au manager
801818 try :
802819 manager .add_plugin (plugin_instance )
803- _logger .debug ("Plugin '%s' enregistré avec @bc_register" , meta .id )
820+ _logger .debug ("Plugin '%s' enregistré avec @bc_register (priority=%d) " , meta .id , plugin_instance . priority )
804821 except Exception as e :
805822 raise RuntimeError (
806823 f"Échec de l'enregistrement du plugin '{ meta .id } ': { e } "
Original file line number Diff line number Diff line change @@ -181,6 +181,30 @@ def load_plugins_from_directory(
181181 # Enregistrer le plugin
182182 pid = plugin_instance .meta .id
183183 if pid not in self ._registry :
184+ # Appliquer la priorité basée sur les tags si pas déjà définie
185+ # et si la priorité par défaut (100) est utilisée
186+ if plugin_instance .priority == 100 :
187+ from .tagging import (
188+ TAG_PRIORITY_MAP ,
189+ DEFAULT_TAG_PRIORITY ,
190+ )
191+
192+ tags = getattr (
193+ plugin_instance .meta , "tags" , ()
194+ ) or ()
195+ if tags :
196+ scores = []
197+ for tag in tags :
198+ tag_str = str (tag ).strip ().lower ()
199+ if tag_str :
200+ score = TAG_PRIORITY_MAP .get (
201+ tag_str , DEFAULT_TAG_PRIORITY
202+ )
203+ scores .append (score )
204+ if scores :
205+ tag_priority = min (scores )
206+ if tag_priority != DEFAULT_TAG_PRIORITY :
207+ plugin_instance .priority = tag_priority
184208 self .add_plugin (plugin_instance )
185209 new_ids .append (pid )
186210 is_decorator_plugin = True
You can’t perform that action at this time.
0 commit comments