Skip to content

Commit

Permalink
Merge pull request #3436 from dato/push-ovrtyrmwkoxu
Browse files Browse the repository at this point in the history
Push ovrtyrmwkoxu
  • Loading branch information
mouse-reeve authored Sep 12, 2024
2 parents 676a6b4 + 93396c0 commit 4158c0f
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 14 deletions.
15 changes: 9 additions & 6 deletions bookwyrm/templatetags/status_display.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
""" template filters """
import datetime
from typing import Any, Optional
from dateutil.relativedelta import relativedelta
from django import template
Expand Down Expand Up @@ -34,11 +35,13 @@ def get_replies(status: models.Status) -> Any:
@register.filter(name="parent")
def get_parent(status: models.Status) -> Any:
"""get the reply parent for a status"""
return (
models.Status.objects.filter(id=status.reply_parent_id)
.select_subclasses()
.first()
)
if status.reply_parent_id:
return (
models.Status.objects.filter(id=status.reply_parent_id)
.select_subclasses()
.first()
)
return None


@register.filter(name="boosted_status")
Expand All @@ -53,7 +56,7 @@ def get_boosted(boost: models.Boost) -> Any:


@register.filter(name="published_date")
def get_published_date(date: str) -> Any:
def get_published_date(date: datetime.datetime) -> str | None:
"""less verbose combo of humanize filters"""
if not date:
return ""
Expand Down
2 changes: 1 addition & 1 deletion bookwyrm/templatetags/utilities.py
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ def get_book_cover_thumbnail(


@register.filter(name="get_isni_bio")
def get_isni_bio(existing: int, author: Author) -> str:
def get_isni_bio(existing: list[str], author: Author) -> str:
"""Returns the isni bio string if an existing author has an isni listed"""
auth_isni = re.sub(r"\D", "", str(author.isni))
if len(existing) == 0:
Expand Down
15 changes: 9 additions & 6 deletions bookwyrm/utils/cache.py
Original file line number Diff line number Diff line change
@@ -1,17 +1,20 @@
""" Custom handler for caching """
from typing import Any, Callable, Tuple, Union
from typing import Callable, Optional, ParamSpec, TypeVar, cast

from django.core.cache import cache

Args = ParamSpec("Args")
Ret = TypeVar("Ret")


def get_or_set(
cache_key: str,
function: Callable[..., Any],
*args: Tuple[Any, ...],
timeout: Union[float, None] = None
) -> Any:
function: Callable[Args, Ret],
*args: Args.args,
timeout: Optional[float] = None
) -> Ret:
"""Django's built-in get_or_set isn't cutting it"""
value = cache.get(cache_key)
value = cast(Optional[Ret], cache.get(cache_key))
if value is None:
value = function(*args)
cache.set(cache_key, value, timeout=timeout)
Expand Down
2 changes: 1 addition & 1 deletion mypy.ini
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,4 @@ ignore_errors = False
[mypy-bookwyrm.templatetags.*]
ignore_errors = False
allow_untyped_calls = True
disable_error_code = attr-defined, arg-type, misc
disable_error_code = attr-defined

0 comments on commit 4158c0f

Please sign in to comment.