From 023e524b3b12cde9b95f150dd08b2214c0b0924b Mon Sep 17 00:00:00 2001 From: UnCLAS-Prommer Date: Tue, 8 Jul 2025 10:43:28 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BF=98=E4=BA=86=E5=B1=95=E7=A4=BA=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/plugin_system/base/base_plugin.py | 2 ++ src/plugin_system/core/__init__.py | 1 + src/plugin_system/core/plugin_manager.py | 16 ++++++++++------ 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/plugin_system/base/base_plugin.py b/src/plugin_system/base/base_plugin.py index 5fdf20d2e..a9aae4347 100644 --- a/src/plugin_system/base/base_plugin.py +++ b/src/plugin_system/base/base_plugin.py @@ -522,6 +522,7 @@ class BasePlugin(ABC): def register_plugin(self) -> bool: """注册插件及其所有组件""" from src.plugin_system.core.component_registry import component_registry + components = self.get_plugin_components() # 检查依赖 @@ -552,6 +553,7 @@ class BasePlugin(ABC): def _check_dependencies(self) -> bool: """检查插件依赖""" from src.plugin_system.core.component_registry import component_registry + if not self.dependencies: return True diff --git a/src/plugin_system/core/__init__.py b/src/plugin_system/core/__init__.py index 6bd3d3935..50537b903 100644 --- a/src/plugin_system/core/__init__.py +++ b/src/plugin_system/core/__init__.py @@ -7,6 +7,7 @@ from src.plugin_system.core.plugin_manager import plugin_manager from src.plugin_system.core.component_registry import component_registry from src.plugin_system.core.dependency_manager import dependency_manager + __all__ = [ "plugin_manager", "component_registry", diff --git a/src/plugin_system/core/plugin_manager.py b/src/plugin_system/core/plugin_manager.py index 0de8f6eb6..a30a3028b 100644 --- a/src/plugin_system/core/plugin_manager.py +++ b/src/plugin_system/core/plugin_manager.py @@ -89,7 +89,9 @@ class PluginManager: total_registered += 1 else: total_failed_registration += 1 - + + self._show_stats(total_registered, total_failed_registration) + return total_registered, total_failed_registration def load_registered_plugin_classes(self, plugin_name: str) -> bool: @@ -173,13 +175,14 @@ class PluginManager: """ 重新扫描插件根目录 """ + # --------------------------------------- NEED REFACTORING --------------------------------------- for directory in self.plugin_directories: if os.path.exists(directory): logger.debug(f"重新扫描插件根目录: {directory}") self._load_plugin_modules_from_directory(directory) else: logger.warning(f"插件根目录不存在: {directory}") - + def get_loaded_plugins(self) -> List[PluginInfo]: """获取所有已加载的插件信息""" return list(component_registry.get_all_plugins().values()) @@ -187,7 +190,7 @@ class PluginManager: def get_enabled_plugins(self) -> List[PluginInfo]: """获取所有启用的插件信息""" return list(component_registry.get_enabled_plugins().values()) - + def enable_plugin(self, plugin_name: str) -> bool: # -------------------------------- NEED REFACTORING -------------------------------- """启用插件""" @@ -222,7 +225,7 @@ class PluginManager: Optional[BasePlugin]: 插件实例或None """ return self.loaded_plugins.get(plugin_name) - + def get_plugin_stats(self) -> Dict[str, Any]: """获取插件统计信息""" all_plugins = component_registry.get_all_plugins() @@ -241,7 +244,7 @@ class PluginManager: "loaded_plugin_files": len(self.loaded_plugins), "failed_plugin_details": self.failed_plugins.copy(), } - + def check_all_dependencies(self, auto_install: bool = False) -> Dict[str, any]: """检查所有插件的Python依赖包 @@ -566,5 +569,6 @@ class PluginManager: else: logger.info(f"✅ 插件加载成功: {plugin_name}") + # 全局插件管理器实例 -plugin_manager = PluginManager() \ No newline at end of file +plugin_manager = PluginManager()