languages.py 729 B

1234567891011121314151617181920
  1. from collections import defaultdict
  2. import numpy
  3. def show_languages(args, name, start_date, end_date, people, days):
  4. devlangs = defaultdict(lambda: defaultdict(lambda: numpy.zeros(3, dtype=int)))
  5. for day, devs in days.items():
  6. for dev, stats in devs.items():
  7. for lang, vals in stats.Languages.items():
  8. devlangs[dev][lang] += vals
  9. devlangs = sorted(devlangs.items(), key=lambda p: -sum(x.sum() for x in p[1].values()))
  10. for dev, ls in devlangs:
  11. print()
  12. print("#", people[dev])
  13. ls = sorted(((vals.sum(), lang) for lang, vals in ls.items()), reverse=True)
  14. for vals, lang in ls:
  15. if lang:
  16. print("%s: %d" % (lang, vals))