diff options
Diffstat (limited to 'scripts/common')
-rw-r--r-- | scripts/common/__init__.py | 13 | ||||
-rw-r--r-- | scripts/common/postgres.py | 28 | ||||
-rw-r--r-- | scripts/common/queue.py | 22 |
3 files changed, 63 insertions, 0 deletions
diff --git a/scripts/common/__init__.py b/scripts/common/__init__.py new file mode 100644 index 0000000..89977d2 --- /dev/null +++ b/scripts/common/__init__.py @@ -0,0 +1,13 @@ +#!/usr/bin/env python3 +''' common functions and stuff ''' + +import os + + +QUEUE = bool(os.environ.get('el_QUEUE', False)) + +# Initialize queue +if QUEUE is True: + from .queue import dbi +else: + from .postgres import dbi diff --git a/scripts/common/postgres.py b/scripts/common/postgres.py new file mode 100644 index 0000000..bff0720 --- /dev/null +++ b/scripts/common/postgres.py @@ -0,0 +1,28 @@ +#!/usr/bin/env python3 +''' common functions and stuff ''' + +import os +import sys +import psycopg + +pg_db = os.environ['el_pg_db'] +pg_host = os.environ['el_pg_host'] +pg_user = os.environ.get('el_pg_user','') +pg_pass = os.environ.get('el_pg_pass','') + +def dbi(sql, values, **kwargs): + ''' insert into db ''' + verbose = bool(kwargs['verbose']) if 'verbose' in kwargs else False + # pylint: disable=E1129 + with psycopg.connect(dbname=pg_db, host=pg_host, user=pg_user, password=pg_pass) as conn: + cur = conn.cursor() + if isinstance(values, list): + cur.executemany(sql, values) + elif isinstance(values, tuple): + cur.execute(sql, values) + else: + print('`values` is a', type(values), 'but it needs to be tuple or list') + sys.exit(1) + if verbose is True: + print("Inserted and/or changed", cur.rowcount, "rows into db") + return True diff --git a/scripts/common/queue.py b/scripts/common/queue.py new file mode 100644 index 0000000..e567fb4 --- /dev/null +++ b/scripts/common/queue.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python3 +''' common functions and stuff ''' + +import os +import sys +import pickle +from litequeue import SQLQueue + +QUEUE_DB = os.environ.get('el_QUEUE_db', 'litequeue.db') + +# Initialize queue +q = SQLQueue(QUEUE_DB, maxsize=None) + +def dbi(sql,values,**kwargs): + verbose = bool(kwargs['verbose']) if 'verbose' in kwargs else False + + q.put(pickle.dumps([sql, values])) + if verbose is True: + table = sql.split(' ')[2] + num = 1 if isinstance(values, tuple) else len(values) + print("Inserted", num, "item(s) into queue for", table) + return True |