aboutsummaryrefslogtreecommitdiffstats
path: root/python/cusip_universe.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/cusip_universe.py')
-rw-r--r--python/cusip_universe.py37
1 files changed, 18 insertions, 19 deletions
diff --git a/python/cusip_universe.py b/python/cusip_universe.py
index b8d2d100..15102f2b 100644
--- a/python/cusip_universe.py
+++ b/python/cusip_universe.py
@@ -7,6 +7,7 @@ import csv
import pdb
import sys
import common
+from common import query_db
def convertToNone(s):
return None if s=="" else s
@@ -21,13 +22,14 @@ def sanitize_float(intex_float):
intex_float = float(intex_float)
return intex_float
-def upload_data(workdate, conn, cursor):
+def upload_data(workdate, conn):
dealupdate = {}
for cusip_universe_file in os.listdir(os.path.join(common.root, "data", "Trinfo_" + workdate)):
with open( os.path.join(common.root, "data", "Trinfo_" + workdate, cusip_universe_file), "r") as fh:
dr = csv.DictReader(fh, dialect='excel-tab')
data = []
deals_to_update = []
+ c = conn.cursor()
for line in dr:
if "ISIN" not in line:
line['ISIN'] = None
@@ -39,12 +41,12 @@ def upload_data(workdate, conn, cursor):
dealname = line['dealname']
line = {k: convertToNone(v) for k, v in line.items()}
if dealname not in dealupdate:
- cursor.execute("SELECT \"Latest Update\" FROM clo_universe " \
- "WHERE dealname = %s ORDER BY \"Latest Update\" DESC", (dealname,))
- dealupdate[dealname] = cursor.fetchone()[0]
+ dealupdate[dealname] = query_db("SELECT \"Latest Update\" FROM clo_universe " \
+ "WHERE dealname = %s ORDER BY \"Latest Update\" DESC",
+ params = (dealname,))[0]
+
sqlstring = "SELECT updatedate FROM latest_cusip_universe WHERE cusip = %s"
- cursor.execute(sqlstring, (line['CUSIP'],))
- curr_date = cursor.fetchone()
+ curr_date = query_db(sqlstring, params = (line['CUSIP'],))
if not curr_date or curr_date[0] < dealupdate[dealname]:
if dealname not in deals_to_update:
deals_to_update.append(dealname)
@@ -71,23 +73,21 @@ def upload_data(workdate, conn, cursor):
"%(Curr Detachment Point)s, %(Floater Index)s, %(Floater Spread)s, " \
"%(updatedate)s)"
try:
- cursor.execute(sqlstring, line)
+ c.execute(sqlstring, line)
except psycopg2.DataError:
pdb.set_trace()
print("uploaded: {0}".format(line['CUSIP']))
conn.commit()
+
for dealname in deals_to_update:
- try:
- cursor.execute("SELECT p_cusip, p_curr_subordination, "\
- "p_curr_thickness from et_deal_subordination(%s)",
- (dealname,))
- except psycopg2.DataError:
- pdb.set_trace()
- data = cursor.fetchall()
+ data = query_db("SELECT p_cusip, p_curr_subordination, "\
+ "p_curr_thickness from et_deal_subordination(%s)",
+ params = (dealname,),
+ one = False)
data = [ (t[1], t[2], t[0], dealupdate[dealname]) for t in data]
- cursor.executemany("UPDATE cusip_universe SET subordination = %s, "
- "thickness = %s WHERE cusip = %s AND "
- "updatedate = %s", data)
+ c.executemany("UPDATE cusip_universe SET subordination = %s, "
+ "thickness = %s WHERE cusip = %s AND "
+ "updatedate = %s", data)
conn.commit()
if __name__=="__main__":
@@ -96,6 +96,5 @@ if __name__=="__main__":
else:
workdate = str(datetime.date.today())
- upload_data(workdate, common.conn, common.cursor)
- common.cursor.close()
+ upload_data(workdate, common.conn)
common.conn.close()