From 28dbaacd920a11e758217b26794b1f9e8cc2e742 Mon Sep 17 00:00:00 2001 From: Jacob Date: Sun, 7 Sep 2025 15:17:49 -0500 Subject: [PATCH] Actually correctly sort the sorted set --- app.py | 7 +++++-- redis_client.py | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/app.py b/app.py index 1b72227..190e884 100644 --- a/app.py +++ b/app.py @@ -8,6 +8,7 @@ from typing import Optional from redis_client import get_client +import redis from flask import Flask, Response, request @@ -21,8 +22,10 @@ def create_app(): def stats(): redis_client.increment_hits("stats") try: - stats = redis_client.get_stats() - return {"stats": [{stat[0]: stat[1]} for stat in stats][::-1]} + stats = sorted( + [stat for stat in redis_client.get_stats()], key=lambda stat: -stat[1] + ) + return {"stats": [{stat[0]: stat[1]} for stat in stats]} except redis.exceptions.ConnectionError as e: app.logger.exception(e) return Response("Internal Server Error", 500) diff --git a/redis_client.py b/redis_client.py index 576b993..cb366ea 100644 --- a/redis_client.py +++ b/redis_client.py @@ -23,7 +23,7 @@ class RedisClient: def get_stats(self) -> list[tuple]: """Returns stats values from a Redis sorted set as a tuple of key-value pairs.""" - stats = self.r.zscan_iter("hits") + stats = self.r.zscan_iter("hits", score_cast_func=int) if stats is None: logger.debug("Uninitialized stats object") return [] -- 2.30.2