Code:
class Catche:
# limited sized dictionary
def __init__(self, size):
super().__init__()
self._limit: int = size
self._keys: UniqueItemSizeLimitedPriorityQueue = UniqueItemSizeLimitedPriorityQueue(size)
self._d1: dict[str, str] = {}
def insert(self, key: str, value: str):
# update
if self._d1.__contains__(key):
self._d1[key] = value
return
# insert:
if self._keys.size() == self._limit:
temp = self._keys.peak()
del self._d1[temp]
self._keys.insert(key)
self._d1[key] = value
def clear(self):
self._keys.clear()
self._d1.clear()
def read(self, key: str) -> str:
if not self._d1.__contains__(key):
return "null"
return self._d1[key]
dependency classes:
https://github.com/yotamarker/public-livinGrimoire/blob/master/livingrimoire%20start%20here/LivinGrimoire%20python/Python%20Auxiliary%20modules/AXPython.py