import pathlib import datetime from serenitas.utils.env import DAILY_DIR _recipients = { "ISOSEL": ( "luke.treacy@innocap.com", "margincalls@innocapglobal.com", ), "BOWDST": ( "shkumar@sscinc.com", "mbisoye@sscinc.com", "hedgemark.lmcg.ops@sscinc.com", "hm-operations@bnymellon.com", "Hedgemark.OTC@sscinc.com", ), "SERCGMAST": ( "SERENITAS.FA@sscinc.com", "SERENITAS.ops@sscinc.com", ), "BAML_FCM": ("footc_margin_csr_amrs@bofa.com",), "GS_FCM": ( "Susan.Olesky@ny.email.gs.com", "Divyanshi.Girotra@gs.com", "gs-margin-calls-dcs@ny.email.gs.com", "hm-operations@bnymellon.com", ), "NYOPS": ("nyops@lmcg.com",), "UMB": ("lmcgcustody@umb.com",), } _sma_recipients = { "ISOSEL": ( "HM-InnocapFunds@bnymellon.com", "Vera.Dvorski@bnymellon.com", "Diana.WuChen@bnymellon.com", ), "BOWDST": ( "hm-operations@bnymellon.com", "Vera.Dvorski@bnymellon.com", "Diana.WuChen@bnymellon.com", ), "BRINKER": ("nyops@lmcg.com",), } _settlement_recipients = { "BOWDST": _sma_recipients["BOWDST"], "SERCGMAST": ("lmcgcustody@umb.com",), "ISOSEL": ("derivative_settlements@citco.com",), "BRINKER": ("nyops@lmcg.com",), } _cc_recipients = { "ISOSEL": ("selene-ops@lmcg.com",), "BOWDST": ("bowdoin-ops@lmcg.com",), "SERCGMAST": ("nyops@lmcg.com",), "BRINKER": ("nyops@lmcg.com",), } _fund_custodians = {"SERCGMAST": ("UMB",), "ISOSEL": ("NT",), "BOWDST": ("BNY",)} def get_dir( workdate: datetime.date = datetime.date.today(), archived=True ) -> pathlib.Path: p = DAILY_DIR / str(workdate) / "Reports" if not p.exists() and archived: p = ( DAILY_DIR / str(workdate.year) / f"{workdate:%Y_%m}" / str(workdate) / "Reports" ) return p def dt_from_fname(f, dt_format="%Y%m%d%H%M"): return datetime.datetime.strptime( f.name.removesuffix(".csv").removesuffix(".xlsx").rsplit("_")[-1], dt_format ) def dt_from_citco(filename, file_tag, dt_format): return datetime.datetime.strptime( filename.removesuffix(".csv").removeprefix(file_tag), dt_format )