def parse_student(string: str): if string is not None: if string[:4] == 'None': if check_student_name(string[4:]): return Student(str(string[4:]), None) elif len(string) >= 8: if check_student_name(string[8:]): return Student(string[8:], int(string[:8], 16)) return None
def load_file(self, saver): self.students = [] for student_dict in saver.load(self.get_queue_save_file()): self.students.append(Student( name=student_dict['name'], telegram_id=student_dict['id'], )) state = saver.load(self.get_state_save_file()) self.queue_pos = state['_queue_pos']
def get_registered_students(self, names: list): students = [] for name in names: student = self.get_user_by_name(name) if student is None: student = self.find_similar_student(name) elif student is None: student = Student(name, 0) students.append(student) return students
def load_file(self, loader: ObjectSaver): loaded_values = loader.load(self._file_registered_users) if loaded_values is not None: self.students_reg = [] for student_dict in loaded_values: self.students_reg.append( Student( student_dict['name'], student_dict['id'], AccessLevel(student_dict['access']), ))
def parse_users(string: str): if '\n' in string: new_users_str_lines = string.split('\n') else: new_users_str_lines = [string] err_list = [] new_users = [] for line in new_users_str_lines: try: user_temp = line.split('-') new_users.append(Student(user_temp[0], int(user_temp[1]))) except ValueError: err_list.append(line) return new_users, err_list
def get_user_by_update(self, update): student = self.get_user_by_id(update.effective_user.id) if student is None: return Student(update.effective_user.full_name, None) return student
def append_new_user(self, name, telegram_id): new_student = Student(name, telegram_id) self.students_reg.append(new_student) return new_student
def find_similar_student(self, name: str): for student in self.students_reg: if StudentsRegisteredManager.is_similar(name, student.name): return student return Student(name, None)
def test_students_equality(self): s1 = Student('name1', 1) s2 = Student('name2', 1) self.assertTrue(s1 == s2) s1 = Student('name1', None) s2 = Student('name1', None) self.assertTrue(s1 == s2) s1 = Student('name1', None) s2 = Student('name2', None) self.assertFalse(s1 == s2) s1 = Student('name1', 1) s2 = Student('name1', None) self.assertFalse(s1 == s2) s1 = Student('name1', 1) s2 = Student('name1', 3) self.assertFalse(s1 == s2) s1 = Student('name1', 1) s2 = Student('name2', 3) self.assertFalse(s1 == s2)
from queue_bot.registered_manager import StudentsRegisteredManager from queue_bot.student import Student from queue_bot.misc.object_file_saver import FolderType from queue_bot.registered_manager import AccessLevel os.chdir('../') mode = 1 if mode == 1: source_file = FolderType.Data.value / StudentsRegisteredManager._file_registered_users registered_file = FolderType.Data.value / StudentsRegisteredManager._file_registered_users with source_file.open('rb') as fin: print('registered') students = [Student(name, tel_id) for tel_id, name in pickle.load(fin).items()] print(students) with registered_file.open('wb') as fout: pickle.dump(students, fout) elif mode == 2: access_source_file = FolderType.Data.value / StudentsRegisteredManager._file_access_levels access_levels_path = FolderType.Data.value / StudentsRegisteredManager._file_access_levels with access_levels_path.open('rb') as fin: access = pickle.load(fin) print('access') print(access)