ai-agent / cache_manager.py
abdibrahem's picture
Add caching
47b9de8
from collections import OrderedDict
class CacheManager:
"""Simple cache manager with basic operations and LRU eviction."""
def __init__(self, max_size=100):
"""Initialize cache with maximum size."""
self.max_size = max_size
self.cache = OrderedDict()
def set(self, key, value):
"""Set a key-value pair in cache."""
# If key exists, remove it first
if key in self.cache:
del self.cache[key]
# If cache is full, remove oldest item
if len(self.cache) >= self.max_size:
self.cache.popitem(last=False) # Remove first (oldest) item
# Add new item
self.cache[key] = value
def get(self, key):
"""Get value by key. Returns None if not found."""
if key in self.cache:
# Move to end (mark as recently used)
value = self.cache.pop(key)
self.cache[key] = value
return value
return None
def delete(self, key):
"""Delete a key from cache. Returns True if deleted, False if not found."""
if key in self.cache:
del self.cache[key]
return True
return False
def clear(self):
"""Clear all items from cache."""
self.cache.clear()
def size(self):
"""Get current cache size."""
return len(self.cache)