def run(self, site, messages=None): site.clear() show_messages(messages) course_list = paginator(site.get_current_courses(site.active_user), 20) page_number = 0 while True: menu = { 'Home': '/teacher/', } if page_number - 1 >= 0: menu['Previous Page'] = '/teacher/courses/' if page_number + 1 < len(course_list): menu['Next Page'] = '/teacher/courses/' if len(course_list) == 0: print("There is no course for you.") else: pprint_table('Courses', course_list[page_number], foot='Page {} of {}'.format( page_number + 1, len(course_list))) choice = choose_from_menu(menu.keys()) if choice == 'Home': site.state = menu[choice] break elif choice == 'Previous Page': page_number -= 1 site.clear() elif choice == 'Next Page': page_number += 1 site.clear() return None
def run(self, site, messages=None): site.clear() show_messages(messages) course_list = paginator(site.get_verified_courses(), 20) page_number = 0 while True: menu = ['Home'] if page_number - 1 >= 0: menu.append('Previous Page') if page_number + 1 < len(course_list): menu.append('Next Page') if len(course_list) == 0: print("There is no verified course in the system.") else: pprint_table('Courses', course_list[page_number], foot='Page {} of {}'.format( page_number + 1, len(course_list))) choice = choose_from_menu(menu) if choice == 'Home': site.state = '/manager/' break elif choice == 'Previous Page': page_number -= 1 site.clear() elif choice == 'Next Page': page_number += 1 site.clear() return None
def run(self, site, messages=None): site.clear() show_messages(messages) course_list = paginator(site.active_user.get_scores(), 20) page_number = 0 while True: menu = { 'Home': '/student/', } if page_number - 1 >= 0: menu['Previous Page'] = '/student/workbook/' if page_number + 1 < len(course_list): menu['Next Page'] = '/student/workbook/' if len(course_list) == 0: print("There is no passed course in the system.") else: pprint_table( 'Workbook', course_list[page_number], foot='Page {} of {}'.format(page_number + 1, len(course_list)), cols_title=site.active_user.get_score_columns_title()) choice = choose_from_menu(menu.keys()) if choice == 'Home': site.state = menu[choice] break elif choice == 'Previous Page': page_number -= 1 site.clear() elif choice == 'Next Page': page_number += 1 site.clear() return None
def run(self, site, messages=None): site.clear() show_messages(messages) user_list = paginator(site.get_unverified_users(), 20) page_number = 0 while True: if len(user_list) == 0: print("There is no unverified user in the system.\n") else: pprint_table('New Users', copy.copy(user_list[page_number]), foot='Page {} of {}'.format( page_number + 1, len(user_list))) menu = ['Home'] if page_number - 1 >= 0: menu.append('Previous Page') if page_number + 1 < len(user_list): menu.append('Next Page') if len(user_list) > 0: menu.append('Accept') menu.append('Reject') choice = choose_from_menu(menu) if choice == 'Home': site.state = '/manager/' break elif choice == 'Previous Page': page_number -= 1 site.clear() elif choice == 'Next Page': page_number += 1 site.clear() else: student_row = get_input("Enter row number of the student: ", output_type=int) student_row -= 1 if student_row >= len( user_list[page_number]) or student_row < 0: return ['Invalid row number!'] if choice == 'Accept': site.accept_user(user_list[page_number][student_row]) else: site.reject_user(user_list[page_number][student_row]) return ['Operation completed successfully.'] return None
def show(self, target_list=None, **kw): article_list = self.load_list(target_list) if article_list: print json.dumps(article_list.file_metadata, indent=4) print '\nTotal articles: ', len(article_list.get_articles()), '\n' elif article_list is None: article_lists = self.get_all_list_dicts() als = [['Articles', 'Unresolved', 'Actions', 'Updated', 'Name']] for al in article_lists: als.append([al['total'], al['unresolved'], al['actions'], al['date'], al['name']]) print 'Article lists in', self._home_path if len(als) > 1: pprint_table(als) else: print 'none'
def run(self, site, messages=None): site.clear() show_messages(messages) course_list = paginator(site.get_available_courses(), 20) page_number = 0 while True: if len(course_list) == 0: print("There is no available course in the system.") else: pprint_table('Available Courses', copy.copy(course_list[page_number]), foot='Page {} of {}'.format( page_number + 1, len(course_list))) menu = ['Home'] if page_number - 1 >= 0: menu.append('Previous Page') if page_number + 1 < len(course_list): menu.append('Next Page') if len(course_list) > 0: menu.append('Select') choice = choose_from_menu(menu) if choice == 'Home': site.state = '/student/' break elif choice == 'Previous Page': page_number -= 1 site.clear() elif choice == 'Next Page': page_number += 1 site.clear() else: course_row = get_input( "Enter row number of the course to get it: ", output_type=int) course_row -= 1 if course_row >= len( course_list[page_number]) or course_row < 0: return ['Invalid row number!'] site.active_user.add_course( course_list[page_number][course_row]) return ['You added course successfully.'] return None
def run(self, site, messages=None): site.clear() show_messages(messages) teacher_list = paginator(site.get_verified_teachers(), 20) page_number = 0 while True: if len(teacher_list) == 0: print("There is no student in the system.") else: pprint_table('Teachers', copy.copy(teacher_list[page_number]), foot='Page {} of {}'.format(page_number + 1, len(teacher_list))) menu = ['Home'] if page_number - 1 >= 0: menu.append('Previous Page') if page_number + 1 < len(teacher_list): menu.append('Next Page') if len(teacher_list) > 0: menu.append('Rate') choice = choose_from_menu(menu) if choice == 'Home': site.state = '/student/' break elif choice == 'Previous Page': page_number -= 1 site.clear() elif choice == 'Next Page': page_number += 1 site.clear() else: teacher_row = get_input('Enter the row number of the teacher you wanna rate: ', output_type=int) teacher_row -= 1 if teacher_row < 0 or teacher_row >= len(teacher_list[page_number]): return ['Invalid row number!'] rate = get_input('How do you rate this teacher?\nChoose a natural number from 1 to 5: ', output_type=int) if rate < 1 or rate > 5: return ['Invalid rating!'] teacher_list[page_number][teacher_row].rates[rate - 1] += 1 return ['You rated the teacher successfully.'] return None
def run(self, site, messages=None): site.clear() show_messages(messages) student_list = [(student.get_average_score(), student) for student in site.get_verified_students()] student_list.sort() student_list = student_list[::-1] student_list = [[t[0], t[1].name, t[1].serial, t[1].field] for t in student_list] student_list = paginator(student_list, 20) page_number = 0 while True: if len(student_list) == 0: print("There is no verified students in the system.\n") else: pprint_table( 'Students', student_list[page_number], foot='Page {} of {}'.format(page_number + 1, len(student_list)), cols_title=['Avg. Score', 'Name', 'Student No.', 'Field']) menu = ['Home'] if page_number - 1 >= 0: menu.append('Previous Page') if page_number + 1 < len(student_list): menu.append('Next Page') choice = choose_from_menu(menu) if choice == 'Home': site.state = '/manager/' break elif choice == 'Previous Page': page_number -= 1 site.clear() elif choice == 'Next Page': page_number += 1 site.clear() return None
def main(): start = 0 end = 10 # it is called "encapsulation" left_rectangles = lambda parts: integrate_left_rect(f, start, end, parts) weddle = lambda parts: integrate_weddle(f, start, end, parts) # input # can replace int(input(...)) with fool_proof_int_input(...) parts_1 = fool_proof_int_input(">>> 1st number of partitions: ") parts_2 = fool_proof_int_input(">>> 2nd number of partitions: ") parts_1, parts_2 = min(parts_1, parts_2), max(parts_1, parts_2) if parts_1 <= 0 or parts_2 <= 0: print("Must be positive!") exit(1) # integration results res_1_left = left_rectangles(parts_1) res_2_left = left_rectangles(parts_2) res_1_weddle = weddle(parts_1) res_2_weddle = weddle(parts_2) # table formatting, can you not read the function name? print() pprint_table( [ "Method", "Left Rectangles", "Weddle", ], [f"N Partitions: {parts_1}", res_1_left, res_1_weddle], [f"N Partitions: {parts_2}", res_2_left, res_2_weddle], margin=2, ) print() print() pprint_table( [ "Method", "Left Rectangles", "Weddle", ], [ f"Absolute error", err_abs(res_1_left, res_2_left), err_abs(res_1_weddle, res_2_weddle), ], [ f"Relative error", err_rel(res_1_left, res_2_left), err_rel(res_1_weddle, res_2_weddle), ], margin=2, ) print() print("Left rectangles required is less prescise") # can replace float(input(...)) with fool_proof_float_input(...) prec = fool_proof_float_input(">>> prescision for left rectangles: ") left_target_parts, end_res = search_parts_prescision(left_rectangles, prec) print( f"It takes {left_target_parts} partitions to calculate with that prescision" ) print(f"End result is: {end_res:.8f}")