Example #1
0
    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
Example #2
0
    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