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.py35
1 files changed, 11 insertions, 24 deletions
diff --git a/python/book_bbg.py b/python/book_bbg.py
index 7da29b01..6b9c17e7 100644
--- a/python/book_bbg.py
+++ b/python/book_bbg.py
@@ -1,16 +1,9 @@
-from serenitas.utils.env import DAILY_DIR
from serenitas.utils.remote import SftpClient
-from zoneinfo import ZoneInfo
import datetime
import csv
from trade_dataclasses import CDSDeal, BondDeal
from decimal import Decimal
-from serenitas.utils.db import dbconn
-from lru import LRU
from stat import S_ISREG
-import pandas as pd
-from sqlalchemy.exc import SQLAlchemyError
-import time
def get_indic_data(conn, redcode, tenor):
@@ -50,11 +43,9 @@ def cdx_booking_process(path, conn):
CDSDeal.commit()
-def bond_booking_process(path, fname):
- for row in csv.DictReader(path):
- line = {"bbg_ticket_id": fname}
- line.update(row)
- breakpoint()
+def bond_booking_process(file_handle, index):
+ for row in csv.DictReader(file_handle):
+ line = {"bbg_ticket_id": index, **row}
trade = BondDeal.from_bbg_line(line)
trade.stage()
BondDeal.commit()
@@ -65,18 +56,14 @@ def get_bbg_id(name):
if __name__ == "__main__":
- from serenitas.utils.db import serenitas_pool, dawn_engine
+ import time
- conn = serenitas_pool.getconn()
+ sftp = SftpClient.from_creds("bbg")
while True:
- d = datetime.date.today()
- sftp = SftpClient.from_creds("bbg")
- filters = [lambda f: S_ISREG(f.st_mode)]
- for f in filter(
- lambda f: all(filt(f) for filt in filters), sftp.client.listdir_iter("/")
- ):
- if "BOND" in f.filename:
- bbg_id = get_bbg_id(f.filename)
- if bbg_id not in BondDeal._cache:
- bond_booking_process(sftp.client.open(f.filename), bbg_id)
+ for f in sftp.client.listdir_iter("/"):
+ if S_ISREG(f.st_mode):
+ if "BOND" in f.filename:
+ 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)
time.sleep(60)