Update docs: architecture + plugin guide for v0.2.1 enhancements
This commit is contained in:
+60
-1
@@ -5075,4 +5075,63 @@ logger.error("错误信息", exc_info=True)
|
||||
- Stack Overflow:解决具体技术问题
|
||||
- 开发者群组:实时交流和协作
|
||||
|
||||
通过遵循本指南,您可以开发出高质量的SenSu插件,为用户提供有价值的功能,同时为插件生态系统做出贡献。祝您开发顺利!
|
||||
通过遵循本指南,您可以开发出高质量的SenSu插件,为用户提供有价值的功能,同时为插件生态系统做出贡献。祝您开发顺利!
|
||||
---
|
||||
|
||||
## 九、v0.2.1 新增 API(已实现)
|
||||
|
||||
### 9.1 PluginStatus 状态枚举
|
||||
|
||||
```python
|
||||
from fmfuncs.plugin_status import PluginStatus
|
||||
|
||||
# 插件生命周期状态
|
||||
PluginStatus.UNLOADED # "unloaded"
|
||||
PluginStatus.LOADING # "loading"
|
||||
PluginStatus.LOADED # "loaded"
|
||||
PluginStatus.RUNNING # "running"
|
||||
PluginStatus.ERROR # "error"
|
||||
PluginStatus.STOPPING # "stopping"
|
||||
PluginStatus.STOPPED # "stopped"
|
||||
```
|
||||
|
||||
用法:`plugin_service.plugin_status["my_plugin"] = PluginStatus.RUNNING`
|
||||
|
||||
### 9.2 PluginError 异常层级
|
||||
|
||||
```python
|
||||
from fmfuncs.plugin_error import (
|
||||
PluginError, # 基础异常
|
||||
PluginLoadError, # 加载失败
|
||||
PluginConfigError, # 配置错误
|
||||
PluginPermissionError, # 权限不足
|
||||
PluginCommandError, # 命令执行错误
|
||||
)
|
||||
|
||||
# 抛出
|
||||
raise PluginConfigError("缺少必需配置项: name", plugin_name="my_plugin")
|
||||
```
|
||||
|
||||
### 9.3 PluginBridge.subscribe_plugin()
|
||||
|
||||
```python
|
||||
# 便捷订阅方法(同时注册到 CoreBridge 和插件订阅表)
|
||||
self.bridge.subscribe_plugin("test.event", self._handler, "my_plugin")
|
||||
```
|
||||
|
||||
### 9.4 PluginNetworkBridge 跨插件数据
|
||||
|
||||
```python
|
||||
# 设置数据接收通道
|
||||
await self.network_bridge.setup_data_transfer("status_update", self._on_data)
|
||||
|
||||
# 向其他插件发送数据
|
||||
await self.network_bridge.send_data("target_plugin", "status_update", {"key": "val"})
|
||||
```
|
||||
|
||||
### 9.5 配置验证
|
||||
|
||||
框架在插件加载时自动检查:
|
||||
- `config.yaml` 必须存在且可解析
|
||||
- 必需字段:`name`, `version`
|
||||
- 版本号格式建议遵循 semver
|
||||
|
||||
+30
-1
@@ -395,4 +395,33 @@ SenSu框架是一个设计精良、功能完整的Python后端框架,具有以
|
||||
- 插件化应用的核心引擎
|
||||
- 学习和研究现代Python框架设计的优秀案例
|
||||
|
||||
对于想要基于此框架进行开发的开发者,建议从`example_plugin`入手,逐步理解框架的各个组件,然后根据业务需求开发定制插件。
|
||||
对于想要基于此框架进行开发的开发者,建议从`example_plugin`入手,逐步理解框架的各个组件,然后根据业务需求开发定制插件。
|
||||
---
|
||||
|
||||
## 九、v0.2.1 新增:插件系统增强
|
||||
|
||||
### 9.1 PluginStatus 枚举 (`fmfuncs/plugin_status.py`)
|
||||
统一的插件生命周期状态:
|
||||
- `UNLOADED` → `LOADING` → `LOADED` → `INITIALIZING` → `RUNNING`
|
||||
- 异常路径: `ERROR`, `STOPPING`, `STOPPED`, `UNLOADING`
|
||||
|
||||
### 9.2 PluginError 异常层级 (`fmfuncs/plugin_error.py`)
|
||||
```
|
||||
PluginError (基础)
|
||||
├── PluginLoadError (加载失败)
|
||||
├── PluginConfigError (配置错误)
|
||||
├── PluginPermissionError (权限不足)
|
||||
├── PluginCommandError (命令执行错误)
|
||||
└── PluginNetworkError (网络操作错误)
|
||||
```
|
||||
|
||||
### 9.3 PluginBridge 新方法
|
||||
- `subscribe_plugin(topic, handler, plugin_name)` — 便捷订阅,同时注册到 CoreBridge 和插件订阅表
|
||||
|
||||
### 9.4 PluginNetworkBridge 新方法
|
||||
- `setup_data_transfer(event_type, handler)` — 跨插件数据传输通道
|
||||
- `send_data(target_plugin, event_type, data)` — 向其他插件发送数据
|
||||
|
||||
### 9.5 PluginService 增强
|
||||
- 配置验证:加载时检查 `name`、`version` 必需字段
|
||||
- 状态追踪:`plugin_status` 字典跟踪每个插件的 `PluginStatus`
|
||||
|
||||
Reference in New Issue
Block a user