import sys import os sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(__file__)))) from typing import Dict, List, Optional from persistence.data_store import DataStore class DataStoreManager: _instance = None def __new__(cls): if cls._instance is None: cls._instance = super().__new__(cls) cls._instance._store = DataStore() return cls._instance @property def current_project(self) -> Optional[str]: return self._store.current_project @property def current_param(self) -> Optional[str]: return self._store.current_param def create_project(self, name: str, description: str = "") -> bool: """创建新项目""" return self._store.save_project(name, description) def save_param(self, project_name: str, param_name: str, channel_settings: Dict[int, Dict], description: str = "") -> bool: """保存参数配置""" return self._store.add_param_to_project(project_name, param_name, channel_settings, description) def get_project(self, name: str) -> Optional[Dict]: """获取项目数据""" project_data = self._store.load_project(name) return project_data.__dict__ if project_data else None def get_projects(self) -> List[str]: """获取所有项目列表""" return self._store.list_projects() def remove_project(self, name: str) -> bool: """删除项目""" return self._store.delete_project(name) @classmethod def get_instance(cls) -> 'DataStoreManager': """获取 DataStoreManager 实例""" if cls._instance is None: cls._instance = DataStoreManager() return cls._instance