diff options
Diffstat (limited to 'python/parse_baml_swaption.py')
| -rw-r--r-- | python/parse_baml_swaption.py | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/python/parse_baml_swaption.py b/python/parse_baml_swaption.py index 86aad8f4..91767af7 100644 --- a/python/parse_baml_swaption.py +++ b/python/parse_baml_swaption.py @@ -2,10 +2,14 @@ from serenitas.utils.exchange import ExchangeMessage import pandas as pd from serenitas.utils.db import dawn_engine import sys +from sqlalchemy.exc import IntegrityError +import logging sys.path.append("/home/flint/projects/ops/serenitas") from ops.trade_dataclasses import SwaptionDeal +logger = logging.getLogger(__name__) + columns = [ "option_recap", "index_buyer", @@ -28,7 +32,7 @@ columns = [ em = ExchangeMessage() -for msg in em.get_msgs(path=["AutoBook", "BAML Swaption"], count=2): +for msg in em.get_msgs(path=["AutoBook", "BAML Swaption"], count=5): dfs = pd.read_html(msg.body) trades = [] for df in dfs: @@ -39,15 +43,18 @@ for msg in em.get_msgs(path=["AutoBook", "BAML Swaption"], count=2): trades.append(trade) trade = SwaptionDeal.from_baml_email(trade) trade.stage() - trade.commit() + df = pd.DataFrame.from_dict(trades) df.columns = df.columns.str.lower().str.replace(" ", "_") - additional_columns = ["collateral"] if "collateral" in df.columns else [] - df = df[columns + additional_columns] + if "collateral" in df.columns: + columns.append("collateral") + df = df[columns] try: df.to_sql( "baml_swaption_ticket", index=False, con=dawn_engine, if_exists="append" ) - except Exception as e: - print(e) + except IntegrityError as e: + logger.warning(e) + else: + trade.commit() |
