Metadata-Version: 2.1
Name: MLB-StatsAPI
Version: 0.0.5
Summary: MLB Stats API Wrapper for Python
Home-page: https://github.com/toddrob99/MLB-StatsAPI
Author: Todd Roberts
Author-email: todd@toddrob.com
License: UNKNOWN
Platform: UNKNOWN
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Operating System :: OS Independent
Description-Content-Type: text/markdown
Requires-Dist: requests

# MLB-StatsAPI

Python wrapper for MLB Stats API

Created by Todd Roberts

https://github.com/toddrob99/MLB-StatsAPI

## Installation
MLB-StatsAPI is listed on the [Python Package Index](https://pypi.org/project/MLB-StatsAPI/), 
and the preferred installation method is pip for all platforms. 
If you install manually, be sure to also install requests.

```pip install MLB-StatsAPI```

## Available Functions

* `statsapi.get()` - make calls directly to MLB StatsAPI endpoints;
  supports the most flexibility in request parameters, and returns raw json data

* `statsapi.meta()` - retrieve available values from StatsAPI for use in other queries,
  or look up descriptions for values found in API results

* `statsapi.notes()` - retrieve notes for a given endpoint, 
  including a list of required parameters, as well as hints for some endpoints

* `statsapi.schedule()` - retrieve a list of games on a given date/range and/or team/opponent

* `statsapi.boxscore()` - generate a formatted boxscore for a given game

* `statsapi.linescore()` - generate a formatted linescore for a given game

* `statsapi.roster()` - generate a list of players on a team's roster

* `statsapi.standings()` - generate a formatted list of standings for a given league/date

* `statsapi.team_leaders()` - generate a list of a team's leaders for a given stat

* `statsapi.league_leaders()` - generate a list of stat leaders for all-time (single season) or a given season

* `statsapi.player_stats()` - get a list of a player's career or season stats

* `statsapi.last_game()` - get the game id for the given team's most recent game

* `statsapi.next_game()` - get the game id for the given team's next game

* `statsapi.game_highlights()` - generate a list of highlights with video links for a given game

* `statsapi.game_pace()` - get information about pace of game for a given season (back to 1999)

* `statsapi.game_scoring_plays()` - get a list of scoring plays for a given game

## Example Use

### Print the number of games won by the Oakland Athletics in 2018

Use `statsapi.schedule()` to retrieve all A's games for 2018,
and use `sum()` to count records in the resultset where the A's were the winning_team.

```
print('The A\'s won %s games in 2018.' % sum(1 for x in statsapi.schedule(team=133,start_date='01/01/2018',end_date='12/31/2018') if x.get('winning_team','')=='Oakland Athletics'))
```

### Print the linescore for all games the Phillies won in July 2008

Use `statsapi.schedule()` to retrieve all games for July 2018,
run the resulting dict through a list comprehension
to iterate over the records where the Phillies are the winning team,
and feed the `game_id` into `statsapi_linescore()`.

```
for x in [y for y in statsapi.schedule(team=143,start_date='07/01/2008',end_date='07/31/2008') if y.get('winning_team','')=='Philadelphia Phillies']:
    print('%s\nWinner: %s, Loser: %s\n%s\n\n' % (x['game_date'], x['winning_team'], x['losing_team'], statsapi.linescore(x['game_id'])))
```

### Print the Phillies 40-man Roster on opening day of the 2018 season

Use `statsapi.get('season')` to retrieve the dates for the 2018 season,
feed the opening day date into `statsapi.roster()`.

```
print('Phillies 40-man roster on opening day of the 2018 season:\n%s' % statsapi.roster(143,'40Man',date=statsapi.get('season',{'seasonId':2018,'sportId':1})['seasons'][0]['regularSeasonStartDate']))
```

### Print the boxscore and linescore from the A's most recent game (which may be in progress)

Use `statsapi.last_game()` to retrieve the most recent A's game
and feed the gamePk into `statsapi.boxscore()` and `statsapi.linescore()`.

```
most_recent_game_id = statsapi.last_game(133)
print(statsapi.boxscore(most_recent_game_id))
print(statsapi.linescore(most_recent_game_id))
```

### Find the team with the longest name

Use `statsapi.get('teams')` to retrieve all active team names,
then feed into max() to find the longest value and its length

```
longest_team_name = max([x['name'] for x in statsapi.get('teams',{'sportIds':1,'activeStatus':'Yes','fields':'teams,name'})['teams']],key=len)
print('The team with the longest name is %s, at %s characters.' % (longest_team_name, len(longest_team_name)))
```

### Print the standings from July 4, 2018

Use `statsapi.standings()` with the `date` parameters

```
print(statsapi.standings(date='07/04/2018'))
```

### Print the top 5 team leaders in walks for the 2008 Phillies

Use `statsapi.team_leaders()`

```
print(statsapi.team_leaders(143,'walks',limit=5,season=2008))
```

### Print the top 10 all time single season leaders in doubles

use `statsapi.league_leaders()`

```
print(statsapi.league_leaders('doubles',statGroup='hitting',limit=10))
```

### Print Chase Utley's career hitting stats

use `statsapi.get()` to call the sports_players endpoint for the 2008 World Series,
lookup Chase Utley's person id from the results, and pass it into `statsapi.player_stats()`
using `type='hitting'` and `group='career'`

print( statsapi.player_stats(next(x['id'] for x in statsapi.get('sports_players',{'season':2008,'gameType':'W'})['people'] if x['fullName']=='Chase Utley'), 'hitting', 'career') )

### Print a list of scoring plays from the 4/28/2019 Marlins @ Phillies game

```
print( statsapi.game_scoring_plays(567074) )
```


