Files
dify/api/core/helper/lru_cache.py
T
d069c668f8 Model Runtime (#1858)
Co-authored-by: StyleZhang <[email protected]>
Co-authored-by: Garfield Dai <[email protected]>
Co-authored-by: chenhe <[email protected]>
Co-authored-by: jyong <[email protected]>
Co-authored-by: Joel <[email protected]>
Co-authored-by: Yeuoly <[email protected]>
2024-01-02 23:42:00 +08:00

23 lines
675 B
Python

from collections import OrderedDict
from typing import Any
class LRUCache:
def __init__(self, capacity: int):
self.cache = OrderedDict()
self.capacity = capacity
def get(self, key: Any) -> Any:
if key not in self.cache:
return None
else:
self.cache.move_to_end(key) # move the key to the end of the OrderedDict
return self.cache[key]
def put(self, key: Any, value: Any) -> None:
if key in self.cache:
self.cache.move_to_end(key)
self.cache[key] = value
if len(self.cache) > self.capacity:
self.cache.popitem(last=False) # pop the first item