diff options
Diffstat (limited to 'python/recon_bowdst.py')
| -rw-r--r-- | python/recon_bowdst.py | 38 |
1 files changed, 34 insertions, 4 deletions
diff --git a/python/recon_bowdst.py b/python/recon_bowdst.py index 87cca80e..90d3ce52 100644 --- a/python/recon_bowdst.py +++ b/python/recon_bowdst.py @@ -1,6 +1,9 @@ import pandas as pd from serenitas.utils.db import dbconn import argparse +from serenitas.utils.exchange import ExchangeMessage +from exchangelib import FileAttachment +from io import StringIO def difference(df): @@ -14,11 +17,20 @@ def difference(df): return df +def sums(df): + if ("db_mv" in df.columns) and ("db_notional" in df.columns): + return df[["db_mv", "admin_mv", "db_notional", "admin_notional"]].sum() + elif "db_mv" in df.columns: + return df[["db_mv", "admin_mv"]].sum() + elif "db_notional" in df.columns: + return df[["db_notional", "admin_notional"]].sum() + + def recon(hierarchy_file, date): df = pd.read_excel(hierarchy_file) - security_balance = df[df["Asset Type"] == "FIXED INCOME SECURITIES"][ - "Base Market Value" - ].sum() + # security_balance = df[df["Asset Type"] == "FIXED INCOME SECURITIES"][ + # "Base Market Value" + # ].sum() bowd_bond_trades = df[df["CUSIP"].notnull()] bond_asset_classes = ["Subprime", "CRT", "CLO"] @@ -75,8 +87,26 @@ def recon(hierarchy_file, date): kinds = [bond_trades, tranche_trades, cdx_trades, cdx_swaption_trades] names = ["bond_trades", "tranche_trades", "cdx_trades", "cdx_swaption_trades"] + message = "" + em = ExchangeMessage() + attachments = [] for kind, name in zip(kinds, names): - difference(kind).to_csv(f"/home/serenitas/flint/{name}_{date}.csv") + # difference(kind).to_csv(f"/home/serenitas/flint/{name}_{date}.csv") + buf = StringIO() + difference(kind).to_csv(buf) + attachments.append( + FileAttachment(name=f"{name}_{date}.csv", content=buf.getvalue().encode()) + ) + pd.set_option("display.float_format", lambda x: "%.2f" % x) + message += f"\n{name}: {pd.DataFrame(sums(kind), columns=['sums'])}" + + # print(f"{name}: {sums(kind)}") + em.send_email( + subject="Notional Totals", + body=message, + to_recipients=("fyu@lmcg.com",), + attach=attachments, + ) parser = argparse.ArgumentParser() |
