forked from llimllib/ncaa-bracket-randomizer
-
Notifications
You must be signed in to change notification settings - Fork 0
/
prep.py
60 lines (51 loc) · 1.81 KB
/
prep.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# -*- coding: utf8 -*-
import csv
import json
combined = {}
kenpom = {}
with open("kenpom_2022.csv") as kp:
rows = csv.reader(kp)
header = next(rows)
for row in rows:
teamdata = dict(zip(header, row))
kenpom[teamdata["TeamName"]] = {
"name": teamdata["TeamName"],
"rating": float(teamdata["AdjEM"]),
}
def maketeam(name, seed):
team = kenpom[name]
team["seed"] = seed
return team
bracket = json.loads(open("bracket.json").read())
for region, teams in bracket.items():
combined[region] = {}
for seed, team in teams.items():
seed = int(seed)
if isinstance(team, list):
for t in team:
assert t in kenpom, "{} not in kenpom".format(t)
# for now, ignore the first four... pick the higher ranked team to win
if kenpom[team[0]]["rating"] > kenpom[team[1]]["rating"]:
combined[region][seed] = maketeam(team[0], seed)
else:
combined[region][seed] = maketeam(team[1], seed)
else:
assert team in kenpom, "{} not in kenpom".format(team)
combined[region][seed] = maketeam(team, seed)
shortnames = {
"Stephen F. Austin": "SF Austin",
"Louisiana Lafayette": "Louisiana Laf.",
"Western Michigan": "Western Mich.",
"Eastern Kentucky": "Eastern Ky.",
"North Dakota St.": "ND State",
"New Mexico St.": "NM State",
"George Washington": "George Wash.",
"Coastal Carolina": "Coast. Car.",
"Eastern Washington": "E Washington",
"UC Santa Barbara": "UCSB",
}
for region in combined:
for seed in combined[region]:
if combined[region][seed]["name"] in shortnames:
combined[region][seed]["name"] = shortnames[combined[region][seed]["name"]]
json.dump(combined, open("teams.json", "w"))