aboutsummaryrefslogtreecommitdiffstats
path: root/python
diff options
context:
space:
mode:
Diffstat (limited to 'python')
-rw-r--r--python/handle_default.py23
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)