[./utils/stats_prises.py] Statistiques sur les cablages CRANS/CROUS

darcs-hash:20100915085349-c8775-503ab895fb478d01afc6fcd72b546637cdc593f3.gz
This commit is contained in:
Nicolas Bruot 2010-09-15 10:53:49 +02:00
parent 72074c5bf7
commit 91ebdd168b

39
utils/stats_prises.py Executable file
View file

@ -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'])