Coverage for bc/kwai-bc-training/src/kwai_bc_training/teams/team_db_query.py: 100%
18 statements
« prev ^ index » next coverage.py v7.11.0, created at 2024-01-01 00:00 +0000
« prev ^ index » next coverage.py v7.11.0, created at 2024-01-01 00:00 +0000
1"""Module that defines a database query for teams."""
3from typing import Self
5from kwai_core.db.database_query import DatabaseQuery
7from kwai_bc_training.teams.team import TeamIdentifier
8from kwai_bc_training.teams.team_query import TeamQuery
9from kwai_bc_training.teams.team_tables import TeamRow
12class TeamDbQuery(DatabaseQuery, TeamQuery):
13 """A database query for teams."""
15 def init(self):
16 self._query.from_(TeamRow.__table_name__)
18 @property
19 def columns(self):
20 return TeamRow.get_aliases()
22 def filter_by_ids(self, *ids: TeamIdentifier) -> Self:
23 unpacked_ids = tuple(i.value for i in ids)
24 self._query.and_where(TeamRow.field("id").in_(*unpacked_ids))
25 return self
27 def filter_by_id(self, id_: TeamIdentifier) -> Self:
28 self._query.and_where(TeamRow.field("id").eq(id_.value))
29 return self