""" Pydantic 配置模型模块 该模块使用 Pydantic 定义了与 `config.toml` 文件结构完全对应的配置模型。 这使得配置的加载、校验和访问都变得类型安全和健壮。 """ from typing import List, Optional from pydantic import BaseModel, Field class NapCatWSModel(BaseModel): """ 对应 `config.toml` 中的 `[napcat_ws]` 配置块。 """ uri: str token: str reconnect_interval: int = 5 class BotModel(BaseModel): """ 对应 `config.toml` 中的 `[bot]` 配置块。 """ command: List[str] = Field(default_factory=lambda: ["/"]) ignore_self_message: bool = True permission_denied_message: str = "权限不足,需要 {permission_name} 权限" class RedisModel(BaseModel): """ 对应 `config.toml` 中的 `[redis]` 配置块。 """ host: str port: int db: int password: str class DockerModel(BaseModel): """ 对应 `config.toml` 中的 `[docker]` 配置块。 """ base_url: Optional[str] = None sandbox_image: str = "python-sandbox:latest" timeout: int = 10 concurrency_limit: int = 5 tls_verify: bool = False ca_cert_path: Optional[str] = None client_cert_path: Optional[str] = None client_key_path: Optional[str] = None class ConfigModel(BaseModel): """ 顶层配置模型,整合了所有子配置块。 """ napcat_ws: NapCatWSModel bot: BotModel redis: RedisModel docker: DockerModel