Spaces:
Sleeping
Sleeping
File size: 1,155 Bytes
a5c1fa0 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | """Cache management service that stores serialized data."""
from src.serializer import serialize_value, deserialize_value
class CacheManager:
"""Simple in-memory cache with serialization."""
def __init__(self):
self._store = {}
def set(self, key: str, value) -> None:
"""Store a value in the cache after serializing it."""
# BUG: passing bytes (encoded) instead of str to serialize_value
serialized = serialize_value(str(value).encode('utf-8'))
self._store[key] = serialized
def get(self, key: str, default=None):
"""Retrieve and deserialize a value from cache."""
if key not in self._store:
return default
return deserialize_value(self._store[key])
def delete(self, key: str) -> bool:
"""Remove a key from cache."""
if key in self._store:
del self._store[key]
return True
return False
def clear(self):
"""Clear all cached values."""
self._store.clear()
def keys(self) -> list:
"""Return all cache keys."""
return list(self._store.keys())
|