from abc import ABC, abstractmethod class MemoryBase(ABC): @abstractmethod def get(self, memory_id): """ Retrieve a memory by ID. Args: memory_id (str): ID of the memory to retrieve. Returns: dict: Retrieved memory. """ pass @abstractmethod def get_all(self): """ List all memories. Returns: list: List of all memories. """ pass @abstractmethod def update(self, memory_id, data): """ Update a memory by ID. Args: memory_id (str): ID of the memory to update. data (dict): Data to update the memory with. Returns: dict: Updated memory. """ pass @abstractmethod def delete(self, memory_id): """ Delete a memory by ID. Args: memory_id (str): ID of the memory to delete. """ pass @abstractmethod def history(self, memory_id): """ Get the history of changes for a memory by ID. Args: memory_id (str): ID of the memory to get history for. Returns: list: List of changes for the memory. """ pass