Multipurpose-AI-Agent-Development / ordered_multimap.py
devve1's picture
Update ordered_multimap.py
47c26de verified
raw
history blame
1.06 kB
from weakref import WeakValueDictionary
from collections import defaultdict
class StringWrapper:
def __init__(self, s):
self.s = s
class OrderedMultiIndexMapWeakRef:
def __init__(self):
self.data = []
self.index_list = []
def insert(self, id, text, title: str = None, sub_title: str = None):
self.data.append(text)
if (title is not None) and (sub_title is not None):
self.index_list.append((id, WeakValueDictionary({'title': StringWrapper(title), 'sub_title': StringWrapper(sub_title)})))
elif (title is not None) and (sub_title is None):
self.index_list.append((id, WeakValueDictionary({'title': StringWrapper(title)})))
else:
self.index_list.append(id)
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 all_titles(self):
return self.index_list
def all_texts(self):
return self.data