diff options
Diffstat (limited to 'python')
| -rw-r--r-- | python/collateral/barclays.py | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/python/collateral/barclays.py b/python/collateral/barclays.py index 92ada007..a954a78d 100644 --- a/python/collateral/barclays.py +++ b/python/collateral/barclays.py @@ -1,5 +1,6 @@ import logging import pandas as pd +import PyPDF2 from . import DAILY_DIR logger = logging.getLogger(__name__) @@ -23,7 +24,23 @@ def load_file(d, fund, pattern): ) except StopIteration: raise FileNotFoundError(f"BARCLAYS file not found for date {d}") - return pd.read_excel(fname, skiprows=3, skipfooter=23) + if fname.name.endswith("xls"): + return pd.read_excel(fname, skiprows=3, skipfooter=23) + else: + return fname + + +def get_total_collateral(d, fund): + with open(load_file(d, fund, "CreditSupportStatement"), "rb") as pdf_file: + pdf_reader = PyPDF2.PdfFileReader(pdf_file) + first_page = pdf_reader.getPage(0) + page_text = first_page.extractText() + csb_pos = page_text.find("Credit Support Balance") + next_word_pos = page_text.find(" ", csb_pos + len("Credit Support Balance") + 1) + collateral_balance = page_text[ + csb_pos + len("Credit Support Balance") + 1 : next_word_pos + ] + return float(collateral_balance.split("\n")[0]) def download_files(em, count=20, *, fund="Serenitas", **kwargs): @@ -41,7 +58,7 @@ def download_files(em, count=20, *, fund="Serenitas", **kwargs): def collateral(d, dawn_trades, *, fund="Serenitas", **kwargs): - collateral = 0 + collateral = get_total_collateral(d, fund) df = load_file(d, fund, "Exposure Report") df = df[["Trade Reference", "Exposure (USD)", "Ind Amt (USD)"]] df["Trade Reference"] = df["Trade Reference"].astype(str) |
