Skip to content

Commit 9e1ba1c

Browse files
committed
chore: convert cache returned values to set
This might be discarded in some cases (see redis/hiredis-py#189).
1 parent 5b42434 commit 9e1ba1c

File tree

4 files changed

+21
-11
lines changed

4 files changed

+21
-11
lines changed

weblate/machinery/base.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -243,9 +243,10 @@ def report_error(
243243
def supported_languages(self):
244244
"""Return list of supported languages."""
245245
# Try using list from cache
246-
languages = cache.get(self.languages_cache)
247-
if languages is not None:
248-
return languages
246+
languages_cache = cache.get(self.languages_cache)
247+
if languages_cache is not None:
248+
# hiredis-py 3 makes list from set
249+
return set(languages_cache)
249250

250251
if self.is_rate_limited():
251252
return set()

weblate/machinery/deepl.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -148,13 +148,16 @@ def format_replacement(
148148

149149
def is_glossary_supported(self, source_language: str, target_language: str) -> bool:
150150
cache_key = self.get_cache_key("glossary_languages")
151-
languages = cache.get(cache_key)
152-
if languages is None:
151+
languages_cache = cache.get(cache_key)
152+
if languages_cache is not None:
153+
# hiredis-py 3 makes list from set
154+
languages = set(languages_cache)
155+
else:
153156
response = self.request("get", self.get_api_url("glossary-language-pairs"))
154-
languages = [
157+
languages = {
155158
(support["source_lang"].upper(), support["target_lang"].upper())
156159
for support in response.json()["supported_languages"]
157-
]
160+
}
158161

159162
cache.set(cache_key, languages, 24 * 3600)
160163

weblate/machinery/openai.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,11 @@ def is_supported(self, source, language) -> bool:
7979
def get_model(self) -> str:
8080
if self._models is None:
8181
cache_key = self.get_cache_key("models")
82-
self._models = cache.get(cache_key)
83-
if self._models is None:
82+
models_cache = cache.get(cache_key)
83+
if models_cache is not None:
84+
# hiredis-py 3 makes list from set
85+
self._models = set(models_cache)
86+
else:
8487
self._models = {model.id for model in self.client.models.list()}
8588
cache.set(cache_key, self._models, 3600)
8689

weblate/trans/views/dashboard.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -293,8 +293,11 @@ def dashboard_user(request: AuthenticatedHttpRequest):
293293

294294
def dashboard_anonymous(request: AuthenticatedHttpRequest):
295295
"""Home page of Weblate showing list of projects for anonymous user."""
296-
top_project_ids = cache.get("dashboard-anonymous-projects")
297-
if top_project_ids is None:
296+
top_project_ids_cache = cache.get("dashboard-anonymous-projects")
297+
if top_project_ids_cache is not None:
298+
# hiredis-py 3 makes list from set
299+
top_project_ids = set(top_project_ids_cache)
300+
else:
298301
top_projects = sorted(
299302
prefetch_stats(request.user.allowed_projects),
300303
key=lambda prj: -prj.stats.monthly_changes,

0 commit comments

Comments
 (0)