diff options
Diffstat (limited to 'python/quote_diff_bowdst.py')
| -rw-r--r-- | python/quote_diff_bowdst.py | 95 |
1 files changed, 0 insertions, 95 deletions
diff --git a/python/quote_diff_bowdst.py b/python/quote_diff_bowdst.py deleted file mode 100644 index 72503d1f..00000000 --- a/python/quote_diff_bowdst.py +++ /dev/null @@ -1,95 +0,0 @@ -from serenitas.utils.db import dbconn -import numpy as np -import datetime -import pandas as pd -from serenitas.utils.exchange import ExchangeMessage -from io import StringIO -from exchangelib import FileAttachment -import argparse - -from serenitas.utils import SerenitasFileHandler -import logging -from pandas.tseries.offsets import BDay - - -def main(): - conn = dbconn("dawndb") - - parser = argparse.ArgumentParser(description="determine sender destination") - parser.add_argument("--globeop", action="store_true", help="send to globeop") - parser.add_argument( - "--workdate", - type=datetime.date.fromisoformat, - default=(datetime.date.today() - BDay(1)).date(), - ) - - args = parser.parse_args() - - args = parser.parse_args() - - logger = logging.getLogger(__name__) - if not logger.handlers: - fh = SerenitasFileHandler("quote_diff_bowdst.log") - logger.addHandler(fh) - logger.setLevel(logging.INFO) - - recon(conn, logger, args) - - -def recon(conn, logger, args): - df = pd.read_sql( - sql="SELECT * FROM list_bowd_quotes(%s)", - con=conn, - params=(args.workdate,), - ) - try: - mask = np.isclose(df["bowd_price"], df["closeprice"], atol=0.15) - diff = df[~mask].rename(mapper={"closeprice": "our_price"}, axis=1) - except TypeError as e: - logger.error(e) - else: - if not diff.empty: - buf = StringIO() - diff = diff.round(decimals=2) - diff.to_csv(buf, index=False) - subject = "ACTION REQUESTED: Stale/Inaccurate Quotes" - msg = ( - "Good morning,\n\n" - f"We notice a difference in our quotes by more than 15 cents for the following indices:\n\n" - f"{diff.to_string(index=False)}\n\n" - "We have also attached a copy of the csv for your convenience." - f"Thanks for your help.\n\n" - f"Flint" - ) - attachments = [ - FileAttachment( - name=f"quote_differences.csv", content=buf.getvalue().encode() - ) - ] - em = ExchangeMessage() - if args.globeop: - recipients = ( - "hm-operations@bnymellon.com", - "caagprim@bnymellon.com", - ) - cc_recipients = ( - "fyu@lmcg.com", - "Bowdoin-Ops@LMCG.com", - ) - else: - recipients = ("fyu@lmcg.com",) - cc_recipients = () - - em.send_email( - subject, - msg, - to_recipients=recipients, - cc_recipients=cc_recipients, - attach=attachments, - ) - logger.info(diff) - logger.info("Program Executed") - - -if __name__ == "__main__": - main() |
