Mercurial > kallithea
changeset 7798:5bfda9c04db5
summary: simplify sorting of language stats - avoid comparing dicts
Make the ordering well defined as primarily decreasing count, secondarily
extension - thus some slight changes in test output.
author | Mads Kiilerich <mads@kiilerich.com> |
---|---|
date | Mon, 22 Jul 2019 01:18:14 +0200 |
parents | e7ba4c0ec050 |
children | 3009a239199d |
files | kallithea/controllers/summary.py kallithea/tests/functional/test_summary.py |
diffstat | 2 files changed, 14 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/kallithea/controllers/summary.py Mon Jul 22 04:43:45 2019 +0200 +++ b/kallithea/controllers/summary.py Mon Jul 22 01:18:14 2019 +0200 @@ -136,13 +136,12 @@ c.no_data = False is c.db_repo.enable_statistics lang_stats_d = json.loads(stats.languages) - lang_stats = ((x, {"count": y, - "desc": LANGUAGES_EXTENSIONS_MAP.get(x)}) - for x, y in lang_stats_d.items()) + lang_stats = [(x, {"count": y, + "desc": LANGUAGES_EXTENSIONS_MAP.get(x, '?')}) + for x, y in lang_stats_d.items()] + lang_stats.sort(key=lambda k: (-k[1]['count'], k[0])) - c.trending_languages = ( - sorted(lang_stats, reverse=True, key=lambda k: k[1])[:10] - ) + c.trending_languages = lang_stats[:10] else: c.no_data = True c.trending_languages = []
--- a/kallithea/tests/functional/test_summary.py Mon Jul 22 04:43:45 2019 +0200 +++ b/kallithea/tests/functional/test_summary.py Mon Jul 22 01:18:14 2019 +0200 @@ -158,12 +158,12 @@ '["rst", {"count": 16, "desc": ["Rst"]}], ' '["css", {"count": 2, "desc": ["Css"]}], ' '["sh", {"count": 2, "desc": ["Bash"]}], ' - '["yml", {"count": 1, "desc": ["Yaml"]}], ' - '["makefile", {"count": 1, "desc": ["Makefile", "Makefile"]}], ' + '["bat", {"count": 1, "desc": ["Batch"]}], ' + '["cfg", {"count": 1, "desc": ["Ini"]}], ' + '["html", {"count": 1, "desc": ["EvoqueHtml", "Html"]}], ' + '["ini", {"count": 1, "desc": ["Ini"]}], ' '["js", {"count": 1, "desc": ["Javascript"]}], ' - '["cfg", {"count": 1, "desc": ["Ini"]}], ' - '["ini", {"count": 1, "desc": ["Ini"]}], ' - '["html", {"count": 1, "desc": ["EvoqueHtml", "Html"]}]]' + '["makefile", {"count": 1, "desc": ["Makefile", "Makefile"]}]]', ) def test_index_statistics(self): @@ -191,12 +191,12 @@ '["rst", {"count": 16, "desc": ["Rst"]}], ' '["css", {"count": 2, "desc": ["Css"]}], ' '["sh", {"count": 2, "desc": ["Bash"]}], ' - '["makefile", {"count": 1, "desc": ["Makefile", "Makefile"]}], ' - '["js", {"count": 1, "desc": ["Javascript"]}], ' + '["bat", {"count": 1, "desc": ["Batch"]}], ' '["cfg", {"count": 1, "desc": ["Ini"]}], ' + '["html", {"count": 1, "desc": ["EvoqueHtml", "Html"]}], ' '["ini", {"count": 1, "desc": ["Ini"]}], ' - '["html", {"count": 1, "desc": ["EvoqueHtml", "Html"]}], ' - '["bat", {"count": 1, "desc": ["Batch"]}]]' + '["js", {"count": 1, "desc": ["Javascript"]}], ' + '["makefile", {"count": 1, "desc": ["Makefile", "Makefile"]}]]', ) def test_index_statistics_git(self):