import os import pandas as pd class Sentence: def __init__(self, text, incorrect, error_type, original): self.text = text self.incorrect = incorrect self.error_type = error_type self.original= original class Tester: def __init__(self): # load sentences_df sentences_df = pd.read_csv(os.path.join("testsentences.csv"), sep=";") # get subsets of sentences_df correct_df = sentences_df[sentences_df.Incorrect == 0] type_1_error_df = sentences_df[(sentences_df.Incorrect == 1) & (sentences_df["Error type"] == 1)] type_2_error_df = sentences_df[(sentences_df.Incorrect == 1) & (sentences_df["Error type"] == 2)] type_3_error_df= sentences_df[(sentences_df.Incorrect == 1) & (sentences_df["Error type"] == 3)] # get lists of sentence objects self.correct_sentences = [Sentence(entry["Sentence"], entry["Incorrect"], entry["Error type"], entry["Original Sentence"]) for i, entry in correct_df.iterrows()] self.type_1_error_sentences = [Sentence(entry["Sentence"], entry["Incorrect"], entry["Error type"], entry["Original Sentence"]) for i, entry in type_1_error_df.iterrows()] self.type_2_error_sentences = [Sentence(entry["Sentence"], entry["Incorrect"], entry["Error type"], entry["Original Sentence"]) for i, entry in type_2_error_df.iterrows()] self.type_3_error_sentences = [Sentence(entry["Sentence"], entry["Incorrect"], entry["Error type"], entry["Original Sentence"]) for i, entry in type_3_error_df.iterrows()] # remember last indexes self.correct_i = 0 self.type_1_i = 0 self.type_2_i = 0 self.type_3_i = 0 def get_next_correct(self): res = None if self.correct_i < len(self.correct_sentences): res = self.correct_sentences[self.correct_i] self.correct_i += 1 return res def get_next_type_1(self): res = None if self.type_1_i < len(self.type_1_error_sentences): res = self.type_1_error_sentences[self.type_1_i] self.type_1_i += 1 return res def get_next_type_2(self): res = None if self.type_2_i < len(self.type_2_error_sentences): res = self.type_2_error_sentences[self.type_2_i] self.type_2_i += 1 return res def get_next_type_3(self): res = None if self.type_3_i < len(self.type_3_error_sentences): res = self.type_3_error_sentences[self.type_3_i] self.type_3_i += 1 return res if __name__ == "__main__": tester = Tester() print(tester.get_next_type_1().text) print(tester.get_next_type_1().text)