Spaces:
Runtime error
Runtime error
| import json | |
| import os | |
| from typing import Dict, Any, Optional | |
| import datetime | |
| CONFIG_DIR = ".letxipu" | |
| CONFIG_FILE = "search-config.json" | |
| PRESETS_FILE = "presets.json" | |
| class PersistenceManager: | |
| def __init__(self, project_path: str = "."): | |
| self.config_dir = os.path.join(project_path, CONFIG_DIR) | |
| self.config_file = os.path.join(self.config_dir, CONFIG_FILE) | |
| self.presets_file = os.path.join(self.config_dir, PRESETS_FILE) | |
| os.makedirs(self.config_dir, exist_ok=True) | |
| def save_config(self, config: Dict[str, Any]): | |
| with open(self.config_file, "w", encoding="utf-8") as f: | |
| json.dump(config, f, indent=2, ensure_ascii=False) | |
| def load_config(self) -> Dict[str, Any]: | |
| if os.path.exists(self.config_file): | |
| with open(self.config_file, "r", encoding="utf-8") as f: | |
| return json.load(f) | |
| return {} | |
| def save_preset(self, name: str, config: Dict[str, Any]): | |
| presets = self.load_presets() | |
| presets[name] = { | |
| "config": config, | |
| "timestamp": datetime.datetime.now().isoformat(), | |
| } | |
| with open(self.presets_file, "w", encoding="utf-8") as f: | |
| json.dump(presets, f, indent=2, ensure_ascii=False) | |
| def load_presets(self) -> Dict[str, Any]: | |
| if os.path.exists(self.presets_file): | |
| with open(self.presets_file, "r", encoding="utf-8") as f: | |
| return json.load(f) | |
| return {} | |
| def load_preset(self, name: str) -> Optional[Dict[str, Any]]: | |
| presets = self.load_presets() | |
| return presets.get(name, {}).get("config") | |
| def delete_preset(self, name: str): | |
| presets = self.load_presets() | |
| if name in presets: | |
| del presets[name] | |
| with open(self.presets_file, "w", encoding="utf-8") as f: | |
| json.dump(presets, f, indent=2, ensure_ascii=False) | |
| def list_presets(self) -> list: | |
| return list(self.load_presets().keys()) | |