From fff9f07ecff6f0a62602e08a2f0281f29243d38e Mon Sep 17 00:00:00 2001 From: Sergey Motornyuk Date: Sat, 4 Nov 2023 20:42:40 +0200 Subject: [PATCH] chore: ckanapi compatibility --- .../search_tweaks/query_popularity/logic/action.py | 1 - ckanext/search_tweaks/query_popularity/score.py | 11 +++++++---- setup.cfg | 2 +- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/ckanext/search_tweaks/query_popularity/logic/action.py b/ckanext/search_tweaks/query_popularity/logic/action.py index 6b9bf8a..a40a75c 100644 --- a/ckanext/search_tweaks/query_popularity/logic/action.py +++ b/ckanext/search_tweaks/query_popularity/logic/action.py @@ -30,7 +30,6 @@ def search_tweaks_query_popularity_export( return {"results": results, "count": len(results)} -@tk.side_effect_free def search_tweaks_query_popularity_ignore( context: types.Context, data_dict: dict[str, Any] ): diff --git a/ckanext/search_tweaks/query_popularity/score.py b/ckanext/search_tweaks/query_popularity/score.py index 2ba0892..113e96f 100644 --- a/ckanext/search_tweaks/query_popularity/score.py +++ b/ckanext/search_tweaks/query_popularity/score.py @@ -26,7 +26,7 @@ def __init__(self): def export(self): data: dict[bytes, dict[str, Any]] = { - hash: {"query": query, "records": []} + hash: {"query": query.decode(), "records": []} for hash, query in self.redis.hgetall(self.trans_key()).items() } for k, v in self.redis.hscan_iter(self.distribution_key()): @@ -36,7 +36,7 @@ def export(self): except ValueError: continue - data[q_hash]["records"].append({"date": date, "count": int(v)}) + data[q_hash]["records"].append({"date": date.isoformat(), "count": int(v)}) return list(data.values()) @@ -155,11 +155,14 @@ def distribution_key(self): def format_date_stem(self, date: datetime): return date.strftime(self.date_format) - def stats(self, num: int) -> Iterable[dict[str, Any]]: + def stats(self, num: int) -> Iterable[dict[str, str | float]]: scores: list[tuple[bytes, float]] = self.redis.zrange( self.score_key(), 0, num - 1, desc=True, withscores=True ) trans_key = self.trans_key() for k, v in scores: - yield {"query": self.redis.hget(trans_key, k), "score": v} + query = self.redis.hget(trans_key, k) + if not query: + continue + yield {"query": query.decode(), "score": v} diff --git a/setup.cfg b/setup.cfg index f02a4ff..27052c6 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = ckanext-search-tweaks -version = 0.6.0 +version = 0.6.1a0 description = long_description = file: README.md long_description_content_type = text/markdown