# Day_Data class # Stores a list of tupples (bool done, string "description") # This class tries to load saved instances from previous sessions # Bad form? Whatever. Gets the job done. # TODO currently multi line strings for tasks will break the loader... import os class Day_Data(object): def __init__(self, day, month, year, save_dir): self.chores = [] self.day = day self.month = month self.year = year # fname needs to be ddmmyyyy self.fname = os.path.join(save_dir, day + month + year) self.load_data() # Tries to load self on instanciation def add_chore(self, bool_done, desc): self.chores.append([bool_done, desc]) def delete_chore(self, index): del self.chores[index] def get_index(self, index): return self.chores[index] def get_num_chores(self): return len(self.chores) def load_data(self): try: with open(self.fname, "r") as text_file: del self.chores[:] # Clear current list iter = int(text_file.readline()) for i in range(iter): done = bool(text_file.readline().strip()) chore = text_file.readline().strip() self.add_chore(done, chore) except IOError: print self.fname + " Does not exist, creating new instance..." def save_data(self): if len(self.chores): # If the object contains nothing, don't write with open(self.fname,"w") as text_file: text_file.write(str(len(self.chores)) + "\n") for i in self.chores: print >> text_file, i[0] print >> text_file, i[1]