import argparse import datetime from serenitas.ops.trade_dataclasses import BondDeal from serenitas.ops.funds import CTM def main(trade_date, upload): conn = BondDeal._conn with conn.cursor() as c: c.execute( "UPDATE bonds SET emailed=True FROM counterparties " "WHERE trade_date=%s AND ctm_code IS NOT NULL AND NOT emailed AND cp_code=code RETURNING id", (trade_date,), ) for (tid,) in c: trade = BondDeal.from_tradeid(tid) CTM.stage(trade) if not CTM.staging_queue: return buf, dest = CTM.build_buffer() if upload: CTM.upload(buf) conn.commit() if __name__ == "__main__": parser = argparse.ArgumentParser() parser.add_argument( "trade_date", type=datetime.date.fromisoformat, default=datetime.date.today(), nargs="?", ) parser.add_argument( "-n", "--no-upload", action="store_true", help="do not upload to CTM" ) args = parser.parse_args() main(args.trade_date, not args.no_upload)