def _processMeetResults(self, fn): runners = Oparse.getRunners(fn) cclasses = set([r.cclass for r in runners]) for c in cclasses: incclass = [r for r in runners if r.cclass == c] Oparse.assignPositions(incclass) Oparse.assignScore(incclass, "COC") teams = Oparse.calcTeams(runners, "COC") Oparse.assignTeamPositions(teams, "COC") resultrunners = [r for r in runners if r.status != "DidNotStart"] return resultrunners, teams
def process_results(self): path = "C:\\WIOL_SEASON_RESULTS_XML\\" p = re.compile('^WIOL(\d|c)\.xml$') events = [ f for f in os.listdir(path) if p.match(f) != None] # TODO: is this working? Feels like GUI is frozen? flush? self.status['text'] = 'Processing ' + str(len(events)) + ' results files.' urls = Oparse.getURLs('ResultURLs.csv') meetdata = {} for file in events: # TODO: use os module to split file names base vs extension infile = path + file outfileroot = path + file[:-4] runners, teams = self._processMeetResults(infile) meeturls = urls[file[:-4]] meeturls['indv_s'] = urls['season']['indv'] meeturls['team_s'] = urls['season']['team'] meeturls['full_s'] = urls['season']['ws'] Oout.writeIndividualHTML(runners, meeturls, outfileroot+'-individualresults.html') Oout.writeIndividualHTML(runners, meeturls, outfileroot+'-WIOLIndividuals.html', {'WIOL':True}) Oout.writeTeamHTML(teams, meeturls, outfileroot+'-teamresults.html') meetdata[file[:-4]] = {'indv': runners, 'teams': teams} seasonurls = {} # urls['season'] but keys are renamed. seasonurls['indv_s'] = urls['season']['indv'] seasonurls['team_s'] = urls['season']['team'] seasonurls['full_s'] = urls['season']['ws'] Sindv, Steam = self._processSeasonResults(meetdata) Oout.writeSeasonIndivHTML(Sindv, seasonurls, path+'WIOLseason-INDV.html', {'WIOL':True}) Oout.writeSeasonIndivHTML(Sindv, seasonurls, path+'WinterOseason.html', {'WIOL':False}) Oout.writeSeasonTeamsHTML(Steam, seasonurls, path+'WIOLseason-TEAM.html') self.status['text'] = 'Done processing results' return
def _processSeasonResults(self, meetdata): Sindv, Steam = Oparse.createSeasonResults(meetdata) Sindv = Oparse.assignSeasonPositions(Sindv) Steam = Oparse.assignSeasonPositions(Steam) return Sindv, Steam