import datetime from mtm_status import get_latest_file counterparty_contacts = { ("BAMSNY", "USD"): ( "dg.gcss_usip_mo@bofa.com", "shalini.goel@bofa.com", "dtcc.chasing@bofa.com", "dg.cmbs-mbex_trade_support@bofa.com", ), ("BAMSNY", "EUR"): ( "emea_credit_fo_support@bofa.com", "dtcc.chasing@bofa.com", "dg.cmbs-mbex_trade_support@bofa.com", ), ("JPCBNY", "USD"): ("credit.na.affirmations@jpmorgan.com",), ("JPCBNY", "EUR"): ("JPM.creditassignmentseurope@jpmorgan.com"), ("MSCSNY", "USD"): ("msnovationsteam@morganstanley.com",), ("GOLDNY", "USD"): ( "Navneet.Sawant@gs.com", "Vishal.Kanojia@ny.email.gs.com", "NY-CDMO@ny.email.gs.com", ), ("GOLDNY", "EUR"): ( "Navneet.Sawant@gs.com", "Vishal.Kanojia@ny.email.gs.com", "LDNCDMO@gs.com", ), ("CITINY", "USD"): ("citiassignmentsus@citigroup.com, james.b.okun@citi.com"), ("CITINY", "EUR"): ("citiassignmentsus@citigroup.com, aaron.beasant@citi.com"), ("BNPBNY", "USD"): ("LM_Sales_Assistants@US.BNPParibas.com",), ("BNPBNY", "EUR"): ("CDSnovationsEurope@bnpparibas.com",), } def contact_novation_counterparties(date): df = get_latest_file(date) df = df[ (df["SwapType"].isin(["ASGM"])) & (df["ThirdPartyStatus.1"].isin(["Pending Consent"])) ] df = ( df.groupby(["ExecutingBroker", "RemainingBroker", "CurrencyCode"])[ "Novation Consent ID" ] .apply(list) .reset_index() ) for row in df.itertuples(): print(row.ExecutingBroker, row.RemainingBroker, row.CurrencyCode, row[4]) if __name__ == "__main__": contact_novation_counterparties(datetime.date(2023, 3, 14))