def _run_passing_query(self, sql): """ Helper function used by all passing calculating functions """ results = run_singlerow_query(sql, self.player_id) percentage = results[3] / (results[3] + results[4]) return results, percentage
def get_touches(self): """ Get the number of times a player touched the ball over the course of a season :returns: ( player_id, player_surname, player_forename, touches) """ sql = """SELECT player_id, player_surname, player_forename, SUM(touches) FROM players WHERE player_id=%s GROUP BY player_id;""" return run_singlerow_query(sql, self.player_id)
def get_turnovers(self): """ Get the number of turnovers for a given player over an entire season :returns: ( player_id, player_surname, player_forename, turnovers) """ sql = """SELECT player_id, player_surname, player_forename, SUM(turnovers) FROM players WHERE player_id=%s GROUP BY player_id;""" return run_singlerow_query(sql, self.player_id)
def get_dispossessions(self): """ Get the number of times a player was dispossed over an entire season :returns: ( player_id, player_surname, player_forename, dispossesions) """ sql = """SELECT player_id, player_surname, player_forename, SUM(dispossessed) FROM players WHERE player_id=%s GROUP BY player_id;""" return run_singlerow_query(sql, self.player_id)
def get_minutes_played(self): """ Get the number of minutes a player played in a season :returns: ( player_id, player_surname, player_forename, minutes played) """ sql = """SELECT player_id, player_surname, player_forename, SUM(time_played) FROM players WHERE player_id=%s GROUP BY player_id;""" return run_singlerow_query(sql, self.player_id)
def get_match_result(self, opposition_id, date): sql = """SELECT SUM(goals) as goals_scored, SUM(goals_conceded) as goals_conceded FROM players WHERE team_id=%s AND opposition_id=%s AND date=%s GROUP BY date;""" (goals_scored, goals_conceded) = run_singlerow_query(sql, (self.team_id, opposition_id, date)) if int(goals_scored) > int(goals_conceded): return "win" elif int(goals_scored) == int(goals_conceded): return "tie" else: return "loss"