diff options
Diffstat (limited to 'python/markit')
| -rw-r--r-- | python/markit/__main__.py | 17 | ||||
| -rw-r--r-- | python/markit/import_quotes.py | 6 |
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 " |
