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

1"""记忆存储引擎 — facade,委托给 MemoryBackend""" 

2from __future__ import annotations 

3 

4from typing import Optional 

5from .backend import MemoryBackend 

6from .backends.json_backend import JSONBackend 

7 

8 

9class MemoryStore: 

10 """持久化记忆存储""" 

11 

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") 

17 

18 def save(self, key: str, value, tags: list = None): 

19 return self.backend.save(key, value, tags) 

20 

21 def load(self, key: str) -> Optional[dict]: 

22 return self.backend.load(key) 

23 

24 def delete(self, key: str): 

25 return self.backend.delete(key) 

26 

27 def list_keys(self, tag: str = None) -> list[str]: 

28 return self.backend.list_keys(tag) 

29 

30 def search(self, query: str) -> list[dict]: 

31 return self.backend.search(query)