核心变更: - engine.py(1781行)拆分为8个独立模块: lifecycle/security/deps/ datastore/pl_injector/watcher/signature/manager - 新增plugin-bridge: 事件总线 + 服务注册 + RPC通信 - 新增i18n: 国际化/多语言翻译支持 - 新增plugin-storage: 插件键值/文件存储 - 新增ws-api: WebSocket实时通信(pub/sub + 自定义处理器) - nodejs-adapter统一为Plugin ABC模式 Bug修复: - 修复load_all()中store_dir未定义崩溃 - 修复DependencyResolver入度计算(拓扑排序) - 修复PermissionError隐藏内置异常 - 修复CORS中间件头部未附加到响应 - 修复IntegrityChecker跳过__pycache__目录 - 修复版本号不一致(v2.0.0→v1.2.0) - 修复测试文件的Logger导入/路径/私有方法调用 - 修复context.py缺少typing导入 - 修复config.py STORE_DIR默认路径(./mods→./store) 测试覆盖: 14→91个测试, 全部通过
25 lines
693 B
Python
25 lines
693 B
Python
from typing import Any, Dict, Optional
|
|
|
|
|
|
class Context:
|
|
"""Provides access to configuration, state, and utilities during plugin execution."""
|
|
|
|
def __init__(self, config: Optional[Dict[str, Any]] = None):
|
|
self.config = config or {}
|
|
self._state: Dict[str, Any] = {}
|
|
|
|
def get(self, key: str, default: Any = None) -> Any:
|
|
return self.config.get(key, default)
|
|
|
|
def set_state(self, key: str, value: Any) -> None:
|
|
self._state[key] = value
|
|
|
|
def get_state(self, key: str, default: Any = None) -> Any:
|
|
return self._state.get(key, default)
|
|
|
|
def __repr__(self) -> str:
|
|
return f"Context(config={self.config})"
|
|
|
|
|
|
__all__ = ['Context']
|