Metadata-Version: 2.1
Name: MLB-StatsAPI
Version: 0.0.4
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

## 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.get('schedule')` with the `team(previousSchedule)` hydration to retrieve the most recent A's game
and feed the gamePk into `statsapi.boxscore()` and `statsapi.linescore()`.

```
most_recent_game = statsapi.get('schedule',{'teamId':133,'sportId':1,'hydration':'team(previousSchedule)'})['dates'][0]['games'][0]['gamePk']
print(statsapi.boxscore(most_recent_game))
print(statsapi.linescore(most_recent_game))
```

### 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

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

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

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


