where = -1 where += 1 long_name = long_name[where:].strip().lower() return re.sub('[^a-z]', '', long_name) if __name__ == "__main__": students = Tree() db = MoodleDBConnection() sf = NS() results = db.get_all_users_activity_enrollments() sf.domain = 'student.ssis-suzhou.net' sf.AT = '@' from collections import defaultdict postfix = defaultdict(list) activities = defaultdict(list) homerooms = defaultdict( lambda : defaultdict(list) ) # PARSE RESULTS for result in results: activity_name, student_key = result student = students.get_student(student_key) if not student: continue homerooms[student.homeroom][ (student.lastfirst, student)].append(activity_name) activities[activity_name].append(student) postfix[activity_name].append(student.email)