Exemplo n.º 1
0
    def getEligiblePlayersJSON(self):
        f = open(self.gameJSONFilename)
        data = json.load(f)
        f.close()

        mlb = MLB(self.sqlContext, self.dataDirectory, self.gameDate, isReadOnly=False)
        lineups = mlb.getLineups()
        for key in data:
            #print "key=", key
            fields = data[key]
            #print "item=", fields

            # [u'2B', u'Ed Lucas', u'83325', u'606', u'1000', u'2500', 1.3, 26, False, 0, u'']
            player = {}
            player['key'] = key
            player['position'] = fields[0]
            player['name'] = fields[1]
            player['game_id'] = fields[2]
            player['team_id'] = fields[3]
            player['id3'] = fields[4]
            player['salary'] = float(fields[5])
            player['points'] = fields[6]
            player['num_games'] = fields[7]
            player['some_boolean'] = fields[8]
            player['player_status'] = fields[9]
            player['injury'] = fields[10]

            player['team'] = mlb.getTeamFromFanduelTeamId(player['team_id'])
            print player

            playerStatusKey = "{0}_{1}".format(player['name'], player['team'])
            pStatus = None
            try:
                #pStatus = playerStatus[playerStatusKey]
                pStatus = lineups[playerStatusKey]
            except KeyError:
                pass

            print "pStatus=", pStatus
            if pStatus is None or (pStatus is not None and pStatus['status'] == 'No Lineup'):
                # Try to skip non-probable pitchers
                if player['position'] == 'P' and player['player_status'] not in [1, 5]:
                    print "Skipping, not probable pitcher"
                    continue

                if pStatus is not None and pStatus['active'] == 'Inactive':
                    print "Skipping, player is inactive."
                    continue

                if player['position'] != 'P' and player['player_status'] not in [4]:
                    print "Skipping, player_status not 4"
                    continue
            else:
                # Try to skip non-probable pitchers
                if player['position'] == 'P' and player['player_status'] in [1, 5]:
                    print "Keeping, not probable pitcher"
                    pass
                elif pStatus['status'] != 'Starter':
                    print "NOT STARTER, skipping."
                    continue

            playerStatsKey = player['name']

            if player['injury'] != '' or player['player_status'] in [2, 6]:
                print "Skipping, injury."
                continue


            eligiblePlayerKey = "{0}_{1}".format(player['name'], player['team'])
            self.eligiblePlayers[eligiblePlayerKey] = player
        return self.eligiblePlayers
Exemplo n.º 2
0
    def getEligiblePlayersCSV(self):
        mlb = MLB(self.sqlContext, self.dataDirectory, self.gameDate, isReadOnly=False)
        lineups = mlb.getLineups()

        with open(self.gameJSONFilename) as csvfile:
            reader = csv.DictReader(csvfile)
            for fdPlayer in reader:
                print "looking at player=", fdPlayer
                # {'Salary': '2200', 'FPPG': '1.5', 'Played': '75', 'Last Name': 'Pagan', 'Injury Details': 'Knee', 'Injury Indicator': 'DTD', 'First Name': 'Angel', 'Game': 'SFG@WAS', 'Team': 'SFG', 'Position': 'OF', 'Probable pitcher': '', 'Opponent': 'WAS'}
            
                player = {}
                #player['key'] = key
                player['position'] = fdPlayer['Position']
                player['name'] = fdPlayer['First Name'] + ' ' + fdPlayer['Last Name']
                player['game_id'] = fdPlayer['Game']
                #player['team_id'] = fdPlayer['Team']
                #player['id3'] = fields[4]
                player['salary'] = float(fdPlayer['Salary'])
                player['points'] = fdPlayer['FPPG']
                player['num_games'] = fdPlayer['Played']
                #player['some_boolean'] = fields[8]
                player['player_status'] = fdPlayer['Probable Pitcher']
                player['injury'] = fdPlayer['Injury Indicator']

                # We already have a team name, no need to convert from id
                #player['team'] = mlb.getTeamFromFanduelTeamId(player['team_id'])
                if fdPlayer['Team'] == 'TAM':
                    fdPlayer['Team'] = 'TB'
                player['team'] = mlb._validteams(fdPlayer['Team'])
                print player
                if player['team'] is None:
                    print "NO TEAM: ", fdPlayer['Team']
                    sys.exit(1)

                playerStatusKey = "{0}_{1}".format(player['name'], player['team'])

                pStatus = None
                try:
                    #pStatus = playerStatus[playerStatusKey]
                    pStatus = lineups[playerStatusKey]
                except KeyError:
                    pass

                print "pStatus=", pStatus
                if pStatus is None or (pStatus is not None and pStatus['status'] == 'No Lineup'):
                    # Try to skip non-probable pitchers
                    if player['position'] == 'P' and player['player_status'] == '':
                        print "Skipping, not probable pitcher"
                        continue

                    if pStatus is not None and pStatus['active'] == 'Inactive':
                        print "Skipping, player is inactive."
                        continue
                
                    if player['injury'] != '':
                        print "Skipping, player is injured."
                        continue
                else:
                    # Try to skip non-probable pitchers
                    if player['position'] == 'P':
                        if player['player_status'] == '':
                            print "Skipping, not probable pitcher"
                            continue
                    else:
                        if pStatus['status'] != 'Starter':
                            print "NOT STARTER, skipping."
                            continue
                        elif player['injury'] != '':
                            print "Skipping, player is injured."
                            continue
                eligiblePlayerKey = "{0}_{1}".format(player['name'], player['team'])
                self.eligiblePlayers[eligiblePlayerKey] = player
        return self.eligiblePlayers