Multipurpose-AI-Agent-Development / ordered_multimap_weakref.py
devve1's picture
Update ordered_multimap_weakref.py
600cdc6 verified
raw
history blame
730 Bytes
from weak_list import WeakList
from collections import defaultdict
class OrderedMultimapWeakRef:
def __init__(self):
self.data = []
self.index_list = WeakList()
def insert(self, text, title):
self.data.append(text)
self.index_list.append(title)
def get(self, key):
if key:
return [self.data[i][1] for i in self.index_map[key]]
else:
return [self.data[i][1] for i in self.keyless_values]
def items(self):
from collections import defaultdict
result = defaultdict(list)
for key, value in self.data:
result[key].append(value)
return result.items()
def all_items(self):
return self.data