in Oracle.py [0:0]
def prepare(self, **kwargs):
"""
Iterate through the data and populate the pre-prepared answers
"""
if self._prepared:
return
if self.read_cache:
self._prepared = self.prepareFromCached()
if self._prepared:
print("read from cache")
return
self.workload.prepare()
print(f"reset oracle answers")
self.answers = []
query_iter = self.workload.genQueries()
q = next(query_iter)
for i, x in enumerate(self.workload.genData()):
self.add(x)
while q and i == q.data_idx:
answer = self.query(q.data_idx, q.query, q.parameters)
self.answers.append(copy.deepcopy(answer))
assert(len(self.answers) == q.qid+1)
q = next(query_iter, None)
self.printAnswers()
self.writeToCache() # note: I should not write to cache if not using parallel processes
self._prepared = True