diff --git a/app/runtime/extensions/plugin/monitor.py b/app/runtime/extensions/plugin/monitor.py index f194e4435..59f4b7259 100644 --- a/app/runtime/extensions/plugin/monitor.py +++ b/app/runtime/extensions/plugin/monitor.py @@ -6,13 +6,13 @@ import threading import time from collections.abc import Callable from pathlib import Path -from typing import Any, Optional +from typing import Any, Optional, cast -FederatedChangeResolver = Callable[[Path], Optional[tuple[str, Optional[dict], bool]]] +FederatedChangeResolver = Callable[[Path], Optional[tuple[str, Optional[dict[str, Any]], bool]]] RuntimePluginResolver = Callable[[Path], Optional[str]] MonitorSuppression = Callable[[str], bool] -LocalCandidateResolver = Callable[[Path], Optional[dict]] -LocalPluginSync = Callable[[str, Optional[dict]], bool] +LocalCandidateResolver = Callable[[Path], Optional[dict[str, Any]]] +LocalPluginSync = Callable[[str, Optional[dict[str, Any]]], bool] PluginReloader = Callable[[str], Any] DependencyManifestStatus = Callable[[Path], Optional[bool]] WatchFunction = Callable[..., Any] @@ -225,7 +225,8 @@ class PluginChangeMonitor: f"但跳过同步:{candidate.get('skip_reason')}" ) continue - local_plugins_to_sync[candidate.get("id")] = ( + # 本地市场候选的 id 来自仓库索引的插件标识。 + local_plugins_to_sync[cast(str, candidate.get("id"))] = ( candidate, event_path, True, diff --git a/mypy.ini b/mypy.ini index 65993902d..f8d338354 100644 --- a/mypy.ini +++ b/mypy.ini @@ -64,6 +64,7 @@ files = app/runtime/extensions/plugin/system.py, app/runtime/extensions/plugin/sync.py, app/runtime/extensions/plugin/paths.py, + app/runtime/extensions/plugin/monitor.py, app/runtime/extensions/service.py, app/runtime/compat/diagnostics.py, app/runtime/compat/manifest.py,