mirror of
https://github.com/beetbox/beets.git
synced 2025-12-06 16:42:42 +01:00
Standardize abstract methods for coverage
This commit is contained in:
parent
09b22949c0
commit
443ed578dc
1 changed files with 4 additions and 5 deletions
|
|
@ -85,6 +85,7 @@ class Query(ABC):
|
||||||
"""Return a set with field names that this query operates on."""
|
"""Return a set with field names that this query operates on."""
|
||||||
return set()
|
return set()
|
||||||
|
|
||||||
|
@abstractmethod
|
||||||
def clause(self) -> tuple[str | None, Sequence[Any]]:
|
def clause(self) -> tuple[str | None, Sequence[Any]]:
|
||||||
"""Generate an SQLite expression implementing the query.
|
"""Generate an SQLite expression implementing the query.
|
||||||
|
|
||||||
|
|
@ -95,14 +96,12 @@ class Query(ABC):
|
||||||
The default implementation returns None, falling back to a slow query
|
The default implementation returns None, falling back to a slow query
|
||||||
using `match()`.
|
using `match()`.
|
||||||
"""
|
"""
|
||||||
return None, ()
|
|
||||||
|
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
def match(self, obj: Model):
|
def match(self, obj: Model):
|
||||||
"""Check whether this query matches a given Model. Can be used to
|
"""Check whether this query matches a given Model. Can be used to
|
||||||
perform queries on arbitrary sets of Model.
|
perform queries on arbitrary sets of Model.
|
||||||
"""
|
"""
|
||||||
...
|
|
||||||
|
|
||||||
def __and__(self, other: Query) -> AndQuery:
|
def __and__(self, other: Query) -> AndQuery:
|
||||||
return AndQuery([self, other])
|
return AndQuery([self, other])
|
||||||
|
|
@ -152,7 +151,7 @@ class FieldQuery(Query, Generic[P]):
|
||||||
self.fast = fast
|
self.fast = fast
|
||||||
|
|
||||||
def col_clause(self) -> tuple[str, Sequence[SQLiteType]]:
|
def col_clause(self) -> tuple[str, Sequence[SQLiteType]]:
|
||||||
return self.field, ()
|
raise NotImplementedError
|
||||||
|
|
||||||
def clause(self) -> tuple[str | None, Sequence[SQLiteType]]:
|
def clause(self) -> tuple[str | None, Sequence[SQLiteType]]:
|
||||||
if self.fast:
|
if self.fast:
|
||||||
|
|
@ -164,7 +163,7 @@ class FieldQuery(Query, Generic[P]):
|
||||||
@classmethod
|
@classmethod
|
||||||
def value_match(cls, pattern: P, value: Any):
|
def value_match(cls, pattern: P, value: Any):
|
||||||
"""Determine whether the value matches the pattern."""
|
"""Determine whether the value matches the pattern."""
|
||||||
raise NotImplementedError()
|
raise NotImplementedError
|
||||||
|
|
||||||
def match(self, obj: Model) -> bool:
|
def match(self, obj: Model) -> bool:
|
||||||
return self.value_match(self.pattern, obj.get(self.field_name))
|
return self.value_match(self.pattern, obj.get(self.field_name))
|
||||||
|
|
@ -234,7 +233,7 @@ class StringFieldQuery(FieldQuery[P]):
|
||||||
"""Determine whether the value matches the pattern. Both
|
"""Determine whether the value matches the pattern. Both
|
||||||
arguments are strings. Subclasses implement this method.
|
arguments are strings. Subclasses implement this method.
|
||||||
"""
|
"""
|
||||||
raise NotImplementedError()
|
raise NotImplementedError
|
||||||
|
|
||||||
|
|
||||||
class StringQuery(StringFieldQuery[str]):
|
class StringQuery(StringFieldQuery[str]):
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue