"""Configuration of the SPADL language. Attributes ---------- field_length : float The length of a pitch (in meters). field_width : float The width of a pitch (in meters). bodyparts : list(str) The bodyparts used in the SPADL language. results : list(str) The action results used in the SPADL language. actiontypes : list(str) The action types used in the SPADL language. """ import pandas as pd # type: ignore field_length: float = 105.0 # unit: meters field_width: float = 68.0 # unit: meters bodyparts: list[str] = ["foot", "head", "other", "head/other", "foot_left", "foot_right"] results: list[str] = [ "fail", "success", "offside", "owngoal", "yellow_card", "red_card", ] actiontypes: list[str] = [ "pass", "cross", "throw_in", "freekick_crossed", "freekick_short", "corner_crossed", "corner_short", "take_on", "foul", "tackle", "interception", "shot", "shot_penalty", "shot_freekick", "keeper_save", "keeper_claim", "keeper_punch", "keeper_pick_up", "clearance", "bad_touch", "non_action", "dribble", "goalkick", ] def actiontypes_df() -> pd.DataFrame: """Return a dataframe with the type id and type name of each SPADL action type. Returns ------- pd.DataFrame The 'type_id' and 'type_name' of each SPADL action type. """ return pd.DataFrame(list(enumerate(actiontypes)), columns=["type_id", "type_name"]) def results_df() -> pd.DataFrame: """Return a dataframe with the result id and result name of each SPADL action type. Returns ------- pd.DataFrame The 'result_id' and 'result_name' of each SPADL action type. """ return pd.DataFrame(list(enumerate(results)), columns=["result_id", "result_name"]) def bodyparts_df() -> pd.DataFrame: """Return a dataframe with the bodypart id and bodypart name of each SPADL action type. Returns ------- pd.DataFrame The 'bodypart_id' and 'bodypart_name' of each SPADL action type. """ return pd.DataFrame(list(enumerate(bodyparts)), columns=["bodypart_id", "bodypart_name"])