diff options
Diffstat (limited to 'python/book_bbg.py')
| -rw-r--r-- | python/book_bbg.py | 35 |
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) |
