當前位置: 首頁>>代碼示例>>Python>>正文


Python fn.Count方法代碼示例

本文整理匯總了Python中peewee.fn.Count方法的典型用法代碼示例。如果您正苦於以下問題:Python fn.Count方法的具體用法?Python fn.Count怎麽用?Python fn.Count使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在peewee.fn的用法示例。


在下文中一共展示了fn.Count方法的10個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: format_counts

# 需要導入模塊: from peewee import fn [as 別名]
# 或者: from peewee.fn import Count [as 別名]
def format_counts(cls):

        """
        Map unique file formats to document counts.
        """

        count = fn.Count(cls.id)

        query = (
            cls
            .select(cls.format, count.alias('count'))
            .distinct(cls.document)
            .group_by(cls.format)
            .order_by(count.desc())
        )

        counts = []
        for c in query.iterator():
            counts.append((c.format, c.count))

        return counts 
開發者ID:davidmcclure,項目名稱:open-syllabus-project,代碼行數:23,代碼來源:document_format.py

示例2: get_aggregated_logs

# 需要導入模塊: from peewee import fn [as 別名]
# 或者: from peewee.fn import Count [as 別名]
def get_aggregated_logs(
    start_time,
    end_time,
    performer=None,
    repository=None,
    namespace=None,
    ignore=None,
    model=LogEntry3,
):
    """
    Returns the count of logs, by kind and day, for the logs matching the given filters.
    """
    date = db.extract_date("day", model.datetime)
    selections = [model.kind, date.alias("day"), fn.Count(model.id).alias("count")]
    query = _logs_query(
        selections, start_time, end_time, performer, repository, namespace, ignore, model=model
    )
    return query.group_by(date, model.kind) 
開發者ID:quay,項目名稱:quay,代碼行數:20,代碼來源:log.py

示例3: get_stars

# 需要導入模塊: from peewee import fn [as 別名]
# 或者: from peewee.fn import Count [as 別名]
def get_stars(repository_ids):
    """
    Returns a map from repository ID to the number of stars for each repository in the given
    repository IDs list.
    """
    if not repository_ids:
        return {}

    tuples = (
        Star.select(Star.repository, fn.Count(Star.id))
        .where(Star.repository << repository_ids)
        .group_by(Star.repository)
        .tuples()
    )

    star_map = {}
    for record in tuples:
        star_map[record[0]] = record[1]

    return star_map 
開發者ID:quay,項目名稱:quay,代碼行數:22,代碼來源:repository.py

示例4: check_diff

# 需要導入模塊: from peewee import fn [as 別名]
# 或者: from peewee.fn import Count [as 別名]
def check_diff(self):
        idx_list = [idx.id for idx in History.select(History.id).order_by(History.id.desc())
                    .limit(self.cfg.DiffCount())]
        ip_diff_add_sql = IP.select(fn.Count(fn.Distinct(IP.ip))).join(Item).where(IP.add == idx_list[0]).scalar()
        ip_diff_purge_sql = IP.select(fn.Count(fn.Distinct(IP.ip))).join(Item).where(IP.purge == idx_list[0]).scalar()
        domain_diff_add_sql = Domain.select(fn.Count(fn.Distinct(Domain.domain)))\
            .join(Item).where(Domain.add == idx_list[0]).scalar()
        domain_diff_purge_sql = Domain.select(fn.Count(fn.Distinct(Domain.domain)))\
            .join(Item).where(Domain.purge == idx_list[0]).scalar()
        url_diff_add_sql = URL.select(fn.Count(fn.Distinct(URL.url)))\
            .join(Item).where(URL.add == idx_list[0]).scalar()
        url_diff_purge_sql = URL.select(fn.Count(fn.Distinct(URL.url)))\
            .join(Item).where(URL.purge == idx_list[0]).scalar()

        if ip_diff_add_sql or ip_diff_purge_sql or domain_diff_add_sql or \
                domain_diff_purge_sql or url_diff_add_sql or url_diff_purge_sql:
            History.update(dump=True).where(History.id == idx_list[0]).execute()
            return True
        else:
            # History.update(dump=False).where(History.id == idx_list[0]).execute()
            return False 
開發者ID:Prototype-X,項目名稱:blacklist-rkn-tool,代碼行數:23,代碼來源:core.py

示例5: test_select_subquery

# 需要導入模塊: from peewee import fn [as 別名]
# 或者: from peewee.fn import Count [as 別名]
def test_select_subquery(flushdb):
    # 10 users, 5 blogs each
    await create_users_blogs(5, 3)

    # delete user 2's 2nd blog
    await Blog.delete().where(Blog.title == 'b-2-2')

    subquery = (Blog.select(fn.Count(Blog.pk))
                    .where(Blog.user == User.id)
                    .group_by(Blog.user))
    users = User.select(User, subquery.alias('ct')).order_by(R('ct'), User.id)

    expected = [('u2', 2),
                ('u0', 3),
                ('u1', 3),
                ('u3', 3),
                ('u4', 3)]
    assert [(x.username, x.ct) async for x in users] == expected 
開發者ID:kszucs,項目名稱:aiopeewee,代碼行數:20,代碼來源:test_models.py

示例6: test_scalar

# 需要導入模塊: from peewee import fn [as 別名]
# 或者: from peewee.fn import Count [as 別名]
def test_scalar(flushdb):
    await User.create_users(5)

    users = User.select(fn.Count(User.id)).scalar()
    assert await users == 5

    users = User.select(fn.Count(User.id)).where(User.username << ['u1', 'u2'])
    assert await users.scalar() == 2
    assert await users.scalar(True) == (2,)

    users = User.select(fn.Count(User.id)).where(User.username == 'not-here')
    assert await users.scalar() == 0
    assert await users.scalar(True) == (0,)

    users = User.select(fn.Count(User.id), fn.Count(User.username))
    assert await users.scalar() == 5
    assert await users.scalar(True) == (5, 5)

    await User.create(username='u1')
    await User.create(username='u2')
    await User.create(username='u3')
    await User.create(username='u99')
    users = User.select(fn.Count(fn.Distinct(User.username))).scalar()
    assert await users == 6 
開發者ID:kszucs,項目名稱:aiopeewee,代碼行數:26,代碼來源:test_models.py

示例7: emojistats_custom

# 需要導入模塊: from peewee import fn [as 別名]
# 或者: from peewee.fn import Count [as 別名]
def emojistats_custom(self, event, mode, sort):
        if mode not in ('server', 'global'):
            raise CommandFail('invalid emoji mode, must be `server` or `global`')

        if sort not in ('least', 'most'):
            raise CommandFail('invalid emoji sort, must be `least` or `most`')

        order = 'DESC' if sort == 'most' else 'ASC'

        if mode == 'server':
            q = CUSTOM_EMOJI_STATS_SERVER_SQL.format(order, guild=event.guild.id)
        else:
            q = CUSTOM_EMOJI_STATS_GLOBAL_SQL.format(order, guild=event.guild.id)

        q = list(GuildEmoji.raw(q).tuples())

        tbl = MessageTable()
        tbl.set_header('Count', 'Name', 'ID')
        for emoji_id, name, count in q:
            tbl.add(count, name, emoji_id)

        event.msg.reply(tbl.compile()) 
開發者ID:b1naryth1ef,項目名稱:rowboat,代碼行數:24,代碼來源:admin.py

示例8: rank_texts

# 需要導入模塊: from peewee import fn [as 別名]
# 或者: from peewee.fn import Count [as 別名]
def rank_texts(cls):

        """
        Get total citation counts and ranks for texts.

        Returns: list
        """

        # TODO: Does this belong on the index manager?

        count = fn.Count(Citation.id)

        query = (
            Text
            .select(Text, count)
            .join(Citation)
            .where(Text.display==True)
            .where(Text.valid==True)
            .group_by(Text.id)
            .order_by(Text.id)
            .naive()
        )

        counts = [t.count for t in query]

        # Compute dense-rank ratios.
        dense_ranks = rankdata(counts, 'dense')
        top = max(dense_ranks)
        scores = [float(r/top) for r in dense_ranks]

        # Compute overall ranks (#1 is most frequent).
        max_ranks = rankdata(counts, 'max')
        top = max(max_ranks)
        ranks = [int(top-r+1) for r in max_ranks]

        return [
            dict(zip(['text', 'rank', 'score'], t))
            for t in zip(query, ranks, scores)
        ] 
開發者ID:davidmcclure,項目名稱:open-syllabus-project,代碼行數:41,代碼來源:text_index.py

示例9: test_annotate_int

# 需要導入模塊: from peewee import fn [as 別名]
# 或者: from peewee.fn import Count [as 別名]
def test_annotate_int(flushdb):
    users = await create_user_blogs()
    annotated = await User.select().annotate(
        Blog, fn.Count(Blog.pk).alias('ct'))

    for i, user in enumerate(annotated):
        assert user.ct == 2
        assert user.username == 'u-%d' % i 
開發者ID:kszucs,項目名稱:aiopeewee,代碼行數:10,代碼來源:test_models.py

示例10: get_teams_within_org

# 需要導入模塊: from peewee import fn [as 別名]
# 或者: from peewee.fn import Count [as 別名]
def get_teams_within_org(organization, has_external_auth=False):
    """
    Returns a AttrDict of team info (id, name, description), its role under the org, the number of
    repositories on which it has permission, and the number of members.
    """
    query = Team.select().where(Team.organization == organization).join(TeamRole)

    def _team_view(team):
        return {
            "id": team.id,
            "name": team.name,
            "description": team.description,
            "role_name": Team.role.get_name(team.role_id),
            "repo_count": 0,
            "member_count": 0,
            "is_synced": False,
        }

    teams = {team.id: _team_view(team) for team in query}
    if not teams:
        # Just in case. Should ideally never happen.
        return []

    # Add repository permissions count.
    permission_tuples = (
        RepositoryPermission.select(RepositoryPermission.team, fn.Count(RepositoryPermission.id))
        .where(RepositoryPermission.team << list(teams.keys()))
        .group_by(RepositoryPermission.team)
        .tuples()
    )

    for perm_tuple in permission_tuples:
        teams[perm_tuple[0]]["repo_count"] = perm_tuple[1]

    # Add the member count.
    members_tuples = (
        TeamMember.select(TeamMember.team, fn.Count(TeamMember.id))
        .where(TeamMember.team << list(teams.keys()))
        .group_by(TeamMember.team)
        .tuples()
    )

    for member_tuple in members_tuples:
        teams[member_tuple[0]]["member_count"] = member_tuple[1]

    # Add syncing information.
    if has_external_auth:
        sync_query = TeamSync.select(TeamSync.team).where(TeamSync.team << list(teams.keys()))
        for team_sync in sync_query:
            teams[team_sync.team_id]["is_synced"] = True

    return [AttrDict(team_info) for team_info in list(teams.values())] 
開發者ID:quay,項目名稱:quay,代碼行數:54,代碼來源:team.py


注:本文中的peewee.fn.Count方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。