Skip to content

Commit cae21aa

Browse files
committed
enh: Add latest_season()
enh: make lookup_player and lookup_team default to latest season #33
1 parent 4c1683d commit cae21aa

File tree

1 file changed

+35
-5
lines changed

1 file changed

+35
-5
lines changed

statsapi/__init__.py

Lines changed: 35 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1167,14 +1167,37 @@ def player_stat_data(
11671167
return player
11681168

11691169

1170-
def lookup_player(lookup_value, gameType="R", season=datetime.now().year, sportId=1):
1170+
def latest_season(sportId=1):
1171+
"""Get the latest season for a given sportId. Returns a dict containing seasonId and various dates."""
1172+
params = {
1173+
"sportId": sportId,
1174+
"seasonId": "all",
1175+
}
1176+
all_seasons = get("season", params)
1177+
1178+
return all_seasons.get("seasons")[-1]
1179+
1180+
1181+
def lookup_player(lookup_value, gameType=None, season=None, sportId=1):
11711182
"""Get data about players based on first, last, or full name."""
11721183
params = {
1173-
"gameType": gameType,
1174-
"season": season,
11751184
"sportId": sportId,
11761185
"fields": "people,id,fullName,firstName,lastName,primaryNumber,currentTeam,id,primaryPosition,code,abbreviation,useName,boxscoreName,nickName,mlbDebutDate,nameFirstLast,firstLastName,lastFirstName,lastInitName,initLastName,fullFMLName,fullLFMName",
11771186
}
1187+
if gameType:
1188+
params.update(
1189+
{
1190+
"gameType": gameType,
1191+
}
1192+
)
1193+
if not season:
1194+
season_data = latest_season(sportId=sportId)
1195+
season = season_data.get("seasonId", datetime.now().year)
1196+
params.update(
1197+
{
1198+
"season": season,
1199+
}
1200+
)
11781201
r = get("sports_players", params)
11791202

11801203
players = []
@@ -1187,14 +1210,21 @@ def lookup_player(lookup_value, gameType="R", season=datetime.now().year, sportI
11871210
return players
11881211

11891212

1190-
def lookup_team(lookup_value, activeStatus="Y", season=datetime.now().year, sportIds=1):
1213+
def lookup_team(lookup_value, activeStatus="Y", season=None, sportIds=1):
11911214
"""Get a info about a team or teams based on the team name, city, abbreviation, or file code."""
11921215
params = {
11931216
"activeStatus": activeStatus,
1194-
"season": season,
11951217
"sportIds": sportIds,
11961218
"fields": "teams,id,name,teamCode,fileCode,teamName,locationName,shortName",
11971219
}
1220+
if not season:
1221+
season_data = latest_season(sportId=sportIds.split(",")[0])
1222+
season = season_data.get("seasonId", datetime.now().year)
1223+
params.update(
1224+
{
1225+
"season": season,
1226+
}
1227+
)
11981228
r = get("teams", params)
11991229

12001230
teams = []

0 commit comments

Comments
 (0)