2022-12-10 19:59:16 +08:00
|
|
|
from typing import Dict, Any, Optional
|
2022-12-04 16:46:33 +08:00
|
|
|
|
2022-12-10 19:59:16 +08:00
|
|
|
from . import StaticData
|
2022-12-04 16:46:33 +08:00
|
|
|
from .models import PluginData
|
|
|
|
|
|
|
|
|
|
|
2022-12-24 00:16:17 +08:00
|
|
|
class PluginDataManager(StaticData[PluginData]):
|
2022-12-04 16:46:33 +08:00
|
|
|
"""
|
|
|
|
|
插件所有信息管理
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
def __init__(self):
|
2022-12-10 19:59:16 +08:00
|
|
|
super().__init__(None)
|
2022-12-04 16:46:33 +08:00
|
|
|
self._data: Dict[str, PluginData] = {}
|
|
|
|
|
|
|
|
|
|
def add_plugin_info(self, info: PluginData):
|
|
|
|
|
"""
|
|
|
|
|
说明:
|
|
|
|
|
添加插件信息
|
|
|
|
|
参数:
|
|
|
|
|
:param info: PluginInfo
|
|
|
|
|
"""
|
|
|
|
|
if info.model in self._data.keys() and self._data[info.model] == info:
|
|
|
|
|
raise ValueError(f"PluginInfoManager {info.model}:{info.name} 插件名称及类型已存在")
|
|
|
|
|
self._data[info.model] = info
|
|
|
|
|
|
|
|
|
|
def get(self, item: str, default: Any = None) -> PluginData:
|
|
|
|
|
return self._data.get(item, default)
|
|
|
|
|
|
|
|
|
|
def __getitem__(self, item) -> PluginData:
|
|
|
|
|
return self._data.get(item)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|