]> gitweb.pimeys.fr Git - scripts-20-100.git/commitdiff
[bde] Création de base.py pour factorisation de getcursor()
authorVincent Le Gallic <legallic@crans.org>
Thu, 10 Mar 2016 03:10:02 +0000 (04:10 +0100)
committerVincent Le Gallic <legallic@crans.org>
Fri, 11 Mar 2016 04:41:28 +0000 (05:41 +0100)
bde/base.py [new file with mode: 0644]
bde/credits_duplicates.py
bde/solde_date.py
bde/stats/all_past.py
bde/stats/base.py [new symlink]
bde/stats/depenses.py

diff --git a/bde/base.py b/bde/base.py
new file mode 100644 (file)
index 0000000..1a3fa65
--- /dev/null
@@ -0,0 +1,18 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+"""
+Des fonctions que j'utilise partout dans mes scripts bde/note.
+
+Parce que la duplication de code, c'est le mal.
+"""
+
+import psycopg2
+import psycopg2.extras
+
+def getcursor():
+    """Ouvre une connexion à la base de données de la note."""
+    con = psycopg2.connect(database="note")
+    con.set_client_encoding("utf-8")
+    cur = con.cursor(cursor_factory = psycopg2.extras.DictCursor)
+    return (con, cur)
index 3669e8e51b336b3e4450e5f1c147b996cbc5904b..7cb2fcb822cea95bac50ac2fdad123d1f4b32789 100755 (executable)
@@ -1,7 +1,7 @@
 #!/usr/bin/env python
 # -*- encoding: utf-8 -*-
 
-""" Pour trouver les chèque dupliqués sur la note. """
+""" Pour trouver les chèques dupliqués sur la note. """
 
 import psycopg2
 import psycopg2.extras
@@ -10,12 +10,9 @@ import pprint
 import subprocess
 import argparse
 
+import base
 import pretty_print
 
-def getcursor():
-    con = psycopg2.connect(database="note")
-    con.set_client_encoding("utf-8")
-    return (con, con.cursor(cursor_factory = psycopg2.extras.DictCursor))
 
 def get_data(cur, delai='1 minute', date='1970-01-01'):
     """
@@ -62,7 +59,7 @@ def get_data(cur, delai='1 minute', date='1970-01-01'):
             c.pseudo AS destp,
             t1.description AS desc1,
             t2.description AS desc2
-        FROM credits t1,credits t2, comptes c
+        FROM credits t1, credits t2, comptes c
         WHERE t1.destinataire = c.idbde
           AND t1.date >= %(date)s AND t2.date >= %(date)s
           AND t1.type='crédit'
@@ -164,7 +161,7 @@ if __name__ == "__main__":
 
     args = parser.parse_args()
 
-    con, cur = getcursor()
+    con, cur = base.getcursor()
     data = get_data(cur, delai=args.deltat, date=args.date)
     blocks = sort_by_blocks(data)
     interactive(blocks, cur, args)
index 193822ac58953c1c3c17430224708ae446b49bf4..f685c736b84527e97159dbcf95e0d57a09c79571 100755 (executable)
@@ -10,17 +10,14 @@ Usage : solde_date.py idbde date
 """
 
 import sys
-import psycopg2,psycopg2.extras
+import psycopg2
+import psycopg2.extras
 
-def getcursor():
-    """Obtenir une connexion à la base de données."""
-    con = psycopg2.connect(database='note')
-    cur = con.cursor(cursor_factory=psycopg2.extras.DictCursor)
-    return con, cur
+import base
 
 def get_solde_date(idbde, date="now"):
     """Calcule le solde du compte ``idbde`` à la ``date`` donnée."""
-    con, cur = getcursor()
+    con, cur = base.getcursor()
     cur.execute(
         """
         SELECT COALESCE(sum(montant*quantite), 0)
index 20ae663195a2d30df32e6152912ef951fa70743c..40f3bea7ec0216b402485cd9c8c1b6290e7db559 100755 (executable)
@@ -3,12 +3,14 @@
 
 """Pour récupérer les soldes des comptes à plusieurs moments du passé."""
 
-import depenses
 import time
 
+import base
+import depenses
+
 def get_idbdes():
     """Récupère les idbdes de tous les comptes."""
-    con, cur = depenses.get_cursor()
+    con, cur = base.getcursor()
     cur.execute("SELECT idbde FROM comptes WHERE idbde >= 0;")
     l = cur.fetchall()
     l = [i[0] for i in l]
diff --git a/bde/stats/base.py b/bde/stats/base.py
new file mode 120000 (symlink)
index 0000000..9638ef5
--- /dev/null
@@ -0,0 +1 @@
+../base.py
\ No newline at end of file
index fff63d3d5a7acf73466d4209d10eccad0461fd7d..88e7c900e849f0011ba77ad8bc4b7e453736ffb4 100755 (executable)
@@ -3,12 +3,11 @@
 
 """Affiche les dépenses totales d'un compte par année + total"""
 
-import psycopg2
-import psycopg2.extras
-
 import sys
 import argparse
 
+import base
+
 create_temp_table = """
  SELECT extract(year FROM date) AS annee,
        %(select_month)s
@@ -43,16 +42,9 @@ display_sum = """ SELECT sum(gains) AS gains, sum(depenses) AS depenses
  ;
 """
 
-def get_cursor():
-    """Ouvre une connexion à la bdd."""
-    con = psycopg2.connect(database="note")
-    con.set_client_encoding("utf-8")
-    cur = con.cursor(cursor_factory = psycopg2.extras.DictCursor)
-    return (con, cur)
-
 def get_depenses(idbde, bymonth=False):
     """Récupère toutes les dépenses/gains du compte ``idbde``"""
-    con, cur = get_cursor()
+    con, cur = base.getcursor()
     modifiers = {"select_month" : "", "comma_month" : ""}
     params = {"idbde" : idbde}
     if bymonth: