aboutsummaryrefslogtreecommitdiffstats
path: root/python
diff options
context:
space:
mode:
Diffstat (limited to 'python')
-rw-r--r--python/mtm_status.py28
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())