diff options
Diffstat (limited to 'python')
| -rw-r--r-- | python/handle_default.py | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/python/handle_default.py b/python/handle_default.py index 73d010b5..161ede62 100644 --- a/python/handle_default.py +++ b/python/handle_default.py @@ -3,10 +3,10 @@ from db import dbconn import datetime from sys import argv -def affected_indices(company_id): +def affected_indices(company_id, conn): """returns the list of indices containing company_id""" - with serenitasdb.cursor() as c: + with conn.cursor() as c: sqlstr = """SELECT * FROM (SELECT unnest(index_list) AS basketid FROM bbg_issuers WHERE company_id=%s) a JOIN index_version USING (basketid) @@ -15,7 +15,7 @@ def affected_indices(company_id): recordslist = c.fetchall() return recordslist -def create_newindices(recordslist, lastdate, nissuers): +def create_newindices(recordslist, lastdate, nissuers, conn): """create the new indices versions and update the old""" insertstr = """INSERT INTO index_version(Index, Series, Version, IndexFactor, CumulativeLoss, lastdate) Values(%(index)s, %(series)s, %(version)s, %(indexfactor)s, @@ -23,7 +23,7 @@ def create_newindices(recordslist, lastdate, nissuers): updatestr = "UPDATE index_version SET lastdate=%s WHERE basketid=%s" - with serenitasdb.cursor() as c: + with conn.cursor() as c: newids = {} for r in recordslist: r['indexfactor'] -= 100/nissuers @@ -34,16 +34,16 @@ def create_newindices(recordslist, lastdate, nissuers): newids[r['basketid']] = c.fetchone()[0] for oldid in newids.keys(): c.execute(updatestr, (lastdate, oldid)) - serenitasdb.commit() + conn.commit() return newids -def update_indexmembers(newids, company_id): - with serenitasdb.cursor() as c: +def update_indexmembers(newids, company_id, conn): + with conn.cursor() as c: for oldid, newid in newids.items(): c.execute("""update bbg_issuers set index_list=index_list||%s where company_id in (select company_id from bbg_issuers where %s=Any(index_list) and company_id != %s)""", (newid, oldid, company_id)) - serenitasdb.commit() + conn.commit() if __name__=="__main__": if len(argv) == 1: @@ -57,6 +57,7 @@ For instance: lastdate = datetime.datetime.strptime(argv[2], "%Y-%m-%d") recovery = float(argv[3]) n_issuers = float(argv[4]) - recordslist = affected_indices(company_id) - newids = create_newindices(recordslist, lastdate, n_issuers) - update_indexmembers(newids, company_id) + recordslist = affected_indices(company_id, serenitasdb) + print(recordslist) + newids = create_newindices(recordslist, lastdate, n_issuers, serenitasdb) + update_indexmembers(newids, company_id, serenitasdb) |
