コード例 #1
0
    def _get_global_stats_result(self, query, playlist, rank, session, with_rank=True):
        if with_rank:
            query = query.with_rank(rank)
        if not ignore_filtering():
            query.with_playlists([playlist])
        query = query.build_query(session)
        query = query.group_by(PlayerGame.player)
        if ignore_filtering():
            query = query.subquery()
        else:
            query = query.filter(PlayerGame.game != "").filter(PlayerGame.time_in_game > 0).having(
                func.count(PlayerGame.player) > 5).subquery()

        return session.query(func.avg(query.c.avg), func.stddev_samp(query.c.avg)).first()
コード例 #2
0
    def __init__(self, player_wrapper: PlayerWrapper):
        super().__init__()
        self.player_wrapper = player_wrapper

        # this Object needs to be pooled per a session so only one is used at a time
        self.player_stats_filter = QueryFilterBuilder()
        if not ignore_filtering():
            self.player_stats_filter.with_relative_start_time(days_ago=30).with_safe_checking().sticky()