socr / data /wyscout /schema.py
scfive's picture
Upload 203 files
d6ea71e verified
"""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]