diff options
Diffstat (limited to 'python/collateral_calc.py')
| -rw-r--r-- | python/collateral_calc.py | 29 |
1 files changed, 16 insertions, 13 deletions
diff --git a/python/collateral_calc.py b/python/collateral_calc.py index 96a7efe4..e75e495a 100644 --- a/python/collateral_calc.py +++ b/python/collateral_calc.py @@ -1,10 +1,10 @@ -import logging import os import pandas as pd import socket import sys -from db import dawn_engine +from utils import SerenitasFileHandler +from utils.db import dawn_engine, dbconn try: from env import DAILY_DIR, LOG_DIR except KeyError: @@ -23,9 +23,6 @@ from ssh2.error_codes import LIBSSH2_ERROR_EAGAIN from ssh2.sftp import (LIBSSH2_FXF_READ, LIBSSH2_SFTP_S_IRUSR, LIBSSH2_SFTP_S_IFDIR, LIBSSH2_SFTP_S_IFREG) -logging.basicConfig(filename=LOG_DIR / 'collateral_calc.log', - level=logging.WARNING, - format='%(asctime)s %(message)s') def get_sftp_client(): transport = Transport(('prmssp.amer.sgcib.com', 22)) @@ -117,8 +114,8 @@ def download_sftp_files(d=None, else: f = f"{d:%Y%m%d}_{report_type}.csv" if f not in file_list: - logging.info("File not here yet, trying again in 500s...") - logging.info(f"Try count: {retry_count}") + logger.info("File not here yet, trying again in 500s...") + logger.info(f"Try count: {retry_count}") sleep(500) sftp.close() download_sftp_files(d, report_types, retry_count + 1) @@ -150,7 +147,7 @@ def download_ms_emails_from_gmail(): else: p.write_bytes(part.get_payload(decode=True)) except (KeyError, UnicodeDecodeError) as e: - logging.error("error decoding " + msg['id']) + logger.error("error decoding " + msg['id']) continue def download_ms_emails(count=20): @@ -206,9 +203,9 @@ def compare_notionals(df, positions, fcm: str): join(df["NOTIONAL"], how="left")) diff_notionals = check_notionals[check_notionals.notional != check_notionals.NOTIONAL] if not diff_notionals.empty: - logging.error(f"Database and {fcm} FCM know different notionals") + logger.error(f"Database and {fcm} FCM know different notionals") for t in diff_notionals.itertuples(): - logging.error(f"{t.Index[0]}\t{t.Index[1].date()}\t{t.notional}\t{t.NOTIONAL}") + logger.error(f"{t.Index[0]}\t{t.Index[1].date()}\t{t.notional}\t{t.NOTIONAL}") def baml_collateral(d): df = pd.read_csv(DAILY_DIR / "BAML_reports" / @@ -528,7 +525,13 @@ def send_email(d, dfs): if __name__ == "__main__": import argparse + import logging from dates import bus_day + fh = SerenitasFileHandler("collateral_calc.log") + logger = logging.getLogger("collateral_calc") + logger.addHandler(fh) + logger.setLevel(logging.WARNING) + parser = argparse.ArgumentParser() parser.add_argument('workdate', nargs='?', type=lambda s: pd.datetime.strptime(s, "%Y-%m-%d").date(), @@ -551,14 +554,14 @@ if __name__ == "__main__": try: df_ms = ms_collateral(args.workdate, dawn_trades) except FileNotFoundError as e: - logging.info(e) + logger.info(e) df_ms = ms_collateral(args.workdate-bus_day, dawn_trades) #df_sg = sg_collateral(d) df_baml = baml_collateral(args.workdate) try: df_gs = gs_collateral(args.workdate, dawn_trades) except FileNotFoundError as e: - logging.info(e) + logger.info(e) df_gs = gs_collateral(args.workdate-busday, dawn_trades) df_wells = wells_collateral(args.workdate) df = pd.concat([df_gs.set_index("Strategy"), @@ -569,7 +572,7 @@ if __name__ == "__main__": keys=["GS", "MS", "CITI", "WF", "BAML"], names=["broker", "strategy"]).reset_index() df.strategy = df.strategy.str.replace("^(M_|SER_)?", "", 1) - from db import dbconn + conn = dbconn('dawndb') sql_str = ("INSERT INTO strategy_im VALUES(%s, %s, %s, %s, %s) " "ON CONFLICT (date, strategy, broker) DO UPDATE " |
