diff options
Diffstat (limited to 'python/monthly_interest.py')
| -rw-r--r-- | python/monthly_interest.py | 43 |
1 files changed, 37 insertions, 6 deletions
diff --git a/python/monthly_interest.py b/python/monthly_interest.py index aadc36f1..aed4f869 100644 --- a/python/monthly_interest.py +++ b/python/monthly_interest.py @@ -13,6 +13,9 @@ import pandas as pd from collections import defaultdict import shutil +from interest_statement import export_data +from dateutil.relativedelta import relativedelta + logger = logging.getLogger(__name__) @@ -97,7 +100,6 @@ def get_GS(g): for e in g: if "TOTAL INTEREST" in e.text: next(g) - next(g) return float(next(g).text.replace("USD", "").replace(",", "")) @@ -106,9 +108,22 @@ def get_MS(path): return -round(df["LOCAL_ACCRUAL"].sum(), 2) +def get_BAML(g): + for e in g: + if "Net interest Amount" in e.text: + return -float(next(g).text.replace("(", "-").replace(")", "")) + + +def start_end(year, month): + start = datetime.date(year, month, 1) + end = start + relativedelta(months=1) + end -= datetime.timedelta(days=1) + return start, end + + def get_interest(delete=False): interest_amounts = defaultdict(float) - counterparties = ["BNP", "CITI", "CS", "GS", "MS"] + counterparties = ["BNP", "CITI", "CS", "GS", "MS", "BAML"] for cp in counterparties: try: func = globals()[f"get_{cp}"] @@ -134,16 +149,21 @@ def get_interest(delete=False): ) except FileNotFoundError: pass - return pd.DataFrame(interest_amounts, index=[0]).T + return pd.DataFrame(interest_amounts, index=[0]).T.rename( + index={"BAML": "BAML_ISDA"}, columns={0: "monthly_statement"} + ) em = ExchangeMessage() -counterparties = ["BNP", "CITI", "CS", "GS", "MS"] +counterparties = ["BNP", "CITI", "CS", "GS", "MS", "BAML"] parser = argparse.ArgumentParser(description="determine sender destination") parser.add_argument("start") -parser.add_argument("end") +parser.add_argument("end", default=datetime.date.today()) parser.add_argument("--auto", action="store_true", help="for automation or for monthly") +parser.add_argument( + "--delete", action="store_true", default=True, help="for automation or for monthly" +) args = parser.parse_args() for cp in counterparties: @@ -153,4 +173,15 @@ for cp in counterparties: download_messages(em, cp, args.start, args.end) if args.auto: - df = get_interest(delete=args.auto) + df = get_interest(delete=args.delete) + start, end = start_end( + datetime.datetime.today().year, datetime.datetime.today().month - 1 + ) + new_df = pd.merge( + export_data(start, end).groupby("broker").sum(), + df, + how="outer", + left_index=True, + right_index=True, + ) + new_df["difference"] = new_df["amount"] - new_df["monthly_statement"] |
