--- /dev/null
+#!/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)
#!/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
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'):
"""
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'
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)
"""
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)
"""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]
--- /dev/null
+../base.py
\ No newline at end of file
"""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
;
"""
-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: