Add plugin enhancements: PluginStatus, PluginError, subscribe_plugin, config validation

- New: fmfuncs/plugin_status.py (9 states)
- New: fmfuncs/plugin_error.py (6 exception classes)
- Enhanced: bridges/plugin_bridge.py (subscribe_plugin)
- Enhanced: bridges/plugin_network_bridge.py (setup_data_transfer, send_data)
- Enhanced: services/plugin_service.py (config validation + status tracking)
- Tests: 15/15 passing (10 original + 5 new)
This commit is contained in:
2026-06-10 13:02:33 +08:00
parent 79f7fb86fe
commit 1cbe52174d
5 changed files with 118 additions and 1 deletions
+31
View File
@@ -0,0 +1,31 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""插件异常层级 — 结构化错误处理"""
import logging
logger = logging.getLogger(__name__)
class PluginError(Exception):
"""插件基础异常"""
def __init__(self, message: str, plugin_name: str = None, *args):
self.plugin_name = plugin_name
super().__init__(f"[{plugin_name or 'unknown'}] {message}", *args)
class PluginLoadError(PluginError):
"""插件加载失败"""
pass
class PluginPermissionError(PluginError):
"""插件权限不足"""
pass
class PluginCommandError(PluginError):
"""插件命令执行错误"""
pass
class PluginNetworkError(PluginError):
"""插件网络操作错误"""
pass
class PluginConfigError(PluginError):
"""插件配置错误"""
pass
+15
View File
@@ -0,0 +1,15 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""插件状态枚举 — 统一的插件生命周期状态跟踪"""
from enum import Enum
class PluginStatus(str, Enum):
UNLOADED = "unloaded"
LOADING = "loading"
LOADED = "loaded"
INITIALIZING = "initializing"
RUNNING = "running"
ERROR = "error"
STOPPING = "stopping"
STOPPED = "stopped"
UNLOADING = "unloading"