def read_data(fname, mode, **kwargs): #This is a totally ad-hoc function. Mode currently #is either 'eirik' or 'oystein', referring to which way the file is #formatted if mode == "eirik": data = np.loadtxt(fname, skiprows=1, delimiter=',') data = np.append(data[:119, :], data[120:, :], axis=0) grade_data = Grades(data, mode="complete") elif mode == "oystein": grade_data = Grades(np.loadtxt(fname), mode="final_only") if "add_commands" in kwargs: comm_list = kwargs["add_commands"] else: comm_list = [] if "remove_fail" in comm_list: grade_data = remove_fails(grade_data, kwargs["fail_filename"], kwargs["fail_delimiter"]) if "sort_grades" in comm_list: if "sort_along_column" in kwargs: grade_data = sort_grades(grade_data, kwargs["sort_along_column"]) else: grade_data = sort_grades(grade_data) return grade_data
def average_grades(ingrades, along_column=-1, round_nearest=True): """Along_column can be a list as well, if you want to average over two different columns""" #Test whether along_column is an iterable try: iterator = iter(along_column) except TypeError: along_column = np.array([along_column] * len(ingrades)) else: along_column = np.array(along_column) if round_nearest: data = np.rint(np.array(ingrades[0].data[:, along_column[0]])) else: data = np.array(ingrades[0].data[:, along_column[0]]) for i in xrange(1, len(ingrades)): if round_nearest: data += np.rint(ingrades[i].data[:, along_column[i]]) else: data += ingrades[i].data[:, along_column[i]] data /= len(ingrades) return Grades(np.array([ingrades[0].data[:, 0], data]).T, mode="Averaged")
def getHtml(self, user): can_edit = user.id == self.session.user.id header = h3('School Information') #help = span(a('Why do I need to provide this information?'), # class_='helpMsg', # title='By knowing what school or schools you are ' # 'interested in, we can provide you with conversations ' # 'that are meaningful to you.') table = HtmlTable(class_='table') # header col_header = ['Role', 'School', 'Grade'] if can_edit: col_header.append(' ') table.addHeader(col_header) # schools for s in user.schools: row = [s['relation'], s['school'], s['grade']] row[2] = Grades().table[row[2]]['name'] if can_edit: school_info = '%s - %s - %s Grade' % tuple(row) row.append( a('X', class_='delete', onclick="javascript:deleteSchool(%s, '%s');" % (s['id'], js_arg(school_info)))) table.addRow(row) table.setColClass(3, 'right-center') # add school row if self.add_school_row: table.addRow(self.schoolFields()) # buttons buttons = '' if can_edit: # [add new school] button if not self.add_school_row: add_button = a('Add another school', class_='btn btn-primary first-button', onClick='javascript:addSchoolRow();') buttons += add_button # [save] + [cancel] buttons if self.add_school_row: save_button = a('Save', class_='btn btn-success first-button', onClick='javascript:saveNewSchool()') cancel_button = a('Cancel', class_='btn btn-warning', onclick="location.href='profile.py';") buttons += save_button + cancel_button # hidden fields hidden_fields = \ input(type='hidden', name='add_school_row') + \ input(type='hidden', name='save_new_school') + \ input(type='hidden', name='delete_user_school') body = div(table.getTable() + buttons + hidden_fields, id='schoolInfo') return header + form(body, name='si_form', method='POST')
def _gradeField(self): '''Build school grade field''' options = {0: 'Select grade'} for id, record in Grades().table.items(): options[id] = record['name'] return self.mkDropDownMenu('grade', options)
def sort_grades(ingrades, along_column=-1): return Grades(ingrades.data[ingrades.data[:, along_column].argsort()], mode=ingrades.mode)
def __init__(self, name, grades): self.__name = name self.__grades = dict() for grade in grades: subjectName = grade[0] self.__grades[subjectName] = Grades(grade[1])
def remove_entries_from_grades(ingrades, entries): rows = np.empty(0) for entry in entries: rows = np.append(rows, np.argwhere(ingrades.data[:, 0].astype(int) == entry)) return Grades(np.delete(ingrades.data, rows, axis=0), mode=ingrades.mode)
def addSubjectAndGrade(self, subjectName, grades): self.__grades[subjectName] = Grades(grades)
from courses import Courses from grades import Grades from quizzes import Quizzes from assignments import Assignments from forums import discussion_forums from discussions import Discussions from announcements import Announcements if len(sys.argv) == 1: exit(1) if sys.argv[1] == '-c' or sys.argv[1] == '--courses': c = Courses() c.show_courses() elif sys.argv[1] == '-g' or sys.argv[1] == '--grade': c = Grades() x = sys.argv[2] c.show_grades(x) elif sys.argv[1] == '-q' or sys.argv[1] == '--quiz': c = Quizzes() x = sys.argv[2] c.show_quizzes(x) elif sys.argv[1] == '-a' or sys.argv[1] == '--assignment': c = Assignments() if len(sys.argv) == 2: c.show_all_assignments() elif len(sys.argv) == 3 and sys.argv[2] == '-due': c.show_all_due_assignments() elif sys.argv[1] == '-f' or sys.argv[1] == '--forum': c = discussion_forums() if len(sys.argv) == 3:
def __init__(self, number, student): self.number = number self.student = student self.grades = Grades()
def __init__(self, student_name, student_surname): self.__student_name = student_name self.__student_surname = student_surname self.__grades = Grades()
from grades import Grades if __name__ == '__main__': login = input('Введите логин пользователя: ') password = input('Введите пароль пользователя: ') grades = Grades(login, password) for grade in grades: print( f'{grade.name:.<50}.{str(grade.all_grades).strip("{}")}, middle: {grade.middle}' ) input()