修复拼写;将str换为路径使其更清晰

This commit is contained in:
UnCLAS-Prommer
2026-03-15 23:48:15 +08:00
parent e1b3cf6e9f
commit cab502e727
4 changed files with 80 additions and 78 deletions

View File

@@ -1,3 +1,4 @@
from pathlib import Path
from typing import TYPE_CHECKING, Any, Dict, Iterable, List, Optional, Protocol
from src.common.logger import get_logger
@@ -19,9 +20,9 @@ class _RuntimeComponentManagerProtocol(Protocol):
self, name: str, component_type: str
) -> tuple[Optional["RegisteredComponent"], Optional[str]]: ...
def _find_duplicate_plugin_ids(self, plugin_dirs: List[str]) -> Dict[str, List[str]]: ...
def _find_duplicate_plugin_ids(self, plugin_dirs: List[Path]) -> Dict[str, List[Path]]: ...
def _iter_plugin_dirs(self) -> Iterable[str]: ...
def _iter_plugin_dirs(self) -> Iterable[Path]: ...
class RuntimeComponentCapabilityMixin:
@@ -159,11 +160,9 @@ class RuntimeComponentCapabilityMixin:
if not plugin_name:
return {"success": False, "error": "缺少必要参数 plugin_name"}
import os
if duplicate_plugin_ids := self._find_duplicate_plugin_ids(list(self._iter_plugin_dirs())):
details = "; ".join(
f"{conflict_plugin_id}: {', '.join(paths)}"
f"{conflict_plugin_id}: {', '.join(str(path) for path in paths)}"
for conflict_plugin_id, paths in sorted(duplicate_plugin_ids.items())
)
return {"success": False, "error": f"检测到重复插件 ID拒绝热重载: {details}"}
@@ -185,7 +184,7 @@ class RuntimeComponentCapabilityMixin:
for sv in self.supervisors:
for pdir in sv._plugin_dirs:
if os.path.isdir(os.path.join(pdir, plugin_name)):
if (pdir / plugin_name).is_dir():
try:
reloaded = await sv.reload_plugins(reason=f"load {plugin_name}")
if reloaded:
@@ -211,7 +210,7 @@ class RuntimeComponentCapabilityMixin:
if duplicate_plugin_ids := self._find_duplicate_plugin_ids(list(self._iter_plugin_dirs())):
details = "; ".join(
f"{conflict_plugin_id}: {', '.join(paths)}"
f"{conflict_plugin_id}: {', '.join(str(path) for path in paths)}"
for conflict_plugin_id, paths in sorted(duplicate_plugin_ids.items())
)
return {"success": False, "error": f"检测到重复插件 ID拒绝热重载: {details}"}