zhenxun_bot/utils/manager/plugin_data_manager.py

32 lines
907 B
Python
Raw Normal View History

2023-02-27 19:44:47 +08:00
from typing import Any, Dict, Optional
2022-12-04 16:46:33 +08:00
from . import StaticData
2022-12-04 16:46:33 +08:00
from .models import PluginData
class PluginDataManager(StaticData[PluginData]):
2022-12-04 16:46:33 +08:00
"""
插件所有信息管理
"""
def __init__(self):
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
2023-04-02 22:57:36 +08:00
def get(self, item: str, default: Any = None) -> Optional[PluginData]:
2022-12-04 16:46:33 +08:00
return self._data.get(item, default)
2023-02-27 19:44:47 +08:00
def __getitem__(self, item) -> Optional[PluginData]:
2022-12-04 16:46:33 +08:00
return self._data.get(item)