def regular_season_player_box_scores(player_identifier, season_end_year, output_type=None, output_file_path=None, output_write_option=None, json_options=None): try: http_service = HTTPService(parser=ParserService()) values = http_service.regular_season_player_box_scores( player_identifier=player_identifier, season_end_year=season_end_year, ) except requests.exceptions.HTTPError as http_error: if http_error.response.status_code == requests.codes.internal_server_error \ or http_error.response.status_code == requests.codes.not_found: raise InvalidPlayerAndSeason(player_identifier=player_identifier, season_end_year=season_end_year) else: raise http_error return output( values=values, output_type=output_type, output_file_path=output_file_path, output_write_option=output_write_option, csv_writer=CSVWriter( column_names=PLAYER_SEASON_BOX_SCORE_COLUMN_NAMES, row_formatter=RowFormatter( data_field_names=PLAYER_SEASON_BOX_SCORE_COLUMN_NAMES)), json_options=json_options, )
def play_by_play(home_team, day, month, year, output_type=None, output_file_path=None, output_write_option=None, json_options=None): try: values = http_client.play_by_play(home_team=home_team, day=day, month=month, year=year) except requests.exceptions.HTTPError as http_error: if http_error.response.status_code == requests.codes.not_found: raise InvalidDate(day=day, month=month, year=year) else: raise http_error return output( values=values, output_type=output_type, output_file_path=output_file_path, output_write_option=output_write_option, csv_writer=CSVWriter(column_names=PLAY_BY_PLAY_COLUMN_NAMES, row_formatter=RowFormatter( data_field_names=PLAY_BY_PLAY_COLUMN_NAMES)), json_options=json_options, )
def players_advanced_season_totals(season_end_year, include_combined_values=False, output_type=None, output_file_path=None, output_write_option=None, json_options=None): try: values = http_client.players_advanced_season_totals( season_end_year, include_combined_values=include_combined_values) except requests.exceptions.HTTPError as http_error: if http_error.response.status_code == requests.codes.not_found: raise InvalidSeason(season_end_year=season_end_year) else: raise http_error return output( values=values, output_type=output_type, output_file_path=output_file_path, output_write_option=output_write_option, csv_writer=CSVWriter( column_names=PLAYER_ADVANCED_SEASON_TOTALS_COLUMN_NAMES, row_formatter=RowFormatter( data_field_names=PLAYER_ADVANCED_SEASON_TOTALS_COLUMN_NAMES)), json_options=json_options, )
def player_box_scores(day, month, year, output_type=None, output_file_path=None, output_write_option=None, json_options=None): try: http_service = HTTPService(parser=ParserService()) values = http_service.player_box_scores(day=day, month=month, year=year) except requests.exceptions.HTTPError as http_error: if http_error.response.status_code == requests.codes.not_found: raise InvalidDate(day=day, month=month, year=year) else: raise http_error return output( values=values, output_type=output_type, output_file_path=output_file_path, output_write_option=output_write_option, csv_writer=CSVWriter(column_names=BOX_SCORE_COLUMN_NAMES, row_formatter=RowFormatter( data_field_names=BOX_SCORE_COLUMN_NAMES)), json_options=json_options, )
def players_season_totals(season_end_year, output_type=None, output_file_path=None, output_write_option=None, json_options=None): try: http_service = HTTPService(parser=ParserService()) values = http_service.players_season_totals( season_end_year=season_end_year) except requests.exceptions.HTTPError as http_error: if http_error.response.status_code == requests.codes.not_found: raise InvalidSeason(season_end_year=season_end_year) else: raise http_error return output( values=values, output_type=output_type, output_file_path=output_file_path, output_write_option=output_write_option, csv_writer=CSVWriter( column_names=PLAYER_SEASON_TOTALS_COLUMN_NAMES, row_formatter=RowFormatter( data_field_names=PLAYER_SEASON_TOTALS_COLUMN_NAMES)), json_options=json_options, )
def search(term, output_type=None, output_file_path=None, output_write_option=None, json_options=None): values = http_client.search(term=term) return output( values=values, output_type=output_type, output_file_path=output_file_path, output_write_option=output_write_option, csv_writer=SearchResultsCSVWriter( column_names=SEARCH_RESULTS_COLUMN_NAMES, row_formatter=RowFormatter( data_field_names=SEARCH_RESULTS_COLUMN_NAMES), ), json_options=json_options, )
def season_schedule(season_end_year, output_type=None, output_file_path=None, output_write_option=None, json_options=None): try: values = http_client.season_schedule(season_end_year) except requests.exceptions.HTTPError as http_error: # https://github.com/requests/requests/blob/master/requests/status_codes.py#L58 if http_error.response.status_code == requests.codes.not_found: raise InvalidSeason(season_end_year=season_end_year) else: raise http_error return output( values=values, output_type=output_type, output_file_path=output_file_path, output_write_option=output_write_option, csv_writer=CSVWriter(column_names=SCHEDULE_COLUMN_NAMES, row_formatter=RowFormatter( data_field_names=SCHEDULE_COLUMN_NAMES)), json_options=json_options, )
def test_away_team_data_field_name(self): formatter = RowFormatter(data_field_names=["away_team"]) self.assertEqual( formatter.format(row_data={"away_team": Team.BOSTON_CELTICS}), {"away_team": Team.BOSTON_CELTICS.value})
def test_multiple_positions_data_field_name(self): formatter = RowFormatter(data_field_names=["positions"]) self.assertEqual( formatter.format(row_data={ "positions": [Position.POINT_GUARD, Position.SHOOTING_GUARD] }), {"positions": "POINT GUARD-SHOOTING GUARD"})
def test_non_team_outcome_location_position_data_field_name(self): formatter = RowFormatter(data_field_names=["name"]) self.assertEqual(formatter.format(row_data={"name": "jaebaebae"}), {"name": "jaebaebae"})
def test_single_position_data_field_name(self): formatter = RowFormatter(data_field_names=["positions"]) self.assertEqual( formatter.format(row_data={"positions": [Position.POINT_GUARD]}), {"positions": "POINT GUARD"})
def test_empty_positions_data_field_name(self): formatter = RowFormatter(data_field_names=["positions"]) self.assertEqual(formatter.format(row_data={"positions": []}), {"positions": ""})
def test_outcome_data_field_name(self): formatter = RowFormatter(data_field_names=["outcome"]) self.assertEqual(formatter.format(row_data={"outcome": Outcome.WIN}), {"outcome": Outcome.WIN.value})
def test_opponent_data_field_name(self): formatter = RowFormatter(data_field_names=["opponent"]) self.assertEqual( formatter.format(row_data={"opponent": Team.BOSTON_CELTICS}), {"opponent": Team.BOSTON_CELTICS.value})
def test_location_data_field_name(self): formatter = RowFormatter(data_field_names=["location"]) self.assertEqual( formatter.format(row_data={"location": Location.HOME}), {"location": Location.HOME.value})