Lib.utils.PluginConfig
插件配置管理
1""" 2插件配置管理 3""" 4 5import inspect 6 7from Lib.core import ConfigManager, PluginManager 8from Lib.constants import * 9 10 11class PluginConfig(ConfigManager.ConfigManager): 12 """ 13 插件配置管理 14 """ 15 def __init__( 16 self, 17 plugin_name: str = None, 18 default_config: str | dict = None 19 ): 20 """ 21 Args: 22 plugin_name: 插件名称,留空自动获取 23 default_config: 默认配置,选填 24 """ 25 if plugin_name is None: 26 stack = inspect.stack() 27 stack.reverse() 28 while stack: 29 frame, filename, line_number, function_name, lines, index = stack.pop(0) 30 if filename.startswith(PLUGINS_PATH): 31 for plugin in PluginManager.found_plugins: 32 head, tail = os.path.split(plugin["file_path"]) 33 if head == PLUGINS_PATH: 34 # 是文件类型的插件 35 if plugin["file_path"] == filename: 36 plugin_name = plugin["name"] 37 else: 38 # 是库类型的插件 39 if filename.startswith(os.path.split(plugin["file_path"])[0]): 40 plugin_name = plugin["name"] 41 super().__init__(os.path.join(PLUGIN_CONFIGS_PATH, f"{plugin_name}.yml"), default_config) 42 self.plugin_name = plugin_name
12class PluginConfig(ConfigManager.ConfigManager): 13 """ 14 插件配置管理 15 """ 16 def __init__( 17 self, 18 plugin_name: str = None, 19 default_config: str | dict = None 20 ): 21 """ 22 Args: 23 plugin_name: 插件名称,留空自动获取 24 default_config: 默认配置,选填 25 """ 26 if plugin_name is None: 27 stack = inspect.stack() 28 stack.reverse() 29 while stack: 30 frame, filename, line_number, function_name, lines, index = stack.pop(0) 31 if filename.startswith(PLUGINS_PATH): 32 for plugin in PluginManager.found_plugins: 33 head, tail = os.path.split(plugin["file_path"]) 34 if head == PLUGINS_PATH: 35 # 是文件类型的插件 36 if plugin["file_path"] == filename: 37 plugin_name = plugin["name"] 38 else: 39 # 是库类型的插件 40 if filename.startswith(os.path.split(plugin["file_path"])[0]): 41 plugin_name = plugin["name"] 42 super().__init__(os.path.join(PLUGIN_CONFIGS_PATH, f"{plugin_name}.yml"), default_config) 43 self.plugin_name = plugin_name
插件配置管理
PluginConfig(plugin_name: str = None, default_config: str | dict = None)
16 def __init__( 17 self, 18 plugin_name: str = None, 19 default_config: str | dict = None 20 ): 21 """ 22 Args: 23 plugin_name: 插件名称,留空自动获取 24 default_config: 默认配置,选填 25 """ 26 if plugin_name is None: 27 stack = inspect.stack() 28 stack.reverse() 29 while stack: 30 frame, filename, line_number, function_name, lines, index = stack.pop(0) 31 if filename.startswith(PLUGINS_PATH): 32 for plugin in PluginManager.found_plugins: 33 head, tail = os.path.split(plugin["file_path"]) 34 if head == PLUGINS_PATH: 35 # 是文件类型的插件 36 if plugin["file_path"] == filename: 37 plugin_name = plugin["name"] 38 else: 39 # 是库类型的插件 40 if filename.startswith(os.path.split(plugin["file_path"])[0]): 41 plugin_name = plugin["name"] 42 super().__init__(os.path.join(PLUGIN_CONFIGS_PATH, f"{plugin_name}.yml"), default_config) 43 self.plugin_name = plugin_name
Arguments:
- plugin_name: 插件名称,留空自动获取
- default_config: 默认配置,选填