Change PyMemoize to django-cache-memoize

This allows to support python 3.10
environments/review-docs-devel-1399dq/deployments/10246
JuniorJPDJ 2022-02-05 18:09:04 +01:00
rodzic 8b77f5e89f
commit 67b970f3f8
5 zmienionych plików z 66 dodań i 46 usunięć

Wyświetl plik

@ -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"][

Wyświetl plik

@ -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

28
api/poetry.lock wygenerowano
Wyświetl plik

@ -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"},

Wyświetl plik

@ -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"

Wyświetl plik

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