Coverage for merco/memory/store.py: 100%
19 statements
« prev ^ index » next coverage.py v7.15.0, created at 2026-07-07 14:04 +0800
« prev ^ index » next coverage.py v7.15.0, created at 2026-07-07 14:04 +0800
1"""记忆存储引擎 — facade,委托给 MemoryBackend"""
2from __future__ import annotations
4from typing import Optional
5from .backend import MemoryBackend
6from .backends.json_backend import JSONBackend
9class MemoryStore:
10 """持久化记忆存储"""
12 def __init__(self, base_path: str = None, backend: MemoryBackend = None):
13 if backend:
14 self.backend = backend
15 else:
16 self.backend = JSONBackend(base_path or "~/.merco/memory")
18 def save(self, key: str, value, tags: list = None):
19 return self.backend.save(key, value, tags)
21 def load(self, key: str) -> Optional[dict]:
22 return self.backend.load(key)
24 def delete(self, key: str):
25 return self.backend.delete(key)
27 def list_keys(self, tag: str = None) -> list[str]:
28 return self.backend.list_keys(tag)
30 def search(self, query: str) -> list[dict]:
31 return self.backend.search(query)