예제 #1
0
    def test_teams_string_representation(self):
        expected = """Golden State Warriors (GSW)
Houston Rockets (HOU)
Denver Nuggets (DEN)
Cleveland Cavaliers (CLE)
Washington Wizards (WAS)
Los Angeles Clippers (LAC)
Boston Celtics (BOS)
Portland Trail Blazers (POR)
Phoenix Suns (PHO)
Toronto Raptors (TOR)
Oklahoma City Thunder (OKC)
Brooklyn Nets (BRK)
Minnesota Timberwolves (MIN)
San Antonio Spurs (SAS)
Indiana Pacers (IND)
Charlotte Hornets (CHO)
Los Angeles Lakers (LAL)
New Orleans Pelicans (NOP)
New York Knicks (NYK)
Milwaukee Bucks (MIL)
Miami Heat (MIA)
Atlanta Hawks (ATL)
Chicago Bulls (CHI)
Sacramento Kings (SAC)
Philadelphia 76ers (PHI)
Detroit Pistons (DET)
Orlando Magic (ORL)
Utah Jazz (UTA)
Memphis Grizzlies (MEM)
Dallas Mavericks (DAL)"""

        teams = Teams()

        assert teams.__repr__() == expected
예제 #2
0
def get_schedule(date):
    teams = Teams()
    df_full = pd.DataFrame()
    for team in teams:
        schedule = team.schedule
        df = team.schedule.dataframe
        df['team_abbr'] = team.abbreviation
        df_full = pd.concat([df_full, df])
        df_full = df_full[df_full['location'] == 'Away']
    return df_full[df_full['datetime'].dt.date == date.date()]
    def test_invalid_default_year_reverts_to_previous_year(
            self, *args, **kwargs):
        flexmock(utils) \
            .should_receive('_find_year_for_season') \
            .and_return(2022)

        teams = Teams()

        for team in teams:
            assert team._year == '2021'
예제 #4
0
    def test_nba_empty_page_returns_no_teams(self):
        flexmock(utils) \
            .should_receive('_no_data_found') \
            .once()
        flexmock(utils) \
            .should_receive('_get_stats_table') \
            .and_return(None)

        teams = Teams()

        assert len(teams) == 0
예제 #5
0
    def setup_method(self, *args, **kwargs):
        self.results = {
            'rank': 26,
            'abbreviation': 'DET',
            'name': 'Detroit Pistons',
            'games_played': 82,
            'minutes_played': 19805,
            'field_goals': 3269,
            'field_goal_attempts': 7282,
            'field_goal_percentage': .449,
            'three_point_field_goals': 631,
            'three_point_field_goal_attempts': 1915,
            'three_point_field_goal_percentage': .330,
            'two_point_field_goals': 2638,
            'two_point_field_goal_attempts': 5367,
            'two_point_field_goal_percentage': .492,
            'free_throws': 1140,
            'free_throw_attempts': 1586,
            'free_throw_percentage': .719,
            'offensive_rebounds': 908,
            'defensive_rebounds': 2838,
            'total_rebounds': 3746,
            'assists': 1732,
            'steals': 574,
            'blocks': 310,
            'turnovers': 973,
            'personal_fouls': 1467,
            'points': 8309,
            'opp_field_goals': 3144,
            'opp_field_goal_attempts': 6830,
            'opp_field_goal_percentage': .460,
            'opp_three_point_field_goals': 767,
            'opp_three_point_field_goal_attempts': 2098,
            'opp_three_point_field_goal_percentage': .366,
            'opp_two_point_field_goals': 2377,
            'opp_two_point_field_goal_attempts': 4732,
            'opp_two_point_field_goal_percentage': .502,
            'opp_free_throws': 1346,
            'opp_free_throw_attempts': 1726,
            'opp_free_throw_percentage': .780,
            'opp_offensive_rebounds': 656,
            'opp_defensive_rebounds': 2861,
            'opp_total_rebounds': 3517,
            'opp_assists': 1929,
            'opp_steals': 551,
            'opp_blocks': 339,
            'opp_turnovers': 1046,
            'opp_personal_fouls': 1434,
            'opp_points': 8401
        }
        self.abbreviations = [
            'BOS', 'CLE', 'TOR', 'WAS', 'ATL', 'MIL', 'IND', 'CHI', 'MIA',
            'DET', 'CHO', 'NYK', 'ORL', 'PHI', 'BRK', 'GSW', 'SAS', 'HOU',
            'LAC', 'UTA', 'OKC', 'MEM', 'POR', 'DEN', 'NOP', 'DAL', 'SAC',
            'MIN', 'LAL', 'PHO'
        ]
        flexmock(utils) \
            .should_receive('_todays_date') \
            .and_return(MockDateTime(YEAR, MONTH))

        self.teams = Teams()
    def setup_method(self, *args, **kwargs):
        self.results = {
            'rank': 27,
            'abbreviation': 'DET',
            'name': 'Detroit Pistons',
            'games_played': 72,
            'minutes_played': 17430,
            'field_goals': 2783,
            'field_goal_attempts': 6162,
            'field_goal_percentage': .452,
            'three_point_field_goals': 832,
            'three_point_field_goal_attempts': 2370,
            'three_point_field_goal_percentage': .351,
            'two_point_field_goals': 1951,
            'two_point_field_goal_attempts': 3792,
            'two_point_field_goal_percentage': .515,
            'free_throws': 1278,
            'free_throw_attempts': 1683,
            'free_throw_percentage': .759,
            'offensive_rebounds': 694,
            'defensive_rebounds': 2381,
            'total_rebounds': 3075,
            'assists': 1743,
            'steals': 531,
            'blocks': 371,
            'turnovers': 1075,
            'personal_fouls': 1477,
            'points': 7676,
            'opp_field_goals': 2980,
            'opp_field_goal_attempts': 6260,
            'opp_field_goal_percentage': .476,
            'opp_three_point_field_goals': 817,
            'opp_three_point_field_goal_attempts': 2260,
            'opp_three_point_field_goal_percentage': .362,
            'opp_two_point_field_goals': 2163,
            'opp_two_point_field_goal_attempts': 4000,
            'opp_two_point_field_goal_percentage': .541,
            'opp_free_throws': 1221,
            'opp_free_throw_attempts': 1607,
            'opp_free_throw_percentage': .760,
            'opp_offensive_rebounds': 717,
            'opp_defensive_rebounds': 2475,
            'opp_total_rebounds': 3192,
            'opp_assists': 1785,
            'opp_steals': 578,
            'opp_blocks': 419,
            'opp_turnovers': 1004,
            'opp_personal_fouls': 1469,
            'opp_points': 7998
        }
        self.abbreviations = [
            'BOS', 'CLE', 'TOR', 'WAS', 'ATL', 'MIL', 'IND', 'CHI', 'MIA',
            'DET', 'CHO', 'NYK', 'ORL', 'PHI', 'BRK', 'GSW', 'SAS', 'HOU',
            'LAC', 'UTA', 'OKC', 'MEM', 'POR', 'DEN', 'NOP', 'DAL', 'SAC',
            'MIN', 'LAL', 'PHO'
        ]
        flexmock(utils) \
            .should_receive('_todays_date') \
            .and_return(MockDateTime(YEAR, MONTH))

        self.teams = Teams()
예제 #7
0
파일: nbadata.py 프로젝트: joewilaj/nbaGNNs
def main():

    year = 2021

    TeamLists = pd.read_excel('data/TeamLists.xls', sheet_name=0, header=None)
    TeamLists = TeamLists.to_numpy(dtype=object, copy=True)

    if year > 2014:
        TeamList = TeamLists[:, 2]

    elif year == 2014:
        TeamList = TeamLists[:, 1]

    elif year < 2014:
        TeamList = TeamLists[:, 0]

    TeamList_Lines = TeamLists[:, 3]

    now = datetime.datetime.now()
    datestring = now.strftime("%m_%d_%Y")

    today = (now - datetime.datetime(year - 1, 10, 12)).days

    with open('pickles/NBA_Data_pickled/' + str(year) + 'NBAData.pkl',
              'rb') as Data:
        Data_Full = pickle.load(Data)

    teams = Teams(year)

    for team in teams:
        print(team)
        for i in range(30):
            if team.name == TeamList[i]:
                break

        schedule = team.schedule
        for game in schedule:

            game_date = game.datetime
            daynum = (game_date - datetime.datetime(year - 1, 10, 12)).days

            if daynum >= today - 30:

                box = game.boxscore

                Data_Full[daynum, 7, i] = game.opponent_name
                Data_Full[daynum, 8, i] = game.points_scored
                Data_Full[daynum, 9, i] = game.points_allowed
                Data_Full[daynum, 6, i] = game.location
                Data_Full[daynum, 0, i] = game.game
                Data_Full[daynum, 35, i] = game.playoffs
                Data_Full[daynum, 34, i] = game.streak

                if game.location == 'Home':
                    Data_Full[daynum, 10, i] = box.home_offensive_rating
                    Data_Full[daynum, 11, i] = box.home_defensive_rating
                    Data_Full[daynum, 12,
                              i] = box.home_effective_field_goal_percentage
                    Data_Full[daynum, 13, i] = box.home_assist_percentage
                    Data_Full[daynum, 14, i] = box.home_assists
                    Data_Full[daynum, 15, i] = box.home_block_percentage
                    Data_Full[daynum, 17,
                              i] = box.home_defensive_rebound_percentage
                    Data_Full[daynum, 18, i] = box.home_field_goal_percentage
                    Data_Full[daynum, 19, i] = box.home_field_goals
                    Data_Full[daynum, 20, i] = box.home_free_throw_attempt_rate
                    Data_Full[daynum, 21,
                              i] = box.home_offensive_rebound_percentage
                    Data_Full[daynum, 22, i] = box.home_steal_percentage
                    Data_Full[daynum, 23,
                              i] = box.home_three_point_field_goal_percentage
                    Data_Full[daynum, 24, i] = box.home_turnover_percentage
                    Data_Full[daynum, 26,
                              i] = box.home_true_shooting_percentage
                    Data_Full[daynum, 27, i] = box.home_free_throws
                    Data_Full[daynum, 28, i] = box.pace

                elif game.location == 'Away':

                    Data_Full[daynum, 10, i] = box.away_offensive_rating
                    Data_Full[daynum, 11, i] = box.away_defensive_rating
                    Data_Full[daynum, 12,
                              i] = box.away_effective_field_goal_percentage
                    Data_Full[daynum, 13, i] = box.away_assist_percentage
                    Data_Full[daynum, 14, i] = box.away_assists
                    Data_Full[daynum, 15, i] = box.away_block_percentage
                    Data_Full[daynum, 17,
                              i] = box.away_defensive_rebound_percentage
                    Data_Full[daynum, 18, i] = box.away_field_goal_percentage
                    Data_Full[daynum, 19, i] = box.away_field_goals
                    Data_Full[daynum, 20, i] = box.away_free_throw_attempt_rate
                    Data_Full[daynum, 21,
                              i] = box.away_offensive_rebound_percentage
                    Data_Full[daynum, 22, i] = box.away_steal_percentage
                    Data_Full[daynum, 23,
                              i] = box.away_three_point_field_goal_percentage
                    Data_Full[daynum, 24, i] = box.away_turnover_percentage
                    Data_Full[daynum, 26,
                              i] = box.away_true_shooting_percentage
                    Data_Full[daynum, 27, i] = box.away_free_throws
                    Data_Full[daynum, 28, i] = box.pace

    with open('pickles/NBA_Data_pickled/' + str(year) + 'NBAData.pkl',
              'wb') as Data_in:
        pickle.dump(Data_Full, Data_in)

    pdb.set_trace()