import pickle class Ledger(): def __init__(self) -> None: self.data = [] self.indexes = {} # ID: Index def readLedger(self, ID): data = None index = self.indexes.get(ID, None) if index is not None: data = self.data[index] return data def writeLedger(self, ID, data): oldData = self.readLedger(ID) if oldData is not None: data = self.updateLedger(data, oldData) index = self.indexes[ID] self.data[index] = data else: self.data.append(data) index = len(self.data) - 1 self.indexes.update({ID: index}) self.saveLedger() def updateLedger(self, data, newData): return data