async def get_player_grouped_stats(self, player_id): """Returns the player with the given ID's grouped stats (as seen at the top of a player's page). :param player_id: The player's Understat ID. :type player_id: int or str :return: Dictionary of the player's grouped stats. :rtype: dict """ url = PLAYER_URL.format(player_id) player_stats = await get_data(self.session, url, "groupsData") return player_stats
async def get_player_stats(self, player_id, positions=None): """Returns the player with the given ID's min / max stats, per position(s). :param player_id: The player's Understat ID. :type player_id: int or str :param positions: Positions to filter the data by, defaults to None. :param positions: list, optional :return: List of the player's stats per position. :rtype: list """ url = PLAYER_URL.format(player_id) player_stats = await get_data(self.session, url, "minMaxPlayerStats") player_stats = filter_by_positions(player_stats, positions) return player_stats
async def get_player_matches(self, player_id, options=None, **kwargs): """Returns the player with the given ID's matches data. :param player_id: The player's Understat ID. :type player_id: int or str :param options: Options to filter the data by, defaults to None. :param options: dict, optional :return: List of the player's matches data. :rtype: list """ url = PLAYER_URL.format(player_id) matches_data = await get_data(self.session, url, "matchesData") if options: kwargs = options filtered_data = filter_data(matches_data, kwargs) return filtered_data
def get_player_shots(self, player_id, options=None, **kwargs): """Returns the player with the given ID's shot data. :param player_id: The player's Understat ID. :type player_id: int or str :param options: Options to filter the data by, defaults to None. :param options: dict, optional :return: List of the player's shot data. :rtype: list """ url = PLAYER_URL.format(player_id) shots_data = get_data(url, "shotsData") if options: kwargs = options filtered_data = filter_data(shots_data, kwargs) return filtered_data