From a8d40ff0b43e73f125a069e0715ab61f52cedb90 Mon Sep 17 00:00:00 2001 From: RF-Tar-Railt Date: Mon, 4 Nov 2024 14:26:04 +0800 Subject: [PATCH] :bug: fix plugin config read --- README.md | 2 +- arclet/entari/config.py | 4 ++-- arclet/entari/plugin/__init__.py | 2 ++ arclet/entari/plugin/module.py | 3 +-- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 787e458..91947e3 100644 --- a/README.md +++ b/README.md @@ -88,7 +88,7 @@ basic: ::echo: true ::auto_reload: true plugin: - auto_reload: + ::auto_reload: watch_dirs: ["plugins"] ``` diff --git a/arclet/entari/config.py b/arclet/entari/config.py index e3180a7..562b838 100644 --- a/arclet/entari/config.py +++ b/arclet/entari/config.py @@ -38,7 +38,7 @@ def _updater(self: Config): with self.path.open("r", encoding="utf-8") as f: data = json.load(f) self.basic = data.get("basic", {}) - self.plugin = data.get("plugin", {}) + self.plugin = data.get("plugins", {}) obj = cls(_path, _updater) cls.instance = obj @@ -53,7 +53,7 @@ def _updater(self: Config): with self.path.open("r", encoding="utf-8") as f: data = yaml.safe_load(f) self.basic = data.get("basic", {}) - self.plugin = data.get("plugin", {}) + self.plugin = data.get("plugins", {}) obj = cls(_path, _updater) cls.instance = obj diff --git a/arclet/entari/plugin/__init__.py b/arclet/entari/plugin/__init__.py index 7087337..209e755 100644 --- a/arclet/entari/plugin/__init__.py +++ b/arclet/entari/plugin/__init__.py @@ -7,6 +7,7 @@ from loguru import logger from tarina import init_spec +from ..config import Config from .model import Plugin from .model import PluginMetadata as PluginMetadata from .model import RegisterNotInPluginError, _current_plugin @@ -35,6 +36,7 @@ def load_plugin(path: str, config: dict | None = None, recursive_guard: set[str] config (dict): 模块配置 recursive_guard (set[str]): 递归保护 """ + config = config or Config.instance.plugin.get(path) if recursive_guard is None: recursive_guard = set() path = path.replace("::", "arclet.entari.builtins.") diff --git a/arclet/entari/plugin/module.py b/arclet/entari/plugin/module.py index e2c0b6e..89d8bef 100644 --- a/arclet/entari/plugin/module.py +++ b/arclet/entari/plugin/module.py @@ -10,7 +10,6 @@ from types import ModuleType from typing import Optional -from ..config import Config from .model import Plugin, PluginMetadata, _current_plugin from .service import plugin_service @@ -210,7 +209,7 @@ def exec_module(self, module: ModuleType, config: Optional[dict[str, str]] = Non return # create plugin before executing - plugin = Plugin(module.__name__, module, config=config or Config.instance.plugin.get(module.__name__, {})) + plugin = Plugin(module.__name__, module, config=config or {}) # for `dataclasses` module sys.modules[module.__name__] = plugin.proxy() # type: ignore setattr(module, "__plugin__", plugin)