From 8564c12d13b802500bd16a07eef64120949dd36c Mon Sep 17 00:00:00 2001 From: Osma Suominen Date: Tue, 17 Sep 2024 11:28:06 +0300 Subject: [PATCH] detect-language REST API method: return results sorted by descending score --- annif/rest.py | 12 ++++++++---- tests/test_rest.py | 6 +++--- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/annif/rest.py b/annif/rest.py index 18d5ecfe..d9678664 100644 --- a/annif/rest.py +++ b/annif/rest.py @@ -100,10 +100,14 @@ def detect_language(body: dict[str, Any]): ) result = { - "results": [ - {"language": lang if lang != "unk" else None, "score": score} - for lang, score in proportions.items() - ] + "results": sorted( + [ + {"language": lang if lang != "unk" else None, "score": score} + for lang, score in proportions.items() + ], + key=lambda x: x["score"], + reverse=True, + ) } return result, 200, {"Content-Type": "application/json"} diff --git a/tests/test_rest.py b/tests/test_rest.py index 43d42d78..d6c2160c 100644 --- a/tests/test_rest.py +++ b/tests/test_rest.py @@ -59,7 +59,7 @@ def test_rest_detect_language_english(app): result = annif.rest.detect_language( {"text": "example text", "languages": ["en", "fi", "sv"]} )[0] - assert {"language": "en", "score": 1} in result["results"] + assert result["results"][0] == {"language": "en", "score": 1} def test_rest_detect_language_unknown(app): @@ -68,13 +68,13 @@ def test_rest_detect_language_unknown(app): result = annif.rest.detect_language( {"text": "exampley texty", "languages": ["fi", "sv"]} )[0] - assert {"language": None, "score": 1} in result["results"] + assert result["results"][0] == {"language": None, "score": 1} def test_rest_detect_language_no_text(app): with app.app_context(): result = annif.rest.detect_language({"text": "", "languages": ["en"]})[0] - assert {"language": None, "score": 1} in result["results"] + assert result["results"][0] == {"language": None, "score": 1} def test_rest_detect_language_unsupported_candidates(app):