aboutsummaryrefslogtreecommitdiffstats
path: root/python/collateral/common.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/collateral/common.py')
-rw-r--r--python/collateral/common.py14
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():