diff options
Diffstat (limited to 'python')
| -rw-r--r-- | python/mtm_status.py | 28 |
1 files changed, 12 insertions, 16 deletions
diff --git a/python/mtm_status.py b/python/mtm_status.py index 8020b71a..f60f0666 100644 --- a/python/mtm_status.py +++ b/python/mtm_status.py @@ -7,28 +7,24 @@ from zipfile import ZipFile def latest(f): - return f.filename.removesuffix(".csv.zip").split("_")[2] + return f.removesuffix(".csv.zip").rsplit("_", 1)[-1] -def run(conn): +def run(conn, date): sftp = SftpClient.from_creds("mtm") - today = datetime.date.today() - files = [ - f - for f in sftp.client.listdir_iter("outbound") - if today.strftime("%m%d%Y") in f.filename - ] + files = [f for f in sftp.client.listdir("outbound") if date.strftime("%m%d%Y") in f] target_file = max(files, key=latest) - fh = ZipFile(sftp.client.open(f"outbound/{target_file.filename}")).open( - f'{target_file.filename.removesuffix(".zip")}' - ) - df = pd.read_csv(fh, skiprows=2) + with sftp.client.open(f"outbound/{target_file}") as sftp_handle: + with ZipFile(sftp_handle).open(target_file.removesuffix(".zip")) as zip_handle: + df = pd.read_csv(zip_handle, skiprows=2) + df = df[(df["SwapType"] == "NEW") & (df["Executed"])] + place_holders = ",".join(["%s"] * 7) + sql_str = f"INSERT INTO mtm_submissions VALUES({place_holders})" + with conn.cursor() as c: for row in df.itertuples(): - place_holders = ",".join(["%s"] * 7) - sql_str = f"INSERT INTO mtm_submissions VALUES({place_holders})" cpty_id = ( int(row.BrokerSecRef) if type(row.BrokerSecRef) == float @@ -51,7 +47,7 @@ def run(conn): conn.rollback() else: _product_type = {"CDISW": "swaptions", "TRN": "cds"} - sql_str = f"UPDATE {_product_type[row.ProductType]} set cpty_id = %s where dealid = %s" + sql_str = f"UPDATE {_product_type[row.ProductType]} SET cpty_id = %s WHERE dealid = %s" if row.SwapType == "NEW" and row.BrokerId != "BNPBNY": c.execute(sql_str, (cpty_id, row.TicketNo)) conn.commit() @@ -59,4 +55,4 @@ def run(conn): if __name__ == "__main__": conn = dbconn("dawndb") - run(conn) + run(conn, datetime.date.today()) |
