123456789101112131415161718192021222324252627282930313233 |
- from argparse import Namespace
- from collections import defaultdict
- from typing import Dict, List
- import numpy
- from labours.objects import DevDay
- def show_languages(
- args: Namespace,
- name: str,
- start_date: int,
- end_date: int,
- people: List[str],
- days: Dict[int, Dict[int, DevDay]],
- ) -> None:
- devlangs = defaultdict(lambda: defaultdict(lambda: numpy.zeros(3, dtype=int)))
- for day, devs in days.items():
- for dev, stats in devs.items():
- for lang, vals in stats.Languages.items():
- devlangs[dev][lang] += vals
- devlangs = sorted(
- devlangs.items(), key=lambda p: -sum(x.sum() for x in p[1].values())
- )
- for dev, ls in devlangs:
- print()
- print("#", people[dev])
- ls = sorted(((vals.sum(), lang) for lang, vals in ls.items()), reverse=True)
- for vals, lang in ls:
- if lang:
- print("%s: %d" % (lang, vals))
|