aboutsummaryrefslogtreecommitdiffstats
path: root/python/book_bbg.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/book_bbg.py')
-rw-r--r--python/book_bbg.py11
1 files changed, 10 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)