def run(self): try: if self.rank == 1: for test in range(1, self.limit): began = time() kanji_set = [] while len(kanji_set) != 4: kanji = Kanji.get_random(self.al.random_int()) if kanji is not None: if kanji not in kanji_set: kanji_set.append(kanji) print 'Quadruple selected: ' + str(time() - began) self.partDone.emit(float(test)/self.limit * 100) else: counter = 0.0 while Kanji.picked_max() < self.rank: began = time() kanji_set = [] while len(kanji_set) != 4: kanji = Kanji.get_random(self.al.random_int()) if kanji is not None: if kanji not in kanji_set: kanji_set.append(kanji) print 'Quadruple selected: ' + str(time() - began) counter += 0.0001 self.partDone.emit(float(counter) * 100) except Exception as e: print e.message self.over.emit(True)