def action(): """ Scan files in match_data to wonder value extremes """ result = find_stored_stat('match_data', find_wonder_func, {}) new_records = [] for person in result: if result[person][1] == 0: continue ratio = result[person][0] / result[person][1] new_records.append( [person, result[person][1], result[person][0], ratio]) new_records = sorted(new_records, key=itemgetter(0)) wwon_list = sorted(new_records, key=itemgetter(2))[0:50] bwon_list = sorted(new_records, key=itemgetter(2), reverse=True)[0:50] wav_list = sorted(new_records, key=itemgetter(3))[0:50] bav_list = sorted(new_records, key=itemgetter(3), reverse=True)[0:50] out_info = {} out_info['highest wonder values'] = stringify(bwon_list, FORMATS) out_info['lowest wonder values'] = stringify(wwon_list, FORMATS) out_info['highest wonder average'] = stringify(bav_list, FORMATS) out_info['lowest wonder average'] = stringify(wav_list, FORMATS) odata = gen_html_page(out_info, 'Wonder Numbers', 'Wonder Numbers', tabhdrs=[['Name', 'Matches', 'Wonder', 'Average']]) ofile = 'generated_files' + os.sep + 'wonder.html' with open(ofile, 'w') as fdesc: fdesc.write(odata) new_records = stringify(new_records, FORMATS) cfile = 'generated_files' + os.sep + 'wonder.csv' with open(cfile, 'w') as cdesc: for record in new_records: cdesc.write(','.join(record) + '\n')
def make_html(txt_ptr): """ Generate the html page. txt_ptr contains the data extracted in action(). """ out_info = {} for tpass in ['Total', 'Average']: for column in range(1, 7): if column == 6: ctext = 'OMS' else: ctext = str_oms_scr(column) npeeps = txt_ptr[tpass] slist = sorted(npeeps, key=itemgetter(column), reverse=True)[0:50] header = "%s %s scores" % (tpass, ctext) nlist = [] for entry in slist: nlist.append([entry[0], entry[7], entry[column]]) fmt_list = ['', '', STR_FMT[tpass]] out_info[header] = stringify(nlist, fmt_list) odata = gen_html_page(out_info, 'OMS', 'Optimal Matchday Scores', tabhdrs=[['Name', 'Matches', 'Number']]) ofile = 'generated_files' + os.sep + 'oms.html' with open(ofile, 'w') as odesc: odesc.write(odata)
def hun_compute(username): """ Scan files in question_data and compute hun values for username """ qinfo = get_dir_with_field(username, 'question_data') result = find_stored_stat('question_data', name_wrap(qinfo[username]), {}) new_records = [] for person in result: new_records.append([person, result[person]]) hun_list = {} hun_list['Lowest'] = stringify( sorted(new_records, key=itemgetter(1))[0:50], FORMATS) hun_list['Highest'] = stringify( sorted(new_records, key=itemgetter(1), reverse=True)[1:51], FORMATS) for huntype in ['Highest', 'Lowest']: out_info = {} out_info['x'] = hun_list[huntype] odata = gen_html_page(out_info, 'HUN', '%s HUN values for %s' % (huntype, username), centered=True, tabhdrs=['Name', 'HUN']) ofile = 'generated_files' + os.sep + '%s_HUN_for_%s.html' % (huntype, username) with open(ofile, 'w') as fdesc: fdesc.write(odata) new_records = stringify(sorted(new_records), FORMATS) ofile = 'generated_files' + os.sep + 'hun_%s.csv' % username with open(ofile, 'w') as fdesc: for record in new_records: fdesc.write(','.join(record) + '\n')
def main_routine(): """ Generate an html page to display Llama cycles """ odata = gen_html_page({'x': lformat(action())}, 'Llama Cycles', 'Shortest Llama Cycles', centered=True, tabhdrs=['Name', 'Season', 'Cycle Size', 'Pattern']) ofile = 'generated_files' + os.sep + 'cycle_data.html' ifile = 'html_texts' + os.sep + 'cycle_data.txt' odata = inject_text(odata, ifile) with open(ofile, 'w') as fdesc: fdesc.write(odata)
def action(): """ Scan files in match_data for mops information """ result = find_stored_stat('match_data', find_mops_func, {}) new_records = [] for person in result: size = len(result[person][0]) new_records.append( [person, result[person][1], size, result[person][0]]) for column in range(0, 3): new_records = sorted(new_records, key=itemgetter(column)) out_list = [] for aline in new_records: if aline[1] > 100: break out_list.append([aline[0], str(aline[1])]) out_info = {} out_info['x'] = out_list odata = gen_html_page(out_info, 'MOPS', 'My Own Private Scorigami', centered=True, tabhdrs=['Name', 'Matches Needed']) ofile = 'generated_files' + os.sep + 'mops.html' ifile = 'html_texts' + os.sep + 'mops.txt' odata = inject_text(odata, ifile) with open(ofile, 'w') as fdesc: fdesc.write(odata) ofile = 'generated_files' + os.sep + 'mops.csv' with open(ofile, 'w') as cdesc: for record in new_records: csvrec = [str(i) for i in record[0:3]] if record[2] > 0: csvrec.extend(xlate_num2score(record[3])) cdesc.write(','.join(csvrec) + '\n')