25 lines
645 B
Python
25 lines
645 B
Python
from typing import Literal, Optional
|
|
from pybaseball import playerid_reverse_lookup
|
|
|
|
import pydantic
|
|
|
|
|
|
class PlayerIds(pydantic.BaseModel):
|
|
bbref: str = None
|
|
fangraphs: int = None
|
|
retro: str = None
|
|
mlbam: int = None
|
|
|
|
|
|
def get_player_ids(player_id: str, id_type: Literal['bbref', 'fangraphs']) -> PlayerIds | None:
|
|
q = playerid_reverse_lookup([player_id], key_type=id_type)
|
|
if len(q.values) == 0:
|
|
return None
|
|
else:
|
|
return PlayerIds(
|
|
bbref=q.loc[0].key_bbref,
|
|
fangraphs=q.loc[0].key_fangraphs,
|
|
retro=q.loc[0].key_retro,
|
|
mlbam=q.loc[0].key_mlbam
|
|
)
|