具型別的設定結構
assets._coerce 只轉換單一值,``json_schema`` 只驗證 JSON 結構,但沒有任何東西能把已解析的設定 dict
綁定成具型別的物件,並做必填欄位強制與選項約束。本功能依宣告的欄位驗證一個 mapping,轉換型別並回報可
據以行動的錯誤 —— 標準函式庫版的 pydantic-settings。
純標準函式庫(dataclasses);不匯入 PySide6。驗證為純函式(輸入 mapping、輸出報告),因此在 CI
中完全具決定性。
無頭 API
from je_auto_control import ConfigSchema, ConfigField, validate_config
schema = ConfigSchema({
"port": ConfigField("int", required=True),
"env": ConfigField("str", default="dev", choices=["dev", "prod"]),
"debug": ConfigField("bool", default=False),
})
report = schema.validate({"port": "8080", "debug": "yes"})
# {"ok": True, "config": {"port": 8080, "env": "dev", "debug": True}, "errors": []}
ConfigField 宣告 type``(``str / int / float / bool)、選用的 default、required
旗標、choices 與 env 提示。ConfigSchema.validate 轉換每個存在的值、套用預設、強制必填與選項,
回傳 {ok, config, errors}``(錯誤為 ``{field, error})。ConfigSchema.from_dict 從純 spec 建立結構,
validate_config 一次完成 spec 加 mapping,``coerce`` 公開值轉換(布林接受 true/yes/on 等)。
執行器命令
AC_validate_config 依 schema spec 驗證 config mapping,回傳 {ok, config, errors}。它以 MCP
工具 ac_validate_config 以及 Script Builder 中 Data 分類下的命令提供。