Change PyMemoize to django-cache-memoize

This allows to support python 3.10
This commit is contained in:
JuniorJPDJ 2022-02-05 18:09:04 +01:00 committed by Georg Krause
parent cff3ba5cf7
commit f4964ab3ab
4 changed files with 50 additions and 35 deletions

View File

@ -1,4 +1,4 @@
import memoize.djangocache
from cache_memoize import cache_memoize
from django.urls import reverse
@ -11,9 +11,6 @@ from funkwhale_api.music import utils as music_utils
from . import stats
store = memoize.djangocache.Cache("default")
memo = memoize.Memoizer(store, namespace="instance:stats")
def get():
all_preferences = preferences.all()
@ -72,7 +69,7 @@ def get():
}
if share_stats:
getter = memo(lambda: stats.get(), max_age=600)
getter = cache_memoize(600, prefix="memoize:instance:stats")(stats.get)
statistics = getter()
data["usage"]["users"]["total"] = statistics["users"]["total"]
data["usage"]["users"]["activeHalfyear"] = statistics["users"][

View File

@ -1,5 +1,5 @@
import memoize.djangocache
import musicbrainzngs
from cache_memoize import cache_memoize
from django.conf import settings
from funkwhale_api import __version__
@ -9,10 +9,6 @@ _api.set_useragent("funkwhale", str(__version__), settings.FUNKWHALE_URL)
_api.set_hostname(settings.MUSICBRAINZ_HOSTNAME)
store = memoize.djangocache.Cache("default")
memo = memoize.Memoizer(store, namespace="memoize:musicbrainz")
def clean_artist_search(query, **kwargs):
cleaned_kwargs = {}
if kwargs.get("name"):
@ -24,38 +20,59 @@ class API(object):
_api = _api
class artists(object):
search = memo(clean_artist_search, max_age=settings.MUSICBRAINZ_CACHE_DURATION)
get = memo(_api.get_artist_by_id, max_age=settings.MUSICBRAINZ_CACHE_DURATION)
search = cache_memoize(
settings.MUSICBRAINZ_CACHE_DURATION,
prefix="memoize:musicbrainz:clean_artist_search",
)(clean_artist_search)
get = cache_memoize(
settings.MUSICBRAINZ_CACHE_DURATION,
prefix="memoize:musicbrainz:get_artist_by_id",
)(_api.get_artist_by_id)
class images(object):
get_front = memo(
_api.get_image_front, max_age=settings.MUSICBRAINZ_CACHE_DURATION
)
get_front = cache_memoize(
settings.MUSICBRAINZ_CACHE_DURATION,
prefix="memoize:musicbrainz:get_image_front",
)(_api.get_image_front)
class recordings(object):
search = memo(
_api.search_recordings, max_age=settings.MUSICBRAINZ_CACHE_DURATION
)
get = memo(
_api.get_recording_by_id, max_age=settings.MUSICBRAINZ_CACHE_DURATION
)
search = cache_memoize(
settings.MUSICBRAINZ_CACHE_DURATION,
prefix="memoize:musicbrainz:search_recordings",
)(_api.search_recordings)
get = cache_memoize(
settings.MUSICBRAINZ_CACHE_DURATION,
prefix="memoize:musicbrainz:get_recording_by_id",
)(_api.get_recording_by_id)
class releases(object):
search = memo(_api.search_releases, max_age=settings.MUSICBRAINZ_CACHE_DURATION)
get = memo(_api.get_release_by_id, max_age=settings.MUSICBRAINZ_CACHE_DURATION)
browse = memo(_api.browse_releases, max_age=settings.MUSICBRAINZ_CACHE_DURATION)
search = cache_memoize(
settings.MUSICBRAINZ_CACHE_DURATION,
prefix="memoize:musicbrainz:search_releases",
)(_api.search_releases)
get = cache_memoize(
settings.MUSICBRAINZ_CACHE_DURATION,
prefix="memoize:musicbrainz:get_release_by_id",
)(_api.get_release_by_id)
browse = cache_memoize(
settings.MUSICBRAINZ_CACHE_DURATION,
prefix="memoize:musicbrainz:browse_releases",
)(_api.browse_releases)
# get_image_front = _api.get_image_front
class release_groups(object):
search = memo(
_api.search_release_groups, max_age=settings.MUSICBRAINZ_CACHE_DURATION
)
get = memo(
_api.get_release_group_by_id, max_age=settings.MUSICBRAINZ_CACHE_DURATION
)
browse = memo(
_api.browse_release_groups, max_age=settings.MUSICBRAINZ_CACHE_DURATION
)
search = cache_memoize(
settings.MUSICBRAINZ_CACHE_DURATION,
prefix="memoize:musicbrainz:search_release_groups",
)(_api.search_release_groups)
get = cache_memoize(
settings.MUSICBRAINZ_CACHE_DURATION,
prefix="memoize:musicbrainz:get_release_group_by_id",
)(_api.get_release_group_by_id)
browse = cache_memoize(
settings.MUSICBRAINZ_CACHE_DURATION,
prefix="memoize:musicbrainz:browse_release_groups",
)(_api.browse_release_groups)
# get_image_front = _api.get_image_front

View File

@ -32,8 +32,7 @@ django-rest-auth~=0.9.0
ipython~=7.27.0
mutagen~=1.45.0
pymemoize~=1.0.0
django-cache-memoize~=0.1.0
django-dynamic-preferences~=1.10
python-magic~=0.4.0
channels~=3.0.3

View File

@ -0,0 +1,2 @@
Change unmaintained PyMemoize library to django-cache-memoize
to enable Python 3.10 support