| 123456789101112131415161718192021222324252627 |
- """配色状态持久化:data/color_state.json(原子写)。"""
- import json
- import os
- from typing import Any
- from config import DATA_DIR, DATA_FILE
- def load_all() -> dict[str, Any]:
- try:
- return json.loads(DATA_FILE.read_text(encoding="utf-8"))
- except (OSError, json.JSONDecodeError):
- return {}
- def load_model_state(model: str) -> dict[str, Any]:
- return load_all().get(model, {})
- def save_model_state(model: str, state: dict[str, Any]) -> None:
- DATA_DIR.mkdir(parents=True, exist_ok=True)
- all_state = load_all()
- all_state[model] = state
- tmp = DATA_FILE.with_suffix(DATA_FILE.suffix + ".tmp")
- tmp.write_text(json.dumps(all_state, ensure_ascii=False, indent=2), encoding="utf-8")
- os.replace(tmp, DATA_FILE)
|