|
"""SPADL schema for Wyscout data.""" |
|
|
|
import pandera as pa |
|
from pandera.typing import DateTime, Object, Series |
|
|
|
from socceraction.data.schema import ( |
|
CompetitionSchema, |
|
EventSchema, |
|
GameSchema, |
|
PlayerSchema, |
|
TeamSchema, |
|
) |
|
|
|
|
|
class WyscoutCompetitionSchema(CompetitionSchema): |
|
"""Definition of a dataframe containing a list of competitions and seasons.""" |
|
|
|
country_name: Series[str] |
|
competition_gender: Series[str] |
|
|
|
|
|
class WyscoutGameSchema(GameSchema): |
|
"""Definition of a dataframe containing a list of games.""" |
|
|
|
|
|
class WyscoutPlayerSchema(PlayerSchema): |
|
"""Definition of a dataframe containing the list of teams of a game.""" |
|
|
|
firstname: Series[str] |
|
lastname: Series[str] |
|
nickname: Series[str] = pa.Field(nullable=True) |
|
birth_date: Series[DateTime] = pa.Field(nullable=True) |
|
|
|
|
|
class WyscoutTeamSchema(TeamSchema): |
|
"""Definition of a dataframe containing the list of players of a game.""" |
|
|
|
team_name_short: Series[str] |
|
|
|
|
|
class WyscoutEventSchema(EventSchema): |
|
"""Definition of a dataframe containing event stream data of a game.""" |
|
|
|
milliseconds: Series[float] |
|
subtype_id: Series[int] |
|
subtype_name: Series[str] |
|
positions: Series[Object] |
|
tags: Series[Object] |
|
|