Ejemplo n.º 1
0
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,
    )
Ejemplo n.º 2
0
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,
    )
Ejemplo n.º 3
0
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,
    )
Ejemplo n.º 4
0
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,
    )
Ejemplo n.º 5
0
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,
    )
Ejemplo n.º 6
0
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,
    )
Ejemplo n.º 7
0
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})