def main(): student_repo = RepoWritingFileStudent() assign_repo = RepoWritingFileAssign() grade_repo = RepoWritingFileGrade(student_repo, assign_repo) validator_student = ValidatorStudent() validator_assign = ValidatorAssign() validator_grade = ValidatorGrade() controller_undo_redo = UndoController() controller_student = ControllerStudent(student_repo, validator_student, controller_undo_redo) controller_assignment = ControllerAssignment(assign_repo, validator_assign, controller_undo_redo) controller_grade = ControllerGrade(student_repo, assign_repo, grade_repo, validator_grade, controller_undo_redo) console = Console(controller_student, controller_assignment, controller_grade, controller_undo_redo) console.pre_run()