Some small improvements to annotations
This commit is contained in:
parent
f07d7b02f1
commit
2920973961
5 changed files with 111 additions and 65 deletions
|
@ -3,7 +3,7 @@ from __future__ import annotations
|
|||
from dataclasses import asdict, dataclass
|
||||
from functools import reduce
|
||||
import operator
|
||||
from typing import Optional, Union, Any
|
||||
from typing import Optional, Union, Any, Literal, overload
|
||||
|
||||
from django.contrib.postgres.search import SearchRank, SearchQuery
|
||||
from django.db.models import F, Q
|
||||
|
@ -14,17 +14,40 @@ from bookwyrm import connectors
|
|||
from bookwyrm.settings import MEDIA_FULL_URL
|
||||
|
||||
|
||||
@overload
|
||||
def search(
|
||||
query: str,
|
||||
*,
|
||||
min_confidence: float = 0,
|
||||
filters: Optional[list[Any]] = None,
|
||||
return_first: Literal[False],
|
||||
) -> QuerySet[models.Edition]:
|
||||
...
|
||||
|
||||
|
||||
@overload
|
||||
def search(
|
||||
query: str,
|
||||
*,
|
||||
min_confidence: float = 0,
|
||||
filters: Optional[list[Any]] = None,
|
||||
return_first: Literal[True],
|
||||
) -> Optional[models.Edition]:
|
||||
...
|
||||
|
||||
|
||||
# pylint: disable=arguments-differ
|
||||
def search(
|
||||
query: str,
|
||||
*,
|
||||
min_confidence: float = 0,
|
||||
filters: Optional[list[Any]] = None,
|
||||
return_first: bool = False,
|
||||
):
|
||||
) -> Union[Optional[models.Edition], QuerySet[models.Edition]]:
|
||||
"""search your local database"""
|
||||
filters = filters or []
|
||||
if not query:
|
||||
return []
|
||||
return None if return_first else []
|
||||
query = query.strip()
|
||||
|
||||
results = None
|
||||
|
@ -97,7 +120,9 @@ def search_identifiers(
|
|||
return results
|
||||
|
||||
|
||||
def search_title_author(query, min_confidence, *filters, return_first=False):
|
||||
def search_title_author(
|
||||
query, min_confidence, *filters, return_first=False
|
||||
) -> QuerySet[models.Edition]:
|
||||
"""searches for title and author"""
|
||||
query = SearchQuery(query, config="simple") | SearchQuery(query, config="english")
|
||||
results = (
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue