diff options
Diffstat (limited to 'python')
| -rw-r--r-- | python/baml.py | 79 | ||||
| -rw-r--r-- | python/scotia_monitor.py | 26 |
2 files changed, 0 insertions, 105 deletions
diff --git a/python/baml.py b/python/baml.py deleted file mode 100644 index a7951611..00000000 --- a/python/baml.py +++ /dev/null @@ -1,79 +0,0 @@ -import logging -import pandas as pd -from serenitas.utils.env import DAILY_DIR -from serenitas.utils.db import dawn_engine -import datetime -from serenitas.analytics.dates import prev_business_day -from collateral.baml_isda import read_secure_message - -logger = logging.getLogger(__name__) - - -def download_messages(em): - for msg in em.get_msgs( - path=["NYops", "Mercury"], count=20, subject__startswith="Positions-" - ): - if msg.sender == "mercury-reports@baml.com": - date = msg.subject.split("-", 1)[1] - save_dir = DAILY_DIR / date / "Reports" - for attach in msg.attachments: - if attach.name.endswith("html"): - read_secure_message(msg, save_dir, logger) - continue - if attach.name.endswith("csv"): - p = save_dir / attach.name - p.parent.mkdir(exist_ok=True, parents=True) - if not p.exists(): - p.write_bytes(attach.content) - - -def load_cash_report(workdate: datetime.date): - path = DAILY_DIR / str(workdate) / "Reports" / f"Positions-{workdate}.csv" - df = pd.read_csv( - path, - index_col=False, - usecols=[ - "Asset Class", - "Local Market Value", - "Local Currency", - "Account Name", - "Portfolio ID", - ], - ) - df = ( - df[df["Asset Class"] == "CASH AND EQUIVALENTS"] - .groupby(["Local Currency", "Account Name", "Portfolio ID"]) - .sum() - ) - df["date"] = prev_business_day(workdate) - df = df.reset_index().rename( - { - "Portfolio ID": "account_number", - "Local Currency": "currency_code", - "Account Name": "account_name", - "Local Market Value": "balance", - }, - axis=1, - ) - df["date"] = pd.to_datetime(df["date"]) - df["fund"] = "SERCGMAST" - df.to_sql("cash_balances", dawn_engine, if_exists="append", index=False) - - -if __name__ == "__main__": - import argparse - from serenitas.utils.exchange import ExchangeMessage - - parser = argparse.ArgumentParser() - parser.add_argument( - "workdate", - nargs="?", - type=datetime.date.fromisoformat, - default=datetime.date.today(), - help="working date", - ) - args = parser.parse_args() - em = ExchangeMessage() - - download_messages(em) - load_cash_report(args.workdate) diff --git a/python/scotia_monitor.py b/python/scotia_monitor.py deleted file mode 100644 index 93e39b9e..00000000 --- a/python/scotia_monitor.py +++ /dev/null @@ -1,26 +0,0 @@ -import datetime -import logging -from serenitas.analytics.dates import prev_business_day -from serenitas.utils.db import dbconn -from serenitas.utils.exchange import ExchangeMessage -from report_ops.utils import EmailOps - -if __name__ == "__main__": - import argparse - - parser = argparse.ArgumentParser() - parser.add_argument( - "cob", - nargs="?", - type=datetime.date.fromisoformat, - default=prev_business_day(datetime.date.today()), - help="working date", - ) - args = parser.parse_args() - logger = logging.getLogger(__name__) - conn = dbconn("dawndb") - sql_str = "SELECT * FROM cash_balances cb WHERE fund='ISOSEL' AND account_number = '476960681512' AND date=%s;" - with conn.cursor() as c: - c.execute(sql_str, (args.cob,)) - if not (cash_balance := c.fetchone()): - EmailOps.email_boston(args.cob) |
