#!/usr/bin/python # -*- mode: python; coding: utf-8 -*- # # $Id: stats_cableurs.py,v 1.2 2007-09-29 17:50:09 dimino Exp $ # # stats_cableurs.py # ----------------- # # Copyright (C) 2007 François Bobot , # Jeremie Dimino , # Michel Blockelet 1: if sys.argv[1] == '-e': mois = [8,9,10,11] if len(sys.argv) > 2: try: nb_affiche = int(sys.argv[2]) except: nb_affiche = 10 else: try: nb_affiche = int(sys.argv[1]) except: nb_affiche = 10 score = calcul_score(mois) classement = classe(score) if nb_affiche > 0: classement = classement[0:nb_affiche] # On cherche les noms des câbleurs parceque c'est quand même mieux nom_reel = {} for cableur in classement: nom_reel[cableur] =db.search('uid=%s' % cableur)['adherent'][0].Nom() # Calcul des statistiques total_inscription = 0 total_reinscription = 0 total = 0 for s in score.values(): total_inscription += s['inscription'] total_reinscription += s['reinscription'] total += s['total'] cprint(u"""Statistiques globales: - inscriptions: %(inscription)d - réinscription: %(reinscription)d - total: %(total)d """ % { 'inscription': total_inscription, 'reinscription': total_reinscription, 'total': total }, newline=False) # Calcul la longueur du nom le plus long long_max = reduce(lambda m,c : max(m, len(c)), nom_reel.values(), len('cableur')) colonnes = [('inscription', u'inscription'), ('reinscription', u'réinscription'), ('total', u'score total')] # Titres des colonnes ligne = "%-*s" % (long_max, u'câbleur') for type, nom in colonnes: ligne += " | %s" % nom cprint(ligne) # Ligne pour délimiter ligne = ''.center(long_max, '-') for type, nom in colonnes: ligne += "-+-%s" % ''.center(len(nom), '-') cprint(ligne) # Statiqtiques par câbleur for cableur in classement: score_cableur = score[cableur] ligne = "%-*s" % (long_max, nom_reel[cableur]) for type, nom in colonnes: ligne += " | %*d" % (len(nom), score_cableur[type]) cprint(ligne)