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 GFSMonitor 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 endqty as amount, invccy as currency, periodenddate as date, port as portfolio FROM valuation_reports vr WHERE fund=%s AND port ='GFS_HELPER_BUSINESS_UNIT' AND periodenddate =%s;" em = ExchangeMessage() with conn.cursor() as c: for fund in ("SERCGMAST", "BOWDST"): c.execute(sql_str, (fund, args.cob)) for row in c: GFSMonitor.stage(row._asdict()) GFSMonitor.email(fund) GFSMonitor._insert_queue.clear()