diff --git a/transcription_dict.py b/transcription_dict.py index e33531e..112adba 100644 --- a/transcription_dict.py +++ b/transcription_dict.py @@ -1,10 +1,11 @@ import time import threading +from typing import Dict, Tuple, Any class TranscriptionDict: def __init__(self, max_size=1000): self.max_size = max_size - self._dict = {} + self._dict: Dict[str, Tuple[str, float]] = {} # Start a thread to clean expired items every 3 minutes self._clean_thread = threading.Thread(target=self._clean_expired_items_periodically) @@ -15,10 +16,10 @@ class TranscriptionDict: return len(self._dict) def get(self, key): - return self._dict[key] + return self._dict[key]['value'] def set(self, key, value): - self._dict[key] = value + self._dict[key] = {'value': value, 'timestamp': time.time()} if len(self._dict) > self.max_size: self._clean_expired_items() @@ -30,6 +31,7 @@ class TranscriptionDict: expired_items = [k for k, v in self._dict.items() if now - v[1] >= 180] # 180 seconds = 3 minutes for key in expired_items: del self._dict[key] + print(f"Cleaned {len(expired_items)} expired items from the cache") def _clean_expired_items_periodically(self): while True: