diff options
Diffstat (limited to 'python/collateral/common.py')
| -rw-r--r-- | python/collateral/common.py | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/python/collateral/common.py b/python/collateral/common.py index 6dac36bc..464f55a3 100644 --- a/python/collateral/common.py +++ b/python/collateral/common.py @@ -1,11 +1,13 @@ +import datetime import logging import pandas as pd from exchangelib import HTMLBody +from sqlalchemy.engine import Engine logger = logging.getLogger(__name__) -def compare_notionals(df, positions, fcm: str): +def compare_notionals(df: pd.DataFrame, positions: pd.DataFrame, fcm: str) -> None: check_notionals = ( positions.groupby(level=["security_id", "maturity"])[["notional"]] .sum() @@ -22,11 +24,11 @@ def compare_notionals(df, positions, fcm: str): ) -def get_dawn_trades(d, engine): +def get_dawn_trades(d: datetime.date, engine: Engine) -> pd.DataFrame: df_cds = pd.read_sql_query( "SELECT cpty_id, folder, initial_margin_percentage * notional / 100 as IA " - "FROM cds " - "WHERE cpty_id IS NOT NULL AND trade_date <= %s", + "FROM list_cds(%s::date) " + "WHERE cpty_id IS NOT NULL", engine, params=(d,), ) @@ -63,13 +65,14 @@ def get_dawn_trades(d, engine): "HYMEZ": "TCSH", "HYEQY": "TCSH", "BSPK": "TCSH", + "XOMEZ": "TCSH", } } ) return df -def send_email(d, df): +def send_email(d: datetime.date, df: pd.DataFrame) -> None: from exchange import ExchangeMessage pd.set_option("display.float_format", "{:.2f}".format) @@ -81,6 +84,7 @@ def send_email(d, df): "BAML_FCM": "Baml FCM", "BAML_ISDA": "Baml OTC", "WELLS": "Wells Fargo", + "BNP": "BNP Paribas", } html = "<html><body>" for cp, name in cp_mapping.items(): |
