Change PyMemoize to django-cache-memoize
This allows to support python 3.10
This commit is contained in:
parent
8b77f5e89f
commit
67b970f3f8
|
@ -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"][
|
||||
|
|
|
@ -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
|
||||
|
||||
|
||||
|
|
|
@ -583,6 +583,17 @@ python-versions = ">=3.6"
|
|||
Django = ">=2.2"
|
||||
python-ldap = ">=3.1"
|
||||
|
||||
[[package]]
|
||||
name = "django-cache-memoize"
|
||||
version = "0.1.10"
|
||||
description = "Django utility for a memoization decorator that uses the Django cache framework."
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = ">=3.5"
|
||||
|
||||
[package.extras]
|
||||
dev = ["flake8", "tox", "twine", "therapist", "black"]
|
||||
|
||||
[[package]]
|
||||
name = "django-cacheops"
|
||||
version = "6.0"
|
||||
|
@ -1419,14 +1430,6 @@ cachetools = ["cachetools"]
|
|||
frozendict = ["frozendict"]
|
||||
requests = ["requests"]
|
||||
|
||||
[[package]]
|
||||
name = "pymemoize"
|
||||
version = "1.0.3"
|
||||
description = "Simple memoizing module."
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = "*"
|
||||
|
||||
[[package]]
|
||||
name = "pyopenssl"
|
||||
version = "21.0.0"
|
||||
|
@ -2085,7 +2088,7 @@ testing = ["coverage (>=5.0.3)", "zope.event", "zope.testing"]
|
|||
[metadata]
|
||||
lock-version = "1.1"
|
||||
python-versions = "^3.7"
|
||||
content-hash = "ca5f7edc67e0b0c9feeb5b24a24fa74517bced0bd4c52d663e62987a63cabb7c"
|
||||
content-hash = "795509eb06dc1c88a068fc192ab5c503fd20c23a807c3a783383384defacd1e9"
|
||||
|
||||
[metadata.files]
|
||||
aiohttp = [
|
||||
|
@ -2454,6 +2457,10 @@ django-auth-ldap = [
|
|||
{file = "django-auth-ldap-4.0.0.tar.gz", hash = "sha256:276f79e624ce083ce13f161387f65ff1c0efe83ef8a42f2b9830d43317b15239"},
|
||||
{file = "django_auth_ldap-4.0.0-py3-none-any.whl", hash = "sha256:94119c94981809124d3dc4bed974f71c7a980666896df626f556a88a5fe0b59c"},
|
||||
]
|
||||
django-cache-memoize = [
|
||||
{file = "django-cache-memoize-0.1.10.tar.gz", hash = "sha256:63e8faa245a41c0dbad843807e9f21a6e59eba8e6e50df310fdf6485a6749843"},
|
||||
{file = "django_cache_memoize-0.1.10-py3-none-any.whl", hash = "sha256:676299313079cde9242ae84db0160e80b1d44e8dd6bc9b1f4f1247e11b30c9e0"},
|
||||
]
|
||||
django-cacheops = [
|
||||
{file = "django-cacheops-6.0.tar.gz", hash = "sha256:78e161ebd96a32e28e19ec7da31f2afed9e62a79726b8b5f0ed12dd16c2e5841"},
|
||||
{file = "django_cacheops-6.0-py2.py3-none-any.whl", hash = "sha256:ee38b969c9fc68f7c88e769b6c811e19563cca1ae08210d9f553ff758b6c3e17"},
|
||||
|
@ -3078,9 +3085,6 @@ pygments = [
|
|||
pyld = [
|
||||
{file = "PyLD-2.0.3.tar.gz", hash = "sha256:287445f888c3a332ccbd20a14844c66c2fcbaeab3c99acd506a0788e2ebb2f82"},
|
||||
]
|
||||
pymemoize = [
|
||||
{file = "PyMemoize-1.0.3.tar.gz", hash = "sha256:07c7b8f592b1f03af74289ef0e554520022dae378ba36d0dbc1f80532130197b"},
|
||||
]
|
||||
pyopenssl = [
|
||||
{file = "pyOpenSSL-21.0.0-py2.py3-none-any.whl", hash = "sha256:8935bd4920ab9abfebb07c41a4f58296407ed77f04bd1a92914044b848ba1ed6"},
|
||||
{file = "pyOpenSSL-21.0.0.tar.gz", hash = "sha256:5e2d8c5e46d0d865ae933bef5230090bdaf5506281e9eec60fa250ee80600cb3"},
|
||||
|
|
|
@ -27,7 +27,6 @@ django-versatileimagefield = "==2.2"
|
|||
django-filter = "==21.1"
|
||||
django-rest-auth = "==0.9.5"
|
||||
mutagen = "==1.45.1"
|
||||
PyMemoize = "==1.0.3"
|
||||
django-dynamic-preferences = "==1.11.0"
|
||||
python-magic = "==0.4.25"
|
||||
channels = "==3.0.4"
|
||||
|
@ -57,6 +56,7 @@ ipython = "==7.31.1"
|
|||
python-ldap = "==3.4.0"
|
||||
django-auth-ldap = "==4.0.0"
|
||||
uvicorn = {version = "==0.17.4", extras = ["standard"]}
|
||||
django-cache-memoize = "^0.1.10"
|
||||
|
||||
[tool.poetry.dev-dependencies]
|
||||
flake8 = "==3.9.2"
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
Change unmaintained PyMemoize library to django-cache-memoize
|
||||
to enable Python 3.10 support
|
Loading…
Reference in New Issue