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

View File

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

View File

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

View File

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