Changeset - 5bfda9c04db5
[Not reviewed]
default
0 2 0
Mads Kiilerich - 6 years ago 2019-07-22 01:18:14
mads@kiilerich.com
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.
2 files changed with 14 insertions and 15 deletions:
0 comments (0 inline, 0 general)
kallithea/controllers/summary.py
Show inline comments
 
@@ -136,13 +136,12 @@ class SummaryController(BaseRepoControll
 
            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 = []
kallithea/tests/functional/test_summary.py
Show inline comments
 
@@ -158,12 +158,12 @@ class TestSummaryController(TestControll
 
            '["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 @@ class TestSummaryController(TestControll
 
            '["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):
0 comments (0 inline, 0 general)