| 12345678910111213141516171819202122232425262728293031 |
- 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))
|