def load_monster_file(self, hp, start, stop): monster_dict = dict() with open(dirs.dir_dict["downloads"]["monster_"+hp]+misc.day_file_parse, "r") as f: reader = csv.reader(f) header = next(reader) pa_index = header.index(start) outs_index = header.index(stop) for r in reader: player_id = int(r[header.index("id")]) player_dict = {params.transform_keys[h]: float(r[header.index(h)]) for h in header[pa_index:outs_index+1]} player_dict["name"] = misc.bm_to_dk_name(" ".join([r[header.index(n)] for n in ("first_name", "last_name")])) if hp == "hitters": player_dict["O"] = player_dict["O"] - player_dict["K"] player_dict["batting_order"] = self.strip_batting_order(r[header.index("matchup")]) over_under = self.strip_ou(r[header.index("odds")]) player_dict["over_under"] = over_under else: player_dict["O"] = player_dict["IP"]*3 - player_dict["K"] player_dict["NH"] = 0.0 player_dict["CGSO"] = 0.0 game_tuple = tuple([misc.clean_team(r[header.index(s)]) for s in ["team", "opponent"]]) if game_tuple not in monster_dict: monster_dict[game_tuple] = dict() monster_dict[game_tuple][player_id] = player_dict if hp == "pitchers": for g in monster_dict: ## very hacky... but will probably never fail... starter_id = max((p for p in monster_dict[g]), key=lambda k: monster_dict[g][k]["IP"]) monster_dict[g][starter_id]["starting"] = True for p in monster_dict[g]: if p != starter_id: monster_dict[g][p]["starting"] = False return monster_dict
def get_games_dict(self, teams_dict, gametimes): games_dict = dict() home_teams = [team for (team, opp) in teams_dict.keys() if "@" not in opp] matchups_dict = {misc.clean_team(home): misc.clean_team(away) for (home, away) in teams_dict if home in home_teams} for home_name in matchups_dict: in_nl_park = bool(home_name in params.nl_teams) away_name = matchups_dict[home_name] if (home_name in self.ignore_list or away_name in self.ignore_list): continue home_team_dict = teams_dict[(home_name, away_name)] away_team_dict = teams_dict[(away_name, "@ "+home_name)] home_team = team.Team(home_name, False, home_team_dict, in_nl_park) away_team = team.Team(away_name, True, away_team_dict, in_nl_park) gametime = gametimes[(home_name, away_name)] setting_obj = setting.Setting(gametime,0,0,0,0,0) game_obj = game.Game(home_team, away_team, setting_obj) games_dict[(away_name, "@ "+home_name)] = game_obj return games_dict