diff --git a/utils/stats_prises.py b/utils/stats_prises.py new file mode 100755 index 00000000..790d4604 --- /dev/null +++ b/utils/stats_prises.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +"""Affiche des statistiques sur le câblage des prises des chambres +(CRANS ou CROUS).""" + +import sys +import psycopg2 +sys.path.append('/usr/scripts/gestion') +from affich_tools import tableau + +conn = psycopg2.connect("user=crans dbname=switchs host=pgsql.adm.crans.org") + +def compte_prises(reseau, batiment=''): + """Compte les prises câblées sur reseau (crans ou crous).""" + + reseau = reseau.lower() + cur = conn.cursor() + if batiment == '': + cur.execute("SELECT COUNT(prises) FROM prises WHERE " + reseau + "=True") + n = cur.fetchone()[0] + else: + batiment = batiment.lower() + cur.execute("SELECT COUNT(prises) FROM prises WHERE (batiment, " + reseau + ")=(%s, True)", (batiment, )) + n = cur.fetchone()[0] + return n + +data = [] +for bat in ['A', 'B', 'C', 'G', 'H', 'I', 'J', 'M', '']: + n_crans = compte_prises('crans', bat) + n_crous = compte_prises('crous', bat) + frac_crans = 1.*n_crans/(n_crous + n_crans) + if bat == '': + bat = 'Total' + data.append([bat, n_crans, n_crous, '%0.2f' % (100*frac_crans)]) + +print tableau(data, [u'Bât.', u'CRANS', + u'CROUS', u'% CRANS'], + [7, 7, 7, 9], ['c', 'd', 'd', 'd'])