import gen tba = gen.setup() maxPages = 20 finalistTeams = [] for i in range(0, maxPages): gen.progressBar(i, maxPages) teams = tba.teams(i, None, False, True) if teams == []: break for team in teams: finalist = 0 for award in tba.team_awards(team): if award['award_type'] == 2: finalist += 1 elif award['award_type'] == 1: break finalistTeams.append({'Team': team[3:], 'Finalist Count': finalist}) finalistTeams = sorted(finalistTeams, key=lambda k: k['Finalist Count'], reverse=True)
#Structures to hold commonly used data eventData = {} teamsList = [] #Fetch district teams and events distTeams = tba.district_teams(str(YEAR) + DISTRICT, False) distEvents = tba.district_events(str(YEAR) + DISTRICT) #Store data on common district events first for event in distEvents: eventData[event['key']] = tba.event_oprs(event['key']) teamCount = 0 for team in distTeams: teamCount += 1 gen.progressBar(teamCount, len(distTeams)) oprs = [] events = tba.team_events(team['key'], YEAR) for event in events: #Only run on official events, ignores preseason, offseason, and unlabled #Try / Except to handle borked events #Tries to load data from eventData first, only hits TBA if needed #Stores team OPR data for later use. if event['event_type'] in range(0, 10): try: if event['key'] in eventData.keys(): oprs.append(eventData[event['key']]['oprs'][team['key']]) else:
'currentTeams': [], 'prevTeams': [], 'years': {} } for year in yearRange: districtStats[district]['years'][str(year)] = { 'dist': False, 'teams': 0, 'added': 0, 'lost': 0, 'teamList': [] } for count, y in enumerate(yearRange): gen.progressBar(count, len(yearRange)) currentDistricts = tba.districts(y) year = str(y) for district in currentDistricts: if district['abbreviation'] != 'tx': districtStats[ district['abbreviation']]['years'][year]['dist'] = True teams = [] for page in range(0, 20): try: newTeams = tba.teams(page, y) if newTeams == []:
#IRI, second draft round is reversed draftPoints = 9 - alliance['number'] except: pass #Find points for playing in elims for match in teamMatches: if match['comp_level'] != "qm": if gen.matchResult(team, match) == 'win': elimPoints += 5 return [teamRank, draftPoints, rankPoints, elimPoints] teamData = [] for idx, team in enumerate(teams): gen.progressBar(idx, teamCount) rank, draft, rankP, elim = calcPoints(team, EVENT) total = draft + rankP + elim teamData.append({ 'team': team[3:], 'rank': rank, 'total': total, 'rankP': rankP, 'draft': draft, 'elim': elim }) colOrder = ['team', 'rank', 'total', 'rankP', 'draft', 'elim'] gen.listOfDictToCSV('iriPoints', teamData, colOrder)
teamOrEvent['country']) zipCode = geocoder.osm((tmpLoc.lat, tmpLoc.lng), method="reverse").postal else: zipCode = teamOrEvent['postal_code'] if teamOrEvent['country'] == "Canada": zipCode = zipCode[:3] except: zipCode = "" return zipCode seasonEvents = tba.events(2018) for (idx, event) in enumerate(seasonEvents): gen.progressBar(idx, len(seasonEvents)) district = False if event['district'] != None: district = True if event['state_prov'] == "TX" or event['state_prov'] == 'PA': district = True if event['event_type'] in range(0, 6): data.append({ "type": "Event", "key": event['key'], "zip": handleZip(event), "state": event['state_prov'], "country": event['country'],
import gen tba = gen.setup() EVENT = "2018txri" teams = tba.event_teams(EVENT, False, True) elimMatches = [] for match in tba.event_matches(EVENT, True): if match['comp_level'] != 'qm': elimMatches.append(match) data = [] for idx, team in enumerate(teams): gen.progressBar(idx, len(teams)) status = tba.team_status(team, EVENT) record = status['qual']['ranking']['record'] qualPoints = record['wins'] * 3 + record['ties'] rank = status['qual']['ranking']['rank'] if rank == 1: rankPoints = 12 elif rank < 4: rankPoints = 8 elif rank < 9: rankPoints = 5 elif rank < 13: rankPoints = 3
tba = gen.setup() def inMAR(event): # Mid Atlantic Robotics Bylaws Article 1 Section 2 define the PA part of MAR as 'the counties of Pennsylvania including Harrisburg, eastward' # Harrisburg's longitude is listed as -76.884 , I used -77 as it's a round number and gives a ~7 mile margin. HARRISBURG_WEST_LON = -77 return event['lng'] > HARRISBURG_WEST_LON data = [] years = range(2011, 2019) for idx, year in enumerate(years): gen.progressBar(idx, len(years)) yearData = {'WOW': 0, 'CHS': 0, 'NE': 0, 'MAR': 0, 'ON': 0, 'NY': 0} yearEvents = tba.events(year) for event in yearEvents: if event['event_type'] == 0: if event['state_prov'] in areas: yearData['WOW'] += int(event['state_prov'] in WOW) yearData['CHS'] += int(event['state_prov'] in CHS) yearData['NE'] += int(event['state_prov'] in NE) yearData['MAR'] += int(event['state_prov'] in MAR) yearData['ON'] += int(event['state_prov'] == 'ON') yearData['NY'] += int(event['state_prov'] == 'NY') if event['state_prov'] == 'PA': yearData['MAR'] += int(inMAR(event))
import gen YEAR = 2018 tba = gen.setup() hasDeclines = [] for year in range(2010, YEAR + 1): print("\nProcessing", year) events = tba.events(YEAR, True, True) maxSize = len(events) currentSize = 0 for event in events: currentSize += 1 gen.progressBar(currentSize, maxSize) try: for alliance in tba.event_alliances(event): if alliance['declines'] != []: print(event, "had declines") hasDeclines.append(event) except: pass print("There have been declines at", len(hasDeclines), "events according to TBA.")
YEAR = 2018 DISTRICT = 'chs' DCMP_EVENTS = [2, 5] pointsData = [] districtTeams = tba.district_teams(str(YEAR) + DISTRICT, False, False) teamCount = len(districtTeams) print("Processing", teamCount, "district teams.") teamIter = 0 for team in districtTeams: teamIter += 1 gen.progressBar(teamIter, teamCount) distPoints = 0 teamEvents = tba.team_events(team['key'], YEAR, True, False) teamEvents = sorted(teamEvents, key=lambda k: k['start_date']) try: for i in range(0, 3): eventPoints = tba.event_district_points(teamEvents[i]['key']) distPoints += eventPoints['points'][team['key']]['total'] except: pass pointsData.append({'team': team['team_number'], 'points': distPoints}) gen.listOfDictToCSV(DISTRICT + str(YEAR) + "points", pointsData)
def main(): global teams pool = Pool() teamData = {} teamList = gen.readTeamListCsv(currentYear, ['Teams'])['Teams'] for team in teamList: teams[team] = {'playValues': [], 'awardValues': [], 'totalValues': []} for year in years: teams[team][str(year)] = {'playPoints': 0, 'awardPoints': 0} for idx, year in enumerate(years): gen.progressBar(idx, len(years)) teamData[str(year)] = [] teamData[str(year)] = pool.map(partial(getData, year), teamList) for year in teamData: for t in teamData[year]: teams[t['team']][year]['playPoints'] = t['playPoints'] teams[t['team']][year]['awardPoints'] = t['awardPoints'] outData = [] for team in teams: playValues = [teams[team][str(year)]['playPoints'] for year in years] awardValues = [teams[team][str(year)]['awardPoints'] for year in years] totalValues = [ teams[team][str(year)]['playPoints'] + teams[team][str(year)]['awardPoints'] for year in years ] avgPlay = stat.mean(playValues) avgAward = stat.mean(awardValues) avgTotal = stat.mean(totalValues) maxPlay = max(playValues) maxAward = max(awardValues) maxTotal = max(totalValues) teamObj = { 'Team': team[3:], 'Average Play': avgPlay, 'Average Award': avgAward, 'Average Total': avgTotal, 'Max Play': maxPlay, 'Max Award': maxAward, 'Max Total': maxTotal } for idx, year in enumerate(years): teamObj[str(year) + ' Play'] = playValues[idx] teamObj[str(year) + ' Award'] = awardValues[idx] teamObj[str(year) + ' Total'] = totalValues[idx] outData.append(teamObj) colOrder = [ 'Team', 'Average Play', 'Average Award', 'Average Total', 'Max Play', 'Max Award', 'Max Total' ] for year in range(currentYear - yearRange + 1, currentYear + 1): colOrder.append(str(year) + ' Play') colOrder.append(str(year) + ' Award') colOrder.append(str(year) + ' Total') gen.listOfDictToCSV("Worldwide Regional", outData, colOrder)
"frc225", "frc234", "frc245", "frc302", "frc319", "frc340", "frc359", "frc384", "frc469", "frc494", "frc624", "frc694", "frc708", "frc829", "frc865", "frc868", "frc1024", "frc1102", "frc1218", "frc1533", "frc1619", "frc1640", "frc1706", "frc1710", "frc1720", "frc1731", "frc1741", "frc1746", "frc1747", "frc1806", "frc2013", "frc2056", "frc2168", "frc2337", "frc2363", "frc2451", "frc2468", "frc2481", "frc2590", "frc2614", "frc2655", "frc2771", "frc2791", "frc2826", "frc2834", "frc3357", "frc3452", "frc3478", "frc3538", "frc3641", "frc3707", "frc3847", "frc3940", "frc4028", "frc4265", "frc4499", "frc4587", "frc4944", "frc4967", "frc5254", "frc5406", "frc6800" ] teamList = iriTeams for index, tm in enumerate(teamList): gen.progressBar(index, len(teamList)) team = tba.team(tm) distTeams.append({ 'team': team['team_number'], 'name': team['nickname'], 'website': team['website'], 'facebook': "", 'github': "", 'twitter': "", 'instagram': "", 'youtube': "" }) for site in tba.team_profiles(team['team_number']): siteType = site['type'][:-8]