diff options
Diffstat (limited to 'python')
| -rw-r--r-- | python/book_bbg.py | 11 | ||||
| -rw-r--r-- | python/trade_dataclasses.py | 1 |
2 files changed, 11 insertions, 1 deletions
diff --git a/python/book_bbg.py b/python/book_bbg.py index 6b9c17e7..2546a4d1 100644 --- a/python/book_bbg.py +++ b/python/book_bbg.py @@ -4,6 +4,7 @@ import csv from trade_dataclasses import CDSDeal, BondDeal from decimal import Decimal from stat import S_ISREG +import psycopg2 def get_indic_data(conn, redcode, tenor): @@ -48,7 +49,13 @@ def bond_booking_process(file_handle, index): line = {"bbg_ticket_id": index, **row} trade = BondDeal.from_bbg_line(line) trade.stage() - BondDeal.commit() + try: + BondDeal.commit() + except psycopg2.Error as e: + print(e) + BondDeal._conn.rollback() + BondDeal._bbg_insert_queue.clear() + BondDeal._insert_queue.clear() def get_bbg_id(name): @@ -63,7 +70,9 @@ if __name__ == "__main__": for f in sftp.client.listdir_iter("/"): if S_ISREG(f.st_mode): if "BOND" in f.filename: + print(BondDeal._cache) if (bbg_id := get_bbg_id(f.filename)) not in BondDeal._cache: with sftp.client.open(f.filename) as fh: bond_booking_process(fh, bbg_id) + BondDeal._cache[f.filename] = None time.sleep(60) diff --git a/python/trade_dataclasses.py b/python/trade_dataclasses.py index 3f4872e9..9f89a223 100644 --- a/python/trade_dataclasses.py +++ b/python/trade_dataclasses.py @@ -212,6 +212,7 @@ class BbgDeal(Deal): c.executemany(cls._bbg_sql_insert, cls._bbg_insert_queue) c.executemany(cls._sql_insert, cls._insert_queue) cls._conn.commit() + cls._bbg_insert_queue.clear() cls._insert_queue.clear() |
