aboutsummaryrefslogtreecommitdiffstats
path: root/python/markit
diff options
context:
space:
mode:
Diffstat (limited to 'python/markit')
-rw-r--r--python/markit/__main__.py17
-rw-r--r--python/markit/import_quotes.py6
2 files changed, 15 insertions, 8 deletions
diff --git a/python/markit/__main__.py b/python/markit/__main__.py
index 797bc6e6..d74194d8 100644
--- a/python/markit/__main__.py
+++ b/python/markit/__main__.py
@@ -17,7 +17,7 @@ from .import_quotes import copy_curves_forward, insert_cds, insert_index, insert
from pandas.tseries.offsets import BDay
from sqlalchemy import create_engine
from utils import SerenitasFileHandler
-from utils.db import dbconn
+from utils.db import serenitas_pool
# parse arguments
parser = argparse.ArgumentParser()
@@ -90,22 +90,23 @@ elif args.cds:
download_cds_data(payload, workdate)
payload.update({"type": "CredIndex", "version": 4})
download_composite_data(payload, workdate, historical)
- serenitasdb = dbconn("serenitasdb")
- insert_cds(serenitasdb, workdate)
- copy_curves_forward(serenitasdb, workdate)
- serenitasdb.close()
+ conn = serenitas_pool.getconn()
+ remove_curves(conn, workdate)
+ insert_cds(conn, workdate)
+ copy_curves_forward(conn, workdate)
+ serenitas_pool.putconn(conn)
if not args.insert_only:
engine = create_engine("postgresql://serenitas_user@debian/serenitasdb")
insert_index(engine, workdate)
insert_tranche(engine, workdate)
elif args.rates:
- serenitasdb = dbconn("serenitasdb")
+ conn = serenitas_pool.getconn()
for curr in ["USD", "EUR", "JPY"]:
retry = 0
while retry < 10:
try:
- downloadMarkitIRData(serenitasdb, workdate, curr)
+ downloadMarkitIRData(conn, workdate, curr)
except ValueError as e:
logger.error(e)
logger.error(f"Could not download {curr} rates for date {workdate}")
@@ -114,4 +115,4 @@ elif args.rates:
else:
logger.info(f"Downloaded {curr} rates")
break
- serenitasdb.close()
+ serenitas_pool.putconn(conn)
diff --git a/python/markit/import_quotes.py b/python/markit/import_quotes.py
index 62cf1531..abcf3831 100644
--- a/python/markit/import_quotes.py
+++ b/python/markit/import_quotes.py
@@ -148,6 +148,12 @@ def csv_file_gen(workdate):
yield from product(csvreader, (100, 500))
+def remove_curves(conn, workdate: datetime.date):
+ with conn.cursor() as c:
+ c.execute("DELETE FROM cds_curves WHERE date=%s", (workdate,))
+ conn.commit()
+
+
def copy_curves_forward(conn, workdate: datetime.date):
sql_str = (
"INSERT INTO cds_curves "